STINNER Victor added the comment:

While I tried to write an unit test to reproduce a bug (cancelled waiter), I 
noticed that the handshake callback of the protocol can be called indirectly 
from _process_write_backlog(). So _process_write_backlog() may be called 
indirectly from _process_write_backlog(), whereas this function doesn't support 
reentrant call.

A fix is to modify the handshake callback to schedule a call to 
_process_write_backlog(), instead of calling it immediatly.

Note: The shutdown callback doesn't have this issue, it only calls 
transport.close().

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue22560>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to