Details
-
Sub-task
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
-
None
-
None
Description
During shutdown, it is possible for an RPC task to outlive the RPC connection and segfault when it attempts to signal the engine on timeout.
In rpc_connection.h, the callback
req->timer().async_wait(std::bind(
&RpcConnection::HandleRpcTimeout, this, req, _1));
does not retain a reference to shared_this, so the connection can be destroyed.