Not sure if this is the right mailing list for this.... epoll should *not* be used on 2.4 kernels...
I have 2.4 kernel running on a 32-bit x86 machine and another 2.4 kernel running on 64-bit x64 and I'm having an issue with twisted (via buildbot). I can import epoll from select on the 64-bit machine (it *should* fail but doesn't) and this later causes twisted to fail... >>> from select import epoll >>> epoll(1) Traceback (most recent call last): File "<stdin>", line 1, in <module> IOError: [Errno 38] Function not implemented On the 32-bit machine, however, importing epoll is properly failing... >>> from select import epoll Traceback (most recent call last): File "<stdin>", line 1, in <module> ImportError: cannot import name epoll >>> twisted/internet/default.py is hitting this same problem. It's incorrectly picking epoll when it shouldn’t because import epoll is working when it shouldn't. I 'fixed' the problem on my machine by adding a check method in epollreactor.py which does this... def check(): try: epoll(1) except IOError: return False return True and I import and call the check method in default.py. An alternate fix can be... in twisted/internet/default.py try: if platform.isLinux(): try: from select import epoll epoll(1) from twisted.internet.epollreactor import install except (IOError, ImportError): from twisted.internet.pollreactor import install Any insight would be good. I had to compile my own Python 2.7.8 on these old computers...maybe python is incorrectly detecting epoll in the build process? Thanks in advance, Reuben _______________________________________________ Twisted-Python mailing list Twisted-Python@twistedmatrix.com http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python