[issue1541] Bad OOB data management when using asyncore with select.poll()
report at bugs.python.org
Sun Dec 2 18:54:16 CET 2007
New submission from billiejoex:
asyncore's module readwrite() function, used when invoking
asyncore.loop(use_poll=1), erroneously calls handle_read_event() when
receiving OOB (Out Of Band) data. handle_expt_event() should be called
The patch in attachment does that.
In addition I strongly think that POLLERR, POLLHUP and POLLNVAL events
handling is incorrect too.
As far as I read from here:
...they refers to the following events:
POLLERR An error has occurred (revents only).
POLLHUP Device has been disconnected ( revents only).
POLLNVAL Invalid fd member (revents only).
They are actually associated to handle_expt_event() and this is
incorrect since it should be called only when receiving OOB data.
if flags & (select.POLLERR | select.POLLHUP | select.POLLNVAL):
I'm not sure what should be called instead, if handle_read_event or
handle_read or handle_error.
I tried to take a look at how Twisted manages the thing but it seems
that OOB is not even supported.
Maybe someone with more experience in using select.poll could clarify that.
components: Library (Lib)
title: Bad OOB data management when using asyncore with select.poll()
versions: Python 2.5
Added file: http://bugs.python.org/file8854/asyncore.diff
Tracker <report at bugs.python.org>
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 417 bytes
Desc: not available
Url : http://mail.python.org/pipermail/python-bugs-list/attachments/20071202/da1ae2ba/attachment.obj
More information about the Python-bugs-list