[Mailman-Users] Strange errors

Daniel Szkola szkola at tanis.cso.niu.edu
Sat Oct 22 04:32:15 CEST 2005

Mark Sapiro wrote:
> Dan Szkola wrote:
>>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.

This was my initial thought as well.

> 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.

It does not explain why it takes some amount of time to be exposed.
Is sendmail leaking file descriptors? How is it that it always runs
out of file descriptors at that exact point?

I thought too many open files should throw an Err#24 EMFILE, but
I'm seeing evidence from googling that shows what we are seeing.

> 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?

Maybe so. I read where someone said that the close immediately
following the open means the FD was rejected.

Still raises questions, but at least I feel like we got somewhere
in debugging this issue.

Dan Szkola
Sr Unix Systems Programmer
Northern Illinois University

More information about the Mailman-Users mailing list