Dan Szkola wrote: > >Very odd, I agree. A truss of the persistent queue runner that handled >one of the test mails shows this (12762 is the pid that mailman gets >when sendmail exec's it): > > 12762: open64("/usr/local/mailman/Mailman/Logging/Utils.so", >O_RDONLY) Err#2 ENOENT > 12762: open64("/usr/local/mailman/Mailman/Logging/Utilsmodule.so", >O_RDONLY) Err#2 ENOENT > 12762: open64("/usr/local/mailman/Mailman/Logging/Utils.py", >O_RDONLY) = 66 > 12762: fstat64(66, 0xFFBF8928) = 0 > 12762: open64("/usr/local/mailman/Mailman/Logging/Utils.pyc", >O_RDONLY) = 256 > 12762: close(256) = 0 > 12762: fstat64(66, 0xFFBF83C8) = 0 > 12762: fstat64(66, 0xFFBF8270) = 0 > 12762: ioctl(66, TCGETA, 0xFFBF8354) Err#25 ENOTTY > 12762: read(66, " # C o p y r i g h t ".., 8192) = 1912 > 12762: read(66, 0x001F902C, 8192) = 0 > 12762: unlink("/usr/local/mailman/Mailman/Logging/Utils.pyc") = 0 > 12762: open64("/usr/local/mailman/Mailman/Logging/Utils.pyc", >O_WRONLY|O_CREAT|O_TRUNC|O_EXCL, 0666) = 256 > 12762: fcntl(256, F_GETFD, 0xFEFE7F18) = 0 > 12762: stat64("/usr/local/mailman/Mailman/Logging/traceback", >0xFFBF7AD0) Err#2 ENOENT > 12762: open64("/usr/local/mailman/Mailman/Logging/traceback.so", >O_RDONLY) Err#2 ENOENT > 12762: >open64("/usr/local/mailman/Mailman/Logging/tracebackmodule.so", >O_RDONLY) Err#2 ENOENT > 12762: open64("/usr/local/mailman/Mailman/Logging/traceback.py", >O_RDONLY) Err#2 ENOENT > 12762: open64("/usr/local/mailman/Mailman/Logging/traceback.pyc", >O_RDONLY) Err#2 ENOENT > 12762: stat64("/usr/local/mailman/pythonlib/traceback", 0xFFBF7AD0) >Err#2 ENOENT > 12762: open64("/usr/local/mailman/pythonlib/traceback.so", O_RDONLY) >Err#2 ENOENT > 12762: open64("/usr/local/mailman/pythonlib/tracebackmodule.so", >O_RDONLY) Err#2 ENOENT > 12762: open64("/usr/local/mailman/pythonlib/traceback.py", O_RDONLY) >Err#2 ENOENT > 12762: open64("/usr/local/mailman/pythonlib/traceback.pyc", O_RDONLY) >Err#2 ENOENT > 12762: stat64("/usr/local/mailman/traceback", 0xFFBF7AD0) Err#2 ENOENT > 12762: open64("/usr/local/mailman/traceback.so", O_RDONLY) Err#2 ENOENT > 12762: open64("/usr/local/mailman/tracebackmodule.so", O_RDONLY) >Err#2 ENOENT > 12762: open64("/usr/local/mailman/traceback.py", O_RDONLY) Err#2 ENOENT > 12762: open64("/usr/local/mailman/traceback.pyc", O_RDONLY) Err#2 ENOENT > 12762: stat64("/usr/local/mailman/scripts/traceback", 0xFFBF7AD0) >Err#2 ENOENT > 12762: open64("/usr/local/mailman/scripts/traceback.so", O_RDONLY) >Err#2 ENOENT > 12762: open64("/usr/local/mailman/scripts/tracebackmodule.so", >O_RDONLY) Err#2 ENOENT > 12762: open64("/usr/local/mailman/scripts/traceback.py", O_RDONLY) >Err#2 ENOENT > 12762: open64("/usr/local/mailman/scripts/traceback.pyc", O_RDONLY) >Err#2 ENOENT > 12762: stat64("/usr/local/mailman/traceback", 0xFFBF7AD0) Err#2 ENOENT > 12762: open64("/usr/local/mailman/traceback.so", O_RDONLY) Err#2 ENOENT > 12762: open64("/usr/local/mailman/tracebackmodule.so", O_RDONLY) >Err#2 ENOENT > 12762: open64("/usr/local/mailman/traceback.py", O_RDONLY) Err#2 ENOENT > 12762: open64("/usr/local/mailman/traceback.pyc", O_RDONLY) Err#2 ENOENT > 12762: stat64("/usr/local/lib/python24.zip/traceback", 0xFFBF7AD0) >Err#2 ENOENT > 12762: open64("/usr/local/lib/python24.zip/traceback.so", O_RDONLY) >Err#2 ENOENT > 12762: open64("/usr/local/lib/python24.zip/tracebackmodule.so", >O_RDONLY) Err#2 ENOENT > 12762: open64("/usr/local/lib/python24.zip/traceback.py", O_RDONLY) >Err#2 ENOENT > 12762: open64("/usr/local/lib/python24.zip/traceback.pyc", O_RDONLY) >Err#2 ENOENT > 12762: stat64("/usr/local/lib/python2.4/traceback", 0xFFBF7AD0) Err#2 >ENOENT > 12762: open64("/usr/local/lib/python2.4/traceback.so", O_RDONLY) >Err#2 ENOENT > 12762: open64("/usr/local/lib/python2.4/tracebackmodule.so", >O_RDONLY) Err#2 ENOENT > 12762: open64("/usr/local/lib/python2.4/traceback.py", O_RDONLY) = 257 > 12762: close(257) = 0 > 12762: open64("/usr/local/lib/python2.4/traceback.pyc", O_RDONLY) = 257 > 12762: close(257) = 0 > 12762: stat64("/usr/local/lib/python2.4/plat-sunos5/traceback", >0xFFBF7AD0) Err#2 ENOENT > 12762: open64("/usr/local/lib/python2.4/plat-sunos5/traceback.so", >O_RDONLY) Err#2 ENOENT > 12762: >open64("/usr/local/lib/python2.4/plat-sunos5/tracebackmodule.so", >O_RDONLY) Err#2 ENOENT > 12762: open64("/usr/local/lib/python2.4/plat-sunos5/traceback.py", >O_RDONLY) Err#2 ENOENT > 12762: open64("/usr/local/lib/python2.4/plat-sunos5/traceback.pyc", >O_RDONLY) Err#2 ENOENT > 12762: stat64("/usr/local/lib/python2.4/lib-tk/traceback", >0xFFBF7AD0) Err#2 ENOENT > 12762: open64("/usr/local/lib/python2.4/lib-tk/traceback.so", >O_RDONLY) Err#2 ENOENT > 12762: open64("/usr/local/lib/python2.4/lib-tk/tracebackmodule.so", >O_RDONLY) Err#2 ENOENT > 12762: open64("/usr/local/lib/python2.4/lib-tk/traceback.py", >O_RDONLY) Err#2 ENOENT > 12762: open64("/usr/local/lib/python2.4/lib-tk/traceback.pyc", >O_RDONLY) Err#2 ENOENT > 12762: stat64("/usr/local/lib/python2.4/lib-dynload/traceback", >0xFFBF7AD0) Err#2 ENOENT > 12762: open64("/usr/local/lib/python2.4/lib-dynload/traceback.so", >O_RDONLY) Err#2 ENOENT > 12762: >open64("/usr/local/lib/python2.4/lib-dynload/tracebackmodule.so", >O_RDONLY) Err#2 ENOENT > 12762: open64("/usr/local/lib/python2.4/lib-dynload/traceback.py", >O_RDONLY) Err#2 ENOENT > 12762: open64("/usr/local/lib/python2.4/lib-dynload/traceback.pyc", >O_RDONLY) Err#2 ENOENT > 12762: stat64("/usr/local/lib/python2.4/site-packages/traceback", >0xFFBF7AD0) Err#2 ENOENT > 12762: open64("/usr/local/lib/python2.4/site-packages/traceback.so", >O_RDONLY) Err#2 ENOENT > 12762: >open64("/usr/local/lib/python2.4/site-packages/tracebackmodule.so", >O_RDONLY) Err#2 ENOENT > 12762: open64("/usr/local/lib/python2.4/site-packages/traceback.py", >O_RDONLY) Err#2 ENOENT > 12762: open64("/usr/local/lib/python2.4/site-packages/traceback.pyc", >O_RDONLY) Err#2 ENOENT > >You can see it actually unlink the compiled version and then look >for, find, and seemingly reject the traceback.py and traceback.pyc >that it finds. I thought it may be a too many open files problem >or a file descriptor limit problem because the FD returned on the >open64("/usr/local/mailman/Mailman/Logging/Utils.pyc", O_RDONLY) >was 256. But it doesn't return an error. I did see that the ulimit >does say 256 open files is the max, but that doesn't seem to be >the problem.
Are you sure this isn't the problem? This is the first thing I've seen in this entire thread that begins to make sense, and it appears to me as if it can explain the whole thing. I know truss is not showing an error, but it is too much of a coincidence that the open of /usr/local/mailman/Mailman/Logging/Utils.pyc returns fd=256 (presumably the 257th file) and then Python wants to create a new one and then the opens of /usr/local/lib/python2.4/traceback.py and /usr/local/lib/python2.4/traceback.pyc return fd=257 and Python doesn't see them. Is it possible that at the level of truss, there is no error and the limit of 256 files (fd <= 255 ?) is enforced higher up where the resulting error doesn't get traced? -- Mark Sapiro <[EMAIL PROTECTED]> The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan ------------------------------------------------------ Mailman-Users mailing list Mailman-Users@python.org http://mail.python.org/mailman/listinfo/mailman-users Mailman FAQ: http://www.python.org/cgi-bin/faqw-mm.py Searchable Archives: http://www.mail-archive.com/mailman-users%40python.org/ Unsubscribe: http://mail.python.org/mailman/options/mailman-users/archive%40jab.org Security Policy: http://www.python.org/cgi-bin/faqw-mm.py?req=show&file=faq01.027.htp