Jens-G commented on PR #2953:
URL: https://github.com/apache/thrift/pull/2953#issuecomment-2031943290
First, essentially your "solution" boils down to
```
void TSocket::write(const uint8_t* buf, uint32_t len) {
try{
// some code that may throw TTransportException (or something else)
}
catch(TTransportException e) { // catch it
throw e; // re-throw it
}
}
```
It's probably me but I don't see the point in this.
Second, whenever you call code, be it your own or 3rd party code, there may
be errors that you don't expect. You may run out of disk space, memory or run
into communication timeouts. Your point was that this is to ensure your server
runs with high availability:
> clients connect to the server each time by catching exceptions to
determine if the server is available
I can't see how catching one particular exception at this place will help
with that. Why can't you catch and handle the exception in the calling code?
And how does catching and re-throwing help with making the server more
available? Also, why is it clients that have to perform that task? Assumed you
use some state-of-the-art system like e.g. kubernetes, [there is special
handling built right into the platform for exactly this
task](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/)
and therefore no need to re-invent the wheel again.
To me it looks as if you might try to solve the wrong problem, or at least
at the wrong place.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]