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 instead. 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: http://www.squarebox.co.uk/cgi-squarebox/manServer/usr/share/man/man0p/poll.h.0p ...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): obj.handle_expt_event() 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) files: asyncore.diff messages: 58093 nosy: billiejoex severity: normal status: open title: Bad OOB data management when using asyncore with select.poll() type: behavior versions: Python 2.5 Added file: http://bugs.python.org/file8854/asyncore.diff __________________________________ Tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue1541> __________________________________
asyncore.diff
Description: Binary data
_______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com