Details
-
Sub-task
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
-
None
-
None
-
None
Description
The destructor to RpcConnectionImpl grabs a lock using a std::lock_guard<>.
It turns out something is already holding the lock when this happens. Best bet is something that looks like:
void SomeFunctionThatShouldntTakeLock(){
std::lock_guard<std::mutex> bad(connection_state_lock_)
conn_.reset(); //conn is a shared_ptr to RpcConnectionImpl
}