You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@trafficserver.apache.org by "Brian Geffon (JIRA)" <ji...@apache.org> on 2015/05/19 04:35:02 UTC

[jira] [Created] (TS-3618) Crashes in traffic_cop on shutdown / restart

Brian Geffon created TS-3618:
--------------------------------

             Summary: Crashes in traffic_cop on shutdown / restart
                 Key: TS-3618
                 URL: https://issues.apache.org/jira/browse/TS-3618
             Project: Traffic Server
          Issue Type: Bug
          Components: Cop
            Reporter: Brian Geffon


We're seeing crashes coming from traffic_cop on shutdown or restart, I was able to get the following backtrace: Which seems to indicate that the call to exit() is causing a std::map to call malloc which is obviously not allowed in a signal handler. My proposed fix will be to defer the call to exit() until after the signal handler as returned.

{code}
GNU gdb (GDB) Red Hat Enterprise Linux (7.2-60.el6_4.1)
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/bin/traffic_cop...Reading symbols from /usr/lib/debug/usr/bin/traffic_cop.debug...done.
done.
[New Thread 1536]
[New Thread 1011]
Missing separate debuginfo for
Try: yum --disablerepo='*' --enablerepo='*-debug*' install /usr/lib/debug/.build-id/4e/31c47b2868d02adbbefc6f53fd6d9881e9c4b4
Reading symbols from /usr/lib64/libtsmgmt.so.5.2.0...Reading symbols from /usr/lib/debug/usr/lib64/libtsmgmt.so.5.2.0.debug...done.
done.
Loaded symbols for /usr/lib64/libtsmgmt.so.5.2.0
Reading symbols from /usr/lib64/libtsutil.so.5.2.0...Reading symbols from /usr/lib/debug/usr/lib64/libtsutil.so.5.2.0.debug...done.
done.
Loaded symbols for /usr/lib64/libtsutil.so.5.2.0
Reading symbols from /usr/lib64/libtcl8.5.so...(no debugging symbols found)...done.
Loaded symbols for /usr/lib64/libtcl8.5.so
Reading symbols from /lib64/libresolv.so.2...(no debugging symbols found)...done.
Loaded symbols for /lib64/libresolv.so.2
Reading symbols from /export/apps/openssl/lib/libssl.so.1.0.0...Reading symbols from /usr/lib/debug/export/apps/openssl/lib/libssl.so.1.0.0.debug...
warning: "/usr/lib/debug/export/apps/openssl/lib/libssl.so.1.0.0.debug": separate debug info file has no debug info
(no debugging symbols found)...done.
(no debugging symbols found)...done.
Loaded symbols for /export/apps/openssl/lib/libssl.so.1.0.0
Reading symbols from /export/apps/openssl/lib/libcrypto.so.1.0.0...Reading symbols from /usr/lib/debug/export/apps/openssl/lib/libcrypto.so.1.0.0.debug...
warning: "/usr/lib/debug/export/apps/openssl/lib/libcrypto.so.1.0.0.debug": separate debug info file has no debug info
(no debugging symbols found)...done.
(no debugging symbols found)...done.
Loaded symbols for /export/apps/openssl/lib/libcrypto.so.1.0.0
Reading symbols from /lib64/libpcre.so.0...(no debugging symbols found)...done.
Loaded symbols for /lib64/libpcre.so.0
Reading symbols from /lib64/libz.so.1...(no debugging symbols found)...done.
Loaded symbols for /lib64/libz.so.1
Reading symbols from /lib64/libcrypt.so.1...(no debugging symbols found)...done.
Loaded symbols for /lib64/libcrypt.so.1
Reading symbols from /lib64/librt.so.1...(no debugging symbols found)...done.
Loaded symbols for /lib64/librt.so.1
Reading symbols from /lib64/libpthread.so.0...(no debugging symbols found)...done.
[Thread debugging using libthread_db enabled]
Loaded symbols for /lib64/libpthread.so.0
Reading symbols from /lib64/libdl.so.2...(no debugging symbols found)...done.
Loaded symbols for /lib64/libdl.so.2
Reading symbols from /usr/lib64/libxml2.so.2...(no debugging symbols found)...done.
Loaded symbols for /usr/lib64/libxml2.so.2
Reading symbols from /usr/lib64/libstdc++.so.6...(no debugging symbols found)...done.
Loaded symbols for /usr/lib64/libstdc++.so.6
Reading symbols from /lib64/libm.so.6...(no debugging symbols found)...done.
Loaded symbols for /lib64/libm.so.6
Reading symbols from /lib64/libgcc_s.so.1...(no debugging symbols found)...done.
Loaded symbols for /lib64/libgcc_s.so.1
Reading symbols from /lib64/libc.so.6...(no debugging symbols found)...done.
Loaded symbols for /lib64/libc.so.6
Reading symbols from /lib64/libgssapi_krb5.so.2...(no debugging symbols found)...done.
Loaded symbols for /lib64/libgssapi_krb5.so.2
Reading symbols from /lib64/libkrb5.so.3...(no debugging symbols found)...done.
Loaded symbols for /lib64/libkrb5.so.3
Reading symbols from /lib64/libcom_err.so.2...(no debugging symbols found)...done.
Loaded symbols for /lib64/libcom_err.so.2
Reading symbols from /lib64/libk5crypto.so.3...(no debugging symbols found)...done.
Loaded symbols for /lib64/libk5crypto.so.3
Reading symbols from /lib64/libfreebl3.so...(no debugging symbols found)...done.
Loaded symbols for /lib64/libfreebl3.so
Reading symbols from /lib64/ld-linux-x86-64.so.2...(no debugging symbols found)...done.
Loaded symbols for /lib64/ld-linux-x86-64.so.2
Reading symbols from /lib64/libkrb5support.so.0...(no debugging symbols found)...done.
Loaded symbols for /lib64/libkrb5support.so.0
Reading symbols from /lib64/libkeyutils.so.1...(no debugging symbols found)...done.
Loaded symbols for /lib64/libkeyutils.so.1
Reading symbols from /lib64/libselinux.so.1...(no debugging symbols found)...done.
Loaded symbols for /lib64/libselinux.so.1
Reading symbols from /lib64/libnss_files.so.2...(no debugging symbols found)...done.
Loaded symbols for /lib64/libnss_files.so.2
Core was generated by `/usr/bin/traffic_cop'.
Program terminated with signal 6, Aborted.
#0  0x0000003d99632925 in raise () from /lib64/libc.so.6
Missing separate debuginfos, use: debuginfo-install glibc-2.12-1.132.el6_5.2.x86_64 keyutils-libs-1.4-4.el6.x86_64 krb5-libs-1.10.3-15.el6_5.1.x86_64 libcom_err-1.41.12-18.el6.x86_64 libgcc-4.4.7-4.el6.x86_64 libselinux-2.0.94-5.3.el6_4.1.x86_64 libstdc++-4.4.7-4.el6.x86_64 libxml2-2.7.6-14.el6_5.1.x86_64 nss-softokn-freebl-3.14.3-10.el6_5.x86_64 pcre-7.8-6.el6.x86_64 tcl-8.5.7-6.el6.x86_64 zlib-1.2.3-29.el6.x86_64
(gdb) info thread
  2 Thread 0x7fb8e957a7e0 (LWP 1011)  0x0000003d98e0df3e in _dl_fixup () from /lib64/ld-linux-x86-64.so.2
* 1 Thread 0x7fb8e936a700 (LWP 1536)  0x0000003d99632925 in raise () from /lib64/libc.so.6
(gdb) thread 2
[Switching to thread 2 (Thread 0x7fb8e957a7e0 (LWP 1011))]#0  0x0000003d98e0df3e in _dl_fixup () from /lib64/ld-linux-x86-64.so.2
(gdb) bt
#0  0x0000003d98e0df3e in _dl_fixup () from /lib64/ld-linux-x86-64.so.2
#1  0x0000003d98e14725 in _dl_runtime_resolve () from /lib64/ld-linux-x86-64.so.2
#2  0x00007fb8e95ea846 in __do_global_dtors_aux () from /export/apps/openssl/lib/libcrypto.so.1.0.0
#3  0x0000000000000000 in ?? ()
(gdb) thread 1
[Switching to thread 1 (Thread 0x7fb8e936a700 (LWP 1536))]#0  0x0000003d99632925 in raise () from /lib64/libc.so.6
(gdb) bt
#0  0x0000003d99632925 in raise () from /lib64/libc.so.6
#1  0x0000003d99634105 in abort () from /lib64/libc.so.6
#2  0x0000003d99670837 in __libc_message () from /lib64/libc.so.6
#3  0x0000003d99676166 in malloc_printerr () from /lib64/libc.so.6
#4  0x0000003d9929d4c9 in std::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string() () from /usr/lib64/libstdc++.so.6
#5  0x000000000040be64 in ConfigValue::~ConfigValue (this=0x21b7f28, __in_chrg=<value optimized out>) at traffic_cop.cc:144
#6  0x000000000040bfa5 in std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ConfigValue>::~pair (this=0x21b7f20, __in_chrg=<value optimized out>)
    at /usr/include/c++/4.4.7/bits/stl_pair.h:68
#7  0x000000000040d2c0 in __gnu_cxx::new_allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ConfigValue> >::destroy (this=0x7fb8e93694af, __p=0x21b7f20)
    at /usr/include/c++/4.4.7/ext/new_allocator.h:115
#8  0x000000000040cde1 in std::_Rb_tree<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ConfigValue>, std::_Select1st<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ConfigValue> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ConfigValue> > >::_M_destroy_node (this=0x6309e0, __p=0x21b7f00) at /usr/include/c++/4.4.7/bits/stl_tree.h:383
#9  0x000000000040c68b in std::_Rb_tree<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ConfigValue>, std::_Select1st<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ConfigValue> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ConfigValue> > >::_M_erase (this=0x6309e0, __x=0x21b7f00) at /usr/include/c++/4.4.7/bits/stl_tree.h:972
#10 0x000000000040c668 in std::_Rb_tree<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ConfigValue>, std::_Select1st<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ConfigValue> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ConfigValue> > >::_M_erase (this=0x6309e0, __x=0x21bb170) at /usr/include/c++/4.4.7/bits/stl_tree.h:970
#11 0x000000000040c668 in std::_Rb_tree<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ConfigValue>, std::_Select1st<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ConfigValue> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ConfigValue> > >::_M_erase (this=0x6309e0, __x=0x21a5e50) at /usr/include/c++/4.4.7/bits/stl_tree.h:970
#12 0x000000000040c668 in std::_Rb_tree<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ConfigValue>, std::_Select1st<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ConfigValue> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ConfigValue> > >::_M_erase (this=0x6309e0, __x=0x21b2b60) at /usr/include/c++/4.4.7/bits/stl_tree.h:970
#13 0x000000000040c668 in std::_Rb_tree<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ConfigValue>, std::_Select1st<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ConfigValue> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ConfigValue> > >::_M_erase (this=0x6309e0, __x=0x21afad0) at /usr/include/c++/4.4.7/bits/stl_tree.h:970
#14 0x000000000040c668 in std::_Rb_tree<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ConfigValue>, std::_Select1st<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ConfigValue> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ConfigValue> > >::_M_erase (this=0x6309e0, __x=0x21a5680) at /usr/include/c++/4.4.7/bits/stl_tree.h:970
#15 0x000000000040c668 in std::_Rb_tree<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ConfigValue>, std::_Select1st<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ConfigValue> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ConfigValue> > >::_M_erase (this=0x6309e0, __x=0x21b8550) at /usr/include/c++/4.4.7/bits/stl_tree.h:970
#16 0x000000000040c668 in std::_Rb_tree<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ConfigValue>, st---Type <return> to continue, or q <return> to quit---
d::_Select1st<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ConfigValue> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ConfigValue> > >::_M_erase (this=0x6309e0, __x=0x21a6070) at /usr/include/c++/4.4.7/bits/stl_tree.h:970
#17 0x000000000040c668 in std::_Rb_tree<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ConfigValue>, std::_Select1st<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ConfigValue> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ConfigValue> > >::_M_erase (this=0x6309e0, __x=0x21a7cf0) at /usr/include/c++/4.4.7/bits/stl_tree.h:970
#18 0x000000000040c668 in std::_Rb_tree<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ConfigValue>, std::_Select1st<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ConfigValue> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ConfigValue> > >::_M_erase (this=0x6309e0, __x=0x21b0cc0) at /usr/include/c++/4.4.7/bits/stl_tree.h:970
#19 0x000000000040c668 in std::_Rb_tree<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ConfigValue>, std::_Select1st<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ConfigValue> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ConfigValue> > >::_M_erase (this=0x6309e0, __x=0x21b1e90) at /usr/include/c++/4.4.7/bits/stl_tree.h:970
#20 0x000000000040c27f in std::_Rb_tree<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ConfigValue>, std::_Select1st<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ConfigValue> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ConfigValue> > >::~_Rb_tree (this=0x6309e0, __in_chrg=<value optimized out>) at /usr/include/c++/4.4.7/bits/stl_tree.h:614
#21 0x000000000040d62e in std::map<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, ConfigValue, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, ConfigValue> > >::~map (this=0x6309e0, __in_chrg=<value optimized out>) at /usr/include/c++/4.4.7/bits/stl_map.h:87
#22 0x0000003d99635e22 in exit () from /lib64/libc.so.6
#23 0x0000000000407c11 in sig_term (signum=15) at traffic_cop.cc:269
#24 <signal handler called>
#25 0x0000003d996acced in nanosleep () from /lib64/libc.so.6
#26 0x0000003d996acb60 in sleep () from /lib64/libc.so.6
#27 0x00007fb8e9e41d1c in socket_test_thread () at NetworkUtilsRemote.cc:420
#28 0x0000003d99e079d1 in start_thread () from /lib64/libpthread.so.0
#29 0x0000003d996e8b5d in clone () from /lib64/libc.so.6
(gdb)
{code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)