On Thu, Dec 04, 2003, Bill Campbell wrote:

> While rebuilding a number of packages today, I ran into a problem where the
> rebuild failed because it couldn't log into our anonymous ftp server.  It
> turned out that there were too many ftp users at the time.  While I was
> tracking this down (and nuking a bunch of cracker types who were attempting
> to find misconfigured servers to exploit :-), I noticed that the
> ``rpm --rebuild ftp://...'' processes were leaving zombie sessions open.

You mean your forked off FTP server processes stay around as zombies?
What FTP server are you using? At least with ProFTPD (which we usually
use everywhere) I've never seen this behaviour.

> A bit more log parsing showed that after the RETR command, the next
> command is ABOR, not QUIT as I would expect.

In RPM's CHANGELOG there is only:

| 2.5.5 -> 2.5.6:
|   [...]
|   - attempt ftp ABOR on query/verify url's.
|   [...]

And according to the RPM rpmio/rpmio.c, the ABOR is only
sent in its ftpAbort() function and this function
is called only in this context:

| [...]
|             if (fd->bytesRemain > 0) {
|                 if (fd->ftpFileDoneNeeded) {
|                     if (fdReadable(u->ctrl, 0) > 0)
|                         (void) ftpFileDone(u, fd);
|                     else
|                         (void) ftpAbort(u, fd);
|                 }
| [...]

This doesn't correspond very well to the CHANGELOG entry. Anyway, it
seems to send ABOR on non-finished transmissions when the read channel
was already closed. OTOH "QUIT" is not send at all in the code.

                                       Ralf S. Engelschall
                                       [EMAIL PROTECTED]
                                       www.engelschall.com

______________________________________________________________________
The OpenPKG Project                                    www.openpkg.org
Developer Communication List                   [EMAIL PROTECTED]

Reply via email to