Print

Print


Let me explain further what the logic problem is in the client's builtin poller method. When a socket is immediately connected the socket status is marked as connected. The readytowrite callback is invoked after the enable for write notification is called The enable is called regardless of whether not the connect immediately succeeded. The callback method checks if there is a write outstanding or if the status is connecting. However, in this case we have a status of connected but no handshake outstanding because the logic is that the handshake will be driven via the callback.. In this instance, the callback ignores that notification because there is no write outstanding. So we have a condition where the handshake is never consummated when the connect immediately succeeds. I can produce explicit traces that show this. This is clearly an issue in the client. There is no race condition.Everything happens in the exact sequence that the client enables. It is ,merely a wrong as sumption on the client's part when the connect immediately succeeds.


Reply to this email directly or view it on GitHub.



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