[squid-users] Exception with squid 3.5.25 in ICAP options path

Alex Rousskov rousskov at measurement-factory.com
Tue Mar 13 04:32:06 UTC 2018


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 at 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 at entry=0x8ae66e
> "!theOptionsFetcher", fileName=fileName at entry=0x8ae647 "ServiceRep.cc",
> lineNo=lineNo at entry=50,
>     id=149798962) at TextException.cc:93
> #10 0x00000000008071f9 in Adaptation::Icap::ServiceRep::~ServiceRep
> (this=this at 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 at 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 at entry=0x7fffca605010) at EventLoop.cc:120


More information about the squid-users mailing list