On Sat, 23 May 2009, Charlie Brady wrote: > On Sat, 23 May 2009, J wrote: > > > A manual connection where I connect, helo, then quit - stays in the > > process table. > > If you strace that process, you'll see that it goes back to select() waiting > for a new connection on the socket. You should expect each child process to be > reused up to 100 times. > > > A manual connection where I connect, couple bad commands, server dumps me > > - gone from the process table. > > I don't see that. I see the process which writes "521 Closing connection. 4 > unrecognized commands. Perhaps you should read RFC 2821?" goes back to > select().
Looks like I may have been mistaken. I connected twice from the same system, and I think what actually happened is that the one process was reused. Because when I make one connection each from different systems, two processes were still in the process table. Appears that if one process was created for a system (IP?), then that one will be reused for that same system (IP?), maybe. > > Again, seems to be some progress, but not complete, yet. > > Are you noticing any actual functional problems? Some of what I'm doing interfaces through Perl DBI, and since I am setting up a new system, I happily upgraded all libraries. The current DBI is broken, so for my plugins, I can only test basic functionality. Note: The waiting processes all start like this: /usr/bin/perl -T ./qpsmtpd-prefork ...while the (non-disappearing) connections appear like: ./qpsmtpd-prefork [192.168.1.50 : testlaptop : 23:12:05 2009-05-23] So, I was expecting the former to stay around and be reused x number of times, but I was expecting the latter to die as soon as the connection was completed. Is that not correct? Thanks. J.