Hi,

working on PowerDNS Recursor, once in a while I'm seeing:

#0  0x000009fd67ef09dc in
libunwind::UnwindInfoSectionsCache::CacheTree_RB_INSERT_COLOR
(this=<optimized out>, 
    head=0x9fd67efc8e8 <libunwind::uwis_cache+8>, elm=0x9fca04be900)
    at 
/usr/src/gnu/lib/libcxxabi/../../../gnu/llvm/libunwind/src/AddressSpace.hpp:243
243       RB_GENERATE(CacheTree, CacheItem, entry, CacheCmp);
[Current thread is 1 (process 349420)]
(gdb) bt
#0  0x000009fd67ef09dc in
libunwind::UnwindInfoSectionsCache::CacheTree_RB_INSERT_COLOR
(this=<optimized out>, 
    head=0x9fd67efc8e8 <libunwind::uwis_cache+8>, elm=0x9fca04be900)
    at 
/usr/src/gnu/lib/libcxxabi/../../../gnu/llvm/libunwind/src/AddressSpace.hpp:243
#1  0x000009fd67eeddef in
libunwind::UnwindInfoSectionsCache::CacheTree_RB_INSERT
(this=<optimized out>, 
    head=<optimized out>, elm=<optimized out>)
    at 
/usr/src/gnu/lib/libcxxabi/../../../gnu/llvm/libunwind/src/AddressSpace.hpp:243
#2  libunwind::UnwindInfoSectionsCache::setUnwindInfoSectionsForPC
(this=<optimized out>, key=10983975073074, 
    uis=...) at 
/usr/src/gnu/lib/libcxxabi/../../../gnu/llvm/libunwind/src/AddressSpace.hpp:237
#3  libunwind::UnwindCursor<libunwind::LocalAddressSpace,
libunwind::Registers_x86_64>::setInfoBasedOnIPRegister (
    this=0x9fd2ca0aa68, isReturnAddress=<optimized out>)
    at 
/usr/src/gnu/lib/libcxxabi/../../../gnu/llvm/libunwind/src/UnwindCursor.hpp:1891
#4  0x000009fd67eedaa4 in
libunwind::UnwindCursor<libunwind::LocalAddressSpace,
libunwind::Registers_x86_64>::step (
    this=0x9fd2ca0aa68) at 
/usr/src/gnu/lib/libcxxabi/../../../gnu/llvm/libunwind/src/UnwindCursor.hpp:2031
#5  0x000009fd67ef15a4 in unwind_phase1 (uc=<optimized out>,
cursor=<optimized out>, exception_object=0x9fd37b24560)
    at 
/usr/src/gnu/lib/libcxxabi/../../../gnu/llvm/libunwind/src/UnwindLevel1.c:46
#6  _Unwind_RaiseException (exception_object=0x9fd37b24560)
    at 
/usr/src/gnu/lib/libcxxabi/../../../gnu/llvm/libunwind/src/UnwindLevel1.c:363
#7  0x000009fd67eeb533 in __cxa_throw (thrown_object=0x9fd37b24580, 
    tinfo=0x9fa6c615a00 <typeinfo for PDNSException>, dest=<optimized out>)
    at 
/usr/src/gnu/lib/libcxxabi/../../../gnu/llvm/libcxxabi/src/cxa_exception.cpp:279
#8  0x000009fa6c295955 in ComboAddress::ComboAddress (this=<optimized
out>, str=..., port=<optimized out>)
    at ./iputils.hh:219
#9  0x000009fa6c489970 in startFrameStreamServers (config=...) at 
pdns_recursor.cc:1248
#10 checkFrameStreamExport (luaconfsLocal=...) at pdns_recursor.cc:1290
#11 0x000009fa6c48158f in recursorThread (n=<optimized out>,
...

This does not happen always, most of the time this exception is
handled correctly, afaik.

The code that twrows an exception is:
      try {
        ComboAddress address(server);
        ...
      }
      catch ...

The ComboAddress constructor throws the exception (and is supposed to
do that). It looks like libunwind gets confused somehow.

Any clue?

        -Otto

Reply via email to