Details
-
Bug
-
Status: Open
-
Minor
-
Resolution: Unresolved
-
Impala 2.10.0
-
None
-
None
-
ghx-label-9
Description
We recently added a patch to catch all exceptions thrown by boost while creating threads:
https://github.com/apache/incubator-impala/commit/e993b9712c81dfb66fdf65bb5269cdc38a8eef18#diff-66eda90b98c0bdfb1cd6e6c0a97e97fa
However, in one case, we still do not catch the exceptions. We pass in a Thread factory into thrift so that it uses Impala code to create threads:
https://github.com/apache/incubator-impala/blob/master/be/src/rpc/thrift-thread.cc#L57
And that throws an exception on an inability to create threads:
https://github.com/apache/incubator-impala/blob/master/be/src/rpc/thrift-thread.cc#L41
The possible point of failure in TAcceptQueueServer is:
https://github.com/apache/incubator-impala/blob/master/be/src/rpc/TAcceptQueueServer.cpp#L163
Nothing catches this exception, which means that if TAcceptQueueServer is unable to create a thread, the process will crash.
One way to handle this would be to have the users of TAcceptQueueServer handle exceptions.