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.

Reply via email to