Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
proton-c-0.39.0
-
None
Description
In writing a new threaderciser for raw connections the following scenario can result in raw connections that are never scheduled.
If a pn_listener_raw_accept() fails due to a temporary fdlimit shortage or simultaneous close of the listener by another thread, the new raw connection is correctly set to an error state but is never scheduled for processing. The state machine is never advanced and the raw connection resources are not cleaned up. This also causes the PN_PROACTOR_INACTIVE event to be blocked.