Re: squid-2.2PRE2 and async-io

From: Andres Kroonmaa <andre@dont-contact.us>
Date: Tue Jul 29 13:15:56 2003

On 3 Feb 99, at 14:09, Andres Kroonmaa <andre@ml.ee> wrote:

> squid -N -X starts, forks, runs 1 dnsserver, parses its
> conf, last yikes is "leave_suid:..." and thats it.
> CPU skyrockets, http port is not listening. By truss -p
> it all seems doing pretty nothing, I cant even find the
> source of high CPU usage...

 aioCancel was broken while adding memPools to it.
 the used_list went short-circuit to itself causing
 endless while loop.

--- async_io.c.orig Fri Jan 29 01:57:44 1999
+++ async_io.c Wed Feb 3 21:40:38 1999
@@ -133,9 +133,9 @@
     ctrlp->operation = _AIO_CLOSE;
     if (aio_close(fd, &(ctrlp->result)) < 0) {
        close(fd); /* Can't create thread - do a normal close */
+ memPoolFree(aio_ctrl_pool, ctrlp);
        return;
     }
- memPoolFree(aio_ctrl_pool, ctrlp);
     fd_was_closed(fd);
     ctrlp->next = used_list;
     used_list = ctrlp;
@@ -288,9 +288,9 @@
            errno = EWOULDBLOCK;
        if (callback)
            (callback) (ctrlp->fd, callback_data, -1, errno);
+ memPoolFree(aio_ctrl_pool, ctrlp);
        return;
     }
- memPoolFree(aio_ctrl_pool, ctrlp);
     ctrlp->next = used_list;
     used_list = ctrlp;
     return;

 ----------------------------------------------------------------------
  Andres Kroonmaa mail: andre@online.ee
  Network Manager
  Organization: MicroLink Online Tel: 6308 909
  Tallinn, Sakala 19 Pho: +372 6308 909
  Estonia, EE0001 http://www.online.ee Fax: +372 6308 901
 ----------------------------------------------------------------------
Received on Tue Jul 29 2003 - 13:15:56 MDT

This archive was generated by hypermail pre-2.1.9 : Tue Dec 09 2003 - 16:12:04 MST