Hi guys,

So here's my theory:

  1. The client tries to connect and fails, there's still time in the connection window so it registers a task to reconnect:
    https://github.com/xrootd/xrootd/blob/c91b1acf4fcf7f39c7b104353bcde1cc6fdd3032/src/XrdCl/XrdClStream.cc#L775-L780
    However, note that although we failed to connect and registered a reconnect task we don't disable r/w events from the event loop.

  2. Since we didn't disable the events the socket handler although disconnected is handling events generated by the event loop hence the first stack-trace.

  3. Now at some point the reconnect task gets executed. It seems that in our case it is executed late (out of the connection window) so it triggers a connection error which deadlocks with the event-handling logic in (2).

I think what we need to do is disable events for given socket handler if we schedule a reconnect task. I will try to cook up a patch.


Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you commented.Message ID: <xrootd/xrootd/issues/1979/1488301414@github.com>

[ { "@context": "http://schema.org", "@type": "EmailMessage", "potentialAction": { "@type": "ViewAction", "target": "https://github.com/xrootd/xrootd/issues/1979#issuecomment-1488301414", "url": "https://github.com/xrootd/xrootd/issues/1979#issuecomment-1488301414", "name": "View Issue" }, "description": "View this Issue on GitHub", "publisher": { "@type": "Organization", "name": "GitHub", "url": "https://github.com" } } ]

Use REPLY-ALL to reply to list

To unsubscribe from the XROOTD-DEV list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=XROOTD-DEV&A=1