[Mailman-Users] Strange errors

Mark Sapiro msapiro at value.net
Sat Oct 22 00:15:51 CEST 2005


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 <msapiro at value.net>       The highway is for gamblers,
San Francisco Bay Area, California    better use your sense - B. Dylan




More information about the Mailman-Users mailing list