The LimService class can leave threads running after it is destroyed. This causes problems when those threads try to access member variables of the LimService instance. The LimService destructor really needs to notify other threads that they should exit and join with them to make sure that they have.
One common symptom is this assertion failure at process exit:
LimService.C:341: void LimService::queue_work(SRPC*): Assertion `inTbl' failed.
We've also seen a failure when a server can't bind to its port:
TCP trouble: bind socket to 0.0.0.0 failed! (Address already in use) (-6)
Then crashing in LimService::Run as it's trying to copy the saved SRPC::failure instance from "this->server_failure".
Log in to post a comment.