Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
proton-c-0.38.0, proton-c-0.39.0
-
None
Description
If pn_raw_connection_wake() is called on a raw connection that is attempting to connect no further proactor events are generated and the proactor hangs.
Important observations:
- This only occurs if there is no server available at the target address for the connection. If a server is present then the PN_RAW_CONNECTION_WAKE and PN_RAW_CONNECTION_CONNECTED events arrive properly (in that order).
- The host address is "localhost" - using "127.0.0.1" or "::1" instead works. localhost on my machine maps to both "127.0.0.1" and "::1"
- Extra bonus: if you move the call to pn_raw_connection_wake() to before the call to pn_proactor_raw_connect() a crash occurs
See attached reproducer.