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] [Assigned] (TS-3618) Crashes in traffic_cop on shutdown / restart

     [ https://issues.apache.org/jira/browse/TS-3618?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Brian Geffon reassigned TS-3618:
--------------------------------

    Assignee: Brian Geffon

> 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
>            Assignee: 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)