[FEATURE] Let clients receive feedback when KyuubiOperation is cancelled or closed failed
- Dominant language
- Scala
- Stars
- 2.4k
- Forks
- 1k
- PR merge metrics
- No merged PRs in 30d
Description
### Code of Conduct
- [x] I agree to follow this project's [Code of Conduct](https://www.apache.org/foundation/policies/conduct)
### Search before asking
- [x] I have searched in the [issues](https://github.com/apache/kyuubi/issues?q=is%3Aissue) and found no similar issues.
### Describe the feature
When we close or cancel a `KyuubiStatement`, an RPC request is sent to the Kyuubi server.
The server handles the close/cancel on the related session, and will emit the result if the cancel or close operation fails on the engine.
```scala
def cancelOperation(operationHandle: TOperationHandle): Unit = {
val req = new TCancelOperationReq(operationHandle)
val resp = withLockAcquiredAsyncRequest(CancelOperation(req))
if (resp.getStatus.getStatusCode == TStatusCode.SUCCESS_STATUS) {
info(s"$req succeed on engine side")
} else {
warn(s"$req failed on engine side", KyuubiSQLException(resp.getStatus))
}
}
def closeOperation(operationHandle: TOperationHandle): Unit = {
val req = new TCloseOperationReq(operationHandle)
val resp = withLockAcquiredAsyncRequest(CloseOperation(req))
if (resp.getStatus.getStatusCode == TStatusCode.SUCCESS_STATUS) {
info(s"$req succeed on engine side")
} else {
warn(s"$req failed on engine side", KyuubiSQLException(resp.getStatus))
}
}
```
The client cannot know whether the close/cancel is success or failed.
### Motivation
_No response_
### Describe the solution
_No response_
### Additional context
_No response_
### Are you willing to submit PR?
- [ ] Yes. I would be willing to submit a PR with guidance from the Kyuubi community to improve.
- [ ] No. I cannot submit a PR at this time.
Contributor guide
Assessment
This issue has not been assessed yet.