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