I encountered a situation where sendmail was opening up what appeared to be
listening on random UDP ports. In the process of tracking this down I
discovered that the culprit is getpwnam. A ktrace of the following simple
program show whats happening:
#include stdio.h
#include stdlib.h
boosting that
number further, still no change. I suspect the problem is related
to some change to the hash functions between 4.7 and 5.2.1 and I
hope to get to the bottom of it today.
I tried two getpwnam (as opposed to getpwuid) calls on 2 different userids, one
took 1000 seek/reads, the other
Quoting Bruce Campbell [EMAIL PROTECTED]:
On Tue, Jan 04, 2005 at 09:27:27PM -0500, Bruce Campbell wrote:
I wrote a small program:
#include sys/types.h
#include pwd.h
main( int argc, char *argv[] )
{
getpwuid( 13076 );
}
and ran it under truss
suggest a workaround ?
Well, somewhat unbelievably, copying a getpwent.c from 4.7
and remaking libc on 5.3 with it worked. Load average
has gone from 70 to 2.
And, so that this qualifies as a question...
Am I crazy to pull an old getpwnam from 4.7 and blindly
build it on 5.3 ?
--
Bruce Campbell
Quoting Bruce Campbell [EMAIL PROTECTED]:
...
Well, somewhat unbelievably, copying a getpwent.c from 4.7
and remaking libc on 5.3 with it worked. Load average
has gone from 70 to 2.
One of my co-workers has found a less kludgey workaround
for the high load problem we were seeing on 5.3
Quoting Kris Kennaway [EMAIL PROTECTED]:
Well, no, not quite.
old: imap-uw-2002_1,1
new: imap-uw-2004a,1
OK, that's where you should start, then. Go back to the software
configuration that you know is working and see if it still misbehaves.
Kris
Thanks. I shutdown imapd/ipop3d
On Tue, Jan 04, 2005 at 09:27:27PM -0500, Bruce Campbell wrote:
I wrote a small program:
#include sys/types.h
#include pwd.h
main( int argc, char *argv[] )
{
getpwuid( 13076 );
}
and ran it under truss on 5.x and it generated 178,711 lines of output.
(the bulk of which