View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0001355 | Anope Development (1.9.x series) | Chanserv | public | 2011-11-02 17:55 | 2011-11-04 01:01 |
Reporter | Robby | Assigned To | Adam | ||
Priority | normal | Severity | crash | Reproducibility | always |
Status | resolved | Resolution | fixed | ||
Platform | Linux, i686 | OS | Fedora | ||
Summary | 0001355: [anope-1.9-302989b] Crash when removing multiple logging options fast | ||||
Description | When you add some log entries (as shown below) and want to remove them fast, it crashes services. I actually hit this bug when doing this manually (but not so slowly either) and when reproducing it not always crashed services. But now I did find a way that works everytime: just paste the below commands so that they get executed instantly after eachother. | ||||
Steps To Reproduce | Do all these commands quickly (paste them): /CS LOG #Test chanserv/deop MEMO /CS LOG #Test chanserv/op MEMO /CS LOG #Test chanserv/mode MEMO /CS LOG #Test chanserv/mode MEMO /CS LOG #Test chanserv/deop MEMO /CS LOG #Test chanserv/op MEMO | ||||
Additional Information | On a side note, while triggering this crash, it now seems that it spits some backtrace output in the console. Weird, because I start services this way: ./services and I've never seen this happening before. Perhaps this is related to the recent changes to forking? | ||||
Tags | No tags attached. | ||||
|
Fixed in 09dba47653f83d62dd3877b4cbac7af3bd16f341 |
|
bt-cslog.txt (8,546 bytes)
[Nov 02 19:05:53.791926 2011] Debug: Received: :6FSAAAAJN PRIVMSG 7XHAAAAAA :LOG #Test [Nov 02 19:05:53.792809 2011] Debug: Sent: :7XHAAAAAA NOTICE Robby :Log list for #Test: [Nov 02 19:05:53.793364 2011] Debug: Sent: :7XHAAAAAA NOTICE Robby :1: ChanServ mode, MEMO [Nov 02 19:05:53.793811 2011] Debug: Sent: :7XHAAAAAA NOTICE Robby :2: ChanServ deop, MEMO [Nov 02 19:05:53.794155 2011] Debug: Sent: :7XHAAAAAA NOTICE Robby :3: ChanServ op, MEMO [Nov 02 19:06:03.777717 2011] Debug: Received: :6FSAAAAJN PRIVMSG 7XHAAAAAA :LOG #Test chanserv/mode MEMO [Nov 02 19:06:03.778771 2011] Debug: Sent: :7XHAAAAAA NOTICE Robby :Logging for command mode on ChanServ with method MEMO has been removed. [Nov 02 19:06:06.206581 2011] Debug: Received: :6FSAAAAJN PRIVMSG 7XHAAAAAA :LOG #Test chanserv/deop MEMO [Nov 02 19:06:06.207470 2011] Debug: Sent: :7XHAAAAAA NOTICE Robby :Logging for command deop on ChanServ with method MEMO has been removed. Program received signal SIGSEGV, Segmentation fault. 0x00b0fd59 in __gnu_cxx::__exchange_and_add () from /usr/lib/libstdc++.so.6 Missing separate debuginfos, use: debuginfo-install e2fsprogs-libs-1.41.4-6.fc10.i386 glibc-2.9-3.i686 keyutils-libs-1.2-3.fc9.i386 krb5-libs-1.6.3-18.fc10.i386 libgcc-4.3.2-7.i386 libselinux-2.0.78-1.fc10.i386 libstdc++-4.3.2-7.i386 openssl-0.9.8g-14.fc10.i686 sqlite-3.5.9-4.fc10.i386 zlib-1.2.3-18.fc9.i386 (gdb) bt full #0 0x00b0fd59 in __gnu_cxx::__exchange_and_add () from /usr/lib/libstdc++.so.6 No symbol table info available. #1 0x00af2bfe in std::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string () from /usr/lib/libstdc++.so.6 No symbol table info available. #2 0x080ef981 in ~string (this=0x8429e48) at /home/ircd/networks/testnet/inspircd/anope-1.9-302989b/include/anope.h:32 No locals. #3 0x080f01da in std::_Destroy<Anope::string> (__pointer=0x8429e48) at /usr/lib/gcc/i386-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_construct.h:88 No locals. #4 0x080f01ef in std::_Destroy<Anope::string*> (__first=0x8429e48, __last=0x8429e50) at /usr/lib/gcc/i386-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_construct.h:103 No locals. #5 0x080f0215 in std::_Destroy<Anope::string*, Anope::string> (__first=0x8429e48, __last=0x8429e50) at /usr/lib/gcc/i386-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_construct.h:128 No locals. #6 0x080f1dd4 in ~vector (this=0xbffed930) at /usr/lib/gcc/i386-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_vector.h:300 No locals. #7 0x081ffce4 in process (buffer=@0xbfffdf64) at /home/ircd/networks/testnet/inspircd/anope-1.9-302989b/src/process.cpp:91 buf = {_string = {static npos = 4294967295, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x8447b4c "PRIVMSG 7XHAAAAAA :LOG #Test chanserv/deop MEMO"}}, static npos = 4294967295} source = {_string = {static npos = 4294967295, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x8442bdc "6FSAAAAJN"}}, static npos = 4294967295} buf_sep = {<sepstream> = {_vptr.sepstream = 0x825a898, tokens = {_string = {static npos = 4294967295, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x84473d4 "PRIVMSG 7XHAAAAAA :LOG #Test chanserv/deop MEMO"}}, static npos = 4294967295}, last_starting_position = { _M_current = 0x84473eb "#Test chanserv/deop MEMO"}, n = {_M_current = 0x84473eb "#Test chanserv/deop MEMO"}, sep = 32 ' '}, <No data fields>} buf_token = {_string = {static npos = 4294967295, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x842b7fc ":LOG"}}, static npos = 4294967295} command = {_string = {static npos = 4294967295, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x84482e4 "PRIVMSG"}}, static npos = 4294967295} params = {<std::_Vector_base<Anope::string, std::allocator<Anope::string> >> = { _M_impl = {<std::allocator<Anope::string>> = {<__gnu_cxx::new_allocator<Anope::string>> = {<No data fields>}, <No data fields>}, _M_start = 0x8429e48, _M_finish = 0x8429e50, _M_end_of_storage = 0x8429e50}}, <No data fields>} messages = {<std::_Vector_base<Message*, std::allocator<Message*> >> = { _M_impl = {<std::allocator<Message*>> = {<__gnu_cxx::new_allocator<Message*>> = {<No data fields>}, <No data fields>}, _M_start = 0x8448618, _M_finish = 0x844861c, _M_end_of_storage = 0x844861c}}, <No data fields>} #8 0x081a7235 in UplinkSocket::Read (this=0x8431088, buf=@0xbfffdf64) at /home/ircd/networks/testnet/inspircd/anope-1.9-302989b/src/main.cpp:165 No locals. #9 0x082324eb in BufferedSocket::ProcessRead (this=0x84310a8) at /home/ircd/networks/testnet/inspircd/anope-1.9-302989b/src/socket_transport.cpp:57 tbuffer = ":6FSAAAAJN PRIVMSG 7XHAAAAAA :LOG #Test chanserv/deop MEMO\n\000vices, ourTS: 1158019228, TS: 1320257127, difference: 4132729397\n:6FS PRIVMSG #Server :\002DEBUG\002: NOT Applying modes from other side\n:6FS PRIV"... len = 59 sbuffer = {_string = {static npos = 4294967295, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x8444f94 ":6FSAAAAJN PRIVMSG 7XHAAAAAA :LOG #Test chanserv/deop MEMO\n"}}, static npos = 4294967295} lastnewline = 58 ---Type <return> to continue, or q <return> to quit--- stream = {_vptr.sepstream = 0x8261a88, tokens = {_string = {static npos = 4294967295, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x84485b4 ":6FSAAAAJN PRIVMSG 7XHAAAAAA :LOG #Test chanserv/deop MEMO\n"}}, static npos = 4294967295}, last_starting_position = {_M_current = 0x84485ef ""}, n = {_M_current = 0x84485ef ""}, sep = 10 '\n'} tbuf = {_string = {static npos = 4294967295, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x844835c ":6FSAAAAJN PRIVMSG 7XHAAAAAA :LOG #Test chanserv/deop MEMO"}}, static npos = 4294967295} #10 0x0823846e in SocketEngine::Process () at /home/ircd/networks/testnet/inspircd/anope-1.9-302989b/src/socketengines/socketengine_epoll.cpp:138 ev = (epoll_event *) 0x83217b0 it = {_M_node = 0x842f6c0} s = (class Socket *) 0x84310b8 i = 0 total = 1 #11 0x081aa1b1 in main (ac=2, av=0xbffff7f4, envp=0xbffff800) at /home/ircd/networks/testnet/inspircd/anope-1.9-302989b/src/main.cpp:358 cwd = "/home/ircd/networks/testnet/inspircd/anope-1.9-302989b-install/bin", '\0' <repeats 4029 times> n = 62 last_check = 1320257163 updateTimer = {<Timer> = {<Extensible> = {<Base> = {_vptr.Base = 0x8265780, References = {_M_t = { _M_impl = {<std::allocator<std::_Rb_tree_node<dynamic_reference_base*> >> = {<__gnu_cxx::new_allocator<std::_Rb_tree_node<dynamic_reference_base*> >> = {<No data fields>}, <No data fields>}, _M_key_compare = {<std::binary_function<dynamic_reference_base*, dynamic_reference_base*, bool>> = {<No data fields>}, <No data fields>}, _M_header = {_M_color = std::_S_red, _M_parent = 0x0, _M_left = 0xbffff140, _M_right = 0xbffff140}, _M_node_count = 0}}}}, extension_items = {<std::map<Anope::string, ExtensibleItem*, std::less<Anope::string>, std::allocator<std::pair<const Anope::string, ExtensibleItem*> > >> = {_M_t = { _M_impl = {<std::allocator<std::_Rb_tree_node<std::pair<const Anope::string, ExtensibleItem*> > >> = {<__gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<const Anope::string, ExtensibleItem*> > >> = {<No data fields>}, <No data fields>}, _M_key_compare = {<std::binary_function<Anope::string, Anope::string, bool>> = {<No data fields>}, <No data fields>}, _M_header = {_M_color = std::_S_red, _M_parent = 0x0, _M_left = 0xbffff158, _M_right = 0xbffff158}, _M_node_count = 0}}}, <No data fields>}}, settime = 1320257127, trigger = 1320258027, secs = 900, repeat = true}, <No data fields>} (gdb) |