Exception with squid 3.5.25 in ICAP options path

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Exception with squid 3.5.25 in ICAP options path

Arunabha Saha
Seeing a exception followed by termination fairly regularly with Squid-->Icap with this stacktrace on 3.5.25.   
 
The problem typically happens when icap has not been started yet and squid is processing some requests and is configured for ICAP adaptation service.

It seems like the ICAP Options request goes unanswered (as it would since ICAP is not UP) and we try to shut down the ICAP service but there's some dangling state with respect to the options  requests that were sent.

Appreciate it if someone can comment on whether this is known and fixed before i dig a little deeper.   



#0  0x00007ff944120428 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:54
#1  0x00007ff94412202a in __GI_abort () at abort.c:89
#2  0x00007ff944a670d5 in __gnu_cxx::__verbose_terminate_handler() () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#3  0x00007ff944a64cc6 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#4  0x00007ff944a63bc9 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#5  0x00007ff944a645b8 in __gxx_personality_v0 () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#6  0x00007ff9444c4f03 in ?? () from /lib/x86_64-linux-gnu/libgcc_s.so.1
#7  0x00007ff9444c5410 in _Unwind_RaiseException () from /lib/x86_64-linux-gnu/libgcc_s.so.1
#8  0x00007ff944a64f47 in __cxa_throw () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#9  0x00000000006f3486 in Throw (message=message@entry=0x8ae66e "!theOptionsFetcher", fileName=fileName@entry=0x8ae647 "ServiceRep.cc", lineNo=lineNo@entry=50,
    id=149798962) at TextException.cc:93
#10 0x00000000008071f9 in Adaptation::Icap::ServiceRep::~ServiceRep (this=this@entry=0x1298b58, __in_chrg=<optimized out>, __vtt_parm=<optimized out>)
    at ServiceRep.cc:50
#11 0x00000000008073c9 in Adaptation::Icap::ServiceRep::~ServiceRep (this=0x1298b58, __in_chrg=<optimized out>, __vtt_parm=<optimized out>) at ServiceRep.cc:52
#12 0x000000000081d6c3 in RefCount<Adaptation::Service>::dereference (newP=0x0, this=0x133ef88) at ../../../src/base/RefCount.h:79
#13 RefCount<Adaptation::Service>::~RefCount (this=0x133ef88, __in_chrg=<optimized out>) at ../../../src/base/RefCount.h:35
#14 Adaptation::Icap::Launcher::~Launcher (this=0x133ef68, __vtt_parm=0xb5e208 <VTT for Adaptation::Icap::OptXactLauncher+8>, __in_chrg=<optimized out>)
    at Launcher.cc:32
#15 0x0000000000830137 in Adaptation::Icap::OptXactLauncher::~OptXactLauncher (this=0x133ef68, __in_chrg=<optimized out>, __vtt_parm=<optimized out>)
    at ../../../src/adaptation/icap/OptXact.h:55
#16 Adaptation::Icap::OptXactLauncher::~OptXactLauncher (this=0x133ef68, __in_chrg=<optimized out>, __vtt_parm=<optimized out>)
    at ../../../src/adaptation/icap/OptXact.h:55
#17 0x00000000006f0666 in AsyncJob::callEnd (this=0x133efa8) at AsyncJob.cc:144
#18 0x00000000007f4732 in JobDialer<Adaptation::Initiator>::dial (this=0x153f2f0, call=...) at ../../src/base/AsyncJobCalls.h:181
#19 0x00000000006ee331 in AsyncCall::make (this=0x153f2c0) at AsyncCall.cc:40
#20 0x00000000006f26e5 in AsyncCallQueue::fireNext (this=this@entry=0xdc2c60) at AsyncCallQueue.cc:56
#21 0x00000000006f2b09 in AsyncCallQueue::fire (this=0xdc2c60) at AsyncCallQueue.cc:42
#22 0x000000000057def9 in EventLoop::dispatchCalls (this=0x7fffca605010) at EventLoop.cc:143
#23 EventLoop::runOnce (this=this@entry=0x7fffca605010) at EventLoop.cc:120



_______________________________________________
squid-users mailing list
[hidden email]
http://lists.squid-cache.org/listinfo/squid-users
Reply | Threaded
Open this post in threaded view
|

Re: Exception with squid 3.5.25 in ICAP options path

Alex Rousskov
On 03/12/2018 06:06 PM, Arunabha Saha wrote:
> Seeing a exception followed by termination fairly regularly with
> Squid-->Icap with this stacktrace on 3.5.25.   

Disclaimer: The technical discussion below is more suited for squid-dev
or at least Bugzilla, not squid-users.

Please note that this exception is thrown from a destructor. If your
build environment enables C++11 (which is common these days), such
exceptions will kill Squid. Many of those exceptions were less harmful
before C++11. While well-written destructors should not have thrown even
before C++11, these deaths is one of a few seriously non-backward
compatible changes in C++11. We have only understood this a few months
ago, or I would have insisted on not enabling C++11 in v3, even
conditionally...

Modern Squids do a better job _reporting_ such deadly exceptions and a
couple of destructors have been fixed, but we have not gone through all
the relevant destructors to fix them because it takes time to analyze
and handle this properly (i.e., it is not a trivial
wrap-everything-and-forget change).


> Appreciate it if someone can comment on whether this is known and fixed
> before i dig a little deeper.   

FWIW, I do not recall any fixes in that area.

Alex.


> #0  0x00007ff944120428 in __GI_raise (sig=sig@entry=6) at
> ../sysdeps/unix/sysv/linux/raise.c:54
> #1  0x00007ff94412202a in __GI_abort () at abort.c:89
> #2  0x00007ff944a670d5 in __gnu_cxx::__verbose_terminate_handler() ()
> from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
> #3  0x00007ff944a64cc6 in ?? () from
> /usr/lib/x86_64-linux-gnu/libstdc++.so.6
> #4  0x00007ff944a63bc9 in ?? () from
> /usr/lib/x86_64-linux-gnu/libstdc++.so.6
> #5  0x00007ff944a645b8 in __gxx_personality_v0 () from
> /usr/lib/x86_64-linux-gnu/libstdc++.so.6
> #6  0x00007ff9444c4f03 in ?? () from /lib/x86_64-linux-gnu/libgcc_s.so.1
> #7  0x00007ff9444c5410 in _Unwind_RaiseException () from
> /lib/x86_64-linux-gnu/libgcc_s.so.1
> #8  0x00007ff944a64f47 in __cxa_throw () from
> /usr/lib/x86_64-linux-gnu/libstdc++.so.6
> #9  0x00000000006f3486 in Throw (message=message@entry=0x8ae66e
> "!theOptionsFetcher", fileName=fileName@entry=0x8ae647 "ServiceRep.cc",
> lineNo=lineNo@entry=50,
>     id=149798962) at TextException.cc:93
> #10 0x00000000008071f9 in Adaptation::Icap::ServiceRep::~ServiceRep
> (this=this@entry=0x1298b58, __in_chrg=<optimized out>,
> __vtt_parm=<optimized out>)
>     at ServiceRep.cc:50
> #11 0x00000000008073c9 in Adaptation::Icap::ServiceRep::~ServiceRep
> (this=0x1298b58, __in_chrg=<optimized out>, __vtt_parm=<optimized out>)
> at ServiceRep.cc:52
> #12 0x000000000081d6c3 in RefCount<Adaptation::Service>::dereference
> (newP=0x0, this=0x133ef88) at ../../../src/base/RefCount.h:79
> #13 RefCount<Adaptation::Service>::~RefCount (this=0x133ef88,
> __in_chrg=<optimized out>) at ../../../src/base/RefCount.h:35
> #14 Adaptation::Icap::Launcher::~Launcher (this=0x133ef68,
> __vtt_parm=0xb5e208 <VTT for Adaptation::Icap::OptXactLauncher+8>,
> __in_chrg=<optimized out>)
>     at Launcher.cc:32
> #15 0x0000000000830137 in
> Adaptation::Icap::OptXactLauncher::~OptXactLauncher (this=0x133ef68,
> __in_chrg=<optimized out>, __vtt_parm=<optimized out>)
>     at ../../../src/adaptation/icap/OptXact.h:55
> #16 Adaptation::Icap::OptXactLauncher::~OptXactLauncher (this=0x133ef68,
> __in_chrg=<optimized out>, __vtt_parm=<optimized out>)
>     at ../../../src/adaptation/icap/OptXact.h:55
> #17 0x00000000006f0666 in AsyncJob::callEnd (this=0x133efa8) at
> AsyncJob.cc:144
> #18 0x00000000007f4732 in JobDialer<Adaptation::Initiator>::dial
> (this=0x153f2f0, call=...) at ../../src/base/AsyncJobCalls.h:181
> #19 0x00000000006ee331 in AsyncCall::make (this=0x153f2c0) at
> AsyncCall.cc:40
> #20 0x00000000006f26e5 in AsyncCallQueue::fireNext
> (this=this@entry=0xdc2c60) at AsyncCallQueue.cc:56
> #21 0x00000000006f2b09 in AsyncCallQueue::fire (this=0xdc2c60) at
> AsyncCallQueue.cc:42
> #22 0x000000000057def9 in EventLoop::dispatchCalls (this=0x7fffca605010)
> at EventLoop.cc:143
> #23 EventLoop::runOnce (this=this@entry=0x7fffca605010) at EventLoop.cc:120
_______________________________________________
squid-users mailing list
[hidden email]
http://lists.squid-cache.org/listinfo/squid-users