Re: Squid-SMP problems in current trunk

From: Tsantilas Christos <chtsanti_at_users.sourceforge.net>
Date: Mon, 18 Jul 2011 13:04:21 +0300

On 07/16/2011 07:11 AM, Amos Jeffries wrote:
> On 16/07/11 07:43, Tsantilas Christos wrote:
>> But now I am hitting the following assertion:
>> assertion failed: Connection.cc:29: "fd < 0"
>> The later problem looks that it has to do with file descriptors of the
>> listening sockets.
>
> "fd < 0" indicates something is failing to call conn->close() when
> abandoning an open socket.
>
> NP: close() is reentrant. So components can and should always close()
> when they are sure the FD/socket must no longer be used.
>
> I'm not very certain about SMP listening sockets, which process(es) are
> safe to close() on reconfigure/shutdown? the unsafe ones must do fd=-1
> to abandon the FD information explicitly before the conn object destructs.
>
> What situations are you hitting "fd < 0" Christos?

I am hitting this assertion on kids immediately after start.
Looks that the connection looses all references on its self and deleted.
The socked of the connection is a listening socket.

This is a backtrace:
#0 0x00007f0c3210ea75 in *__GI_raise (sig=<value optimized out>)
     at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#1 0x00007f0c321125c0 in *__GI_abort () at abort.c:92
#2 0x00000000005128f5 in xassert (msg=0x4955 <Address 0x4955 out of
bounds>,
     file=0x1208120 "\230\236E2\f\177", line=29) at debug.cc:567
#3 0x0000000000656239 in ~Connection (this=0x10fb530,
     __in_chrg=<value optimized out>, __vtt_parm=<value optimized out>)
     at Connection.cc:29
#4 0x00000000004fbb04 in ~ListeningStartedDialer (this=0x10e6fd0,
     __in_chrg=<value optimized out>, __vtt_parm=<value optimized out>)
     at client_side.cc:144
#5 ~AsyncCallT (this=0x10e6fd0, __in_chrg=<value optimized out>,
     __vtt_parm=<value optimized out>) at ../src/base/AsyncCall.h:133
#6 0x0000000000608dcf in RefCount<AsyncCall>::dereference (
     this=<value optimized out>) at ../../include/RefCount.h:96
#7 ~RefCount (this=<value optimized out>) at ../../include/RefCount.h:52
#8 AsyncCallQueue::fireNext (this=<value optimized out>)
     at AsyncCallQueue.cc:55
#9 0x0000000000608ef0 in AsyncCallQueue::fire (this=0xed3d90)
     at AsyncCallQueue.cc:40
#10 0x00000000005204bc in EventLoop::runOnce (this=0x7fffc79e0080)
     at EventLoop.cc:131
#11 0x0000000000520598 in EventLoop::run (this=0x7fffc79e0080)
     at EventLoop.cc:95
#12 0x00000000005798a5 in SquidMain (argc=<value optimized out>,
     argv=0x7fffc79e0248) at main.cc:1506
#13 0x000000000057a0a6 in SquidMainSafe (argc=18773, argv=0x4955)
     at main.cc:1239

>
> Amos
Received on Mon Jul 18 2011 - 10:04:40 MDT

This archive was generated by hypermail 2.2.0 : Tue Jul 19 2011 - 12:00:03 MDT