Whenever a certain user QUITs while running the andchat (http://www.andchat.net/) client for android znc seg faults thusly.
ZNC compiled from git source.
debian squeeze
Do you need any more information?
Thank you
[New Thread 0x7f19f24b9700 (LWP 20702)]
Program received signal SIGSEGV, Segmentation fault.
0x000000000053e430 in std::string::_M_data (this=0xa08310e51354d0eb) at /usr/include/c++/4.4/bits/basic_string.h:278
278 { return _M_dataplus._M_p; }
Current language: auto
The current source language is "auto; currently c++".
(gdb) bt #0 0x000000000053e430 in std::string::_M_data (this=0xa08310e51354d0eb) at /usr/include/c++/4.4/bits/basic_string.h:278 #1 0x000000000053de48 in std::string::_M_rep (this=0xa08310e51354d0eb) at /usr/include/c++/4.4/bits/basic_string.h:286 #2 0x000000000053d98a in basic_string (this=0x7fff55890560, __str=...) at /usr/include/c++/4.4/bits/basic_string.tcc:174 #3 0x000000000053db66 in std::operator+<char, std::char_traits, std::allocator > (__lhs=..., __rhs=0x6de3a6 "/")
at /usr/include/c++/4.4/bits/basic_string.h:2201
#4 0x0000000000610198 in CClient::GetFullName (this=0x2464550) at src/Client.cpp:753 #5 0x00000000006105ec in CClient::PutClient (this=0x2464550, sLine=...) at src/Client.cpp:761 #6 0x00000000005b8736 in CIRCNetwork::PutUser (this=0x24244c0, sLine=..., pClient=0x0, pSkipClient=0x0) at src/IRCNetwork.cpp:655 #7 0x00000000005efc67 in CIRCSock::ReadLine (this=0x2446010, sData=...) at src/IRCSock.cpp:840 #8 0x0000000000559986 in Csock::PushBuff (this=0x2446010,
#9 0x000000000055cbe0 in CSocketManager::Loop (this=0x240a158) at src/Csocket.cpp:3108 #10 0x000000000055cfb4 in CSocketManager::DynamicSelectLoop (this=0x240a158, iLowerBounds=100000, iUpperBounds=600000000,
iMaxResolution=3600) at src/Csocket.cpp:3166
#11 0x00000000005771cb in CZNC::Loop (this=0x240a080) at src/znc.cpp:219 #12 0x000000000053ce9e in main (argc=4, argv=0x7fff55893308) at src/main.cpp:355
(gdb) bt full #0 0x000000000053e430 in std::string::_M_data (this=0xa08310e51354d0eb) at /usr/include/c++/4.4/bits/basic_string.h:278
No locals. #1 0x000000000053de48 in std::string::_M_rep (this=0xa08310e51354d0eb) at /usr/include/c++/4.4/bits/basic_string.h:286
No locals. #2 0x000000000053d98a in basic_string (this=0x7fff55890560, __str=...) at /usr/include/c++/4.4/bits/basic_string.tcc:174
No locals. #3 0x000000000053db66 in std::operator+<char, std::char_traits, std::allocator > (__lhs=..., __rhs=0x6de3a6 "/")
at /usr/include/c++/4.4/bits/basic_string.h:2201
__str = {static npos = 18446744073709551615,
_M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},
_M_p = 0x7fff55890530 "\220\005\211U\377\177"}}
__str = DWARF-2 expression error: DW_OP_reg operations must be used either alone or in conjuction with DW_OP_piece.
Dear Sirs and Ma'ams,
Whenever a certain user QUITs while running the andchat (http://www.andchat.net/) client for android znc seg faults thusly.
ZNC compiled from git source.
debian squeeze
Do you need any more information?
Thank you
[New Thread 0x7f19f24b9700 (LWP 20702)]
Program received signal SIGSEGV, Segmentation fault.
0x000000000053e430 in std::string::_M_data (this=0xa08310e51354d0eb) at /usr/include/c++/4.4/bits/basic_string.h:278
278 { return _M_dataplus._M_p; }
Current language: auto
The current source language is "auto; currently c++".
(gdb) bt
#0 0x000000000053e430 in std::string::_M_data (this=0xa08310e51354d0eb) at /usr/include/c++/4.4/bits/basic_string.h:278
#1 0x000000000053de48 in std::string::_M_rep (this=0xa08310e51354d0eb) at /usr/include/c++/4.4/bits/basic_string.h:286
#2 0x000000000053d98a in basic_string (this=0x7fff55890560, __str=...) at /usr/include/c++/4.4/bits/basic_string.tcc:174
#3 0x000000000053db66 in std::operator+<char, std::char_traits<char>, std::allocator<char> > (__lhs=..., __rhs=0x6de3a6 "/")
```
at /usr/include/c++/4.4/bits/basic_string.h:2201
```
#4 0x0000000000610198 in CClient::GetFullName (this=0x2464550) at src/Client.cpp:753
#5 0x00000000006105ec in CClient::PutClient (this=0x2464550, sLine=...) at src/Client.cpp:761
#6 0x00000000005b8736 in CIRCNetwork::PutUser (this=0x24244c0, sLine=..., pClient=0x0, pSkipClient=0x0) at src/IRCNetwork.cpp:655
#7 0x00000000005efc67 in CIRCSock::ReadLine (this=0x2446010, sData=...) at src/IRCSock.cpp:840
#8 0x0000000000559986 in Csock::PushBuff (this=0x2446010,
```
data=0x2452290 ":irc-phx1.lindenlab.com 324 landon_ #lindenlab +\r\n:irc-phx1.lindenlab.com 329 landon_ #lindenlab 1311367921\r\n\336\337x\020#E\002", len=109, bStartAtZero=false) at src/Csocket.cpp:2148
```
#9 0x000000000055cbe0 in CSocketManager::Loop (this=0x240a158) at src/Csocket.cpp:3108
#10 0x000000000055cfb4 in CSocketManager::DynamicSelectLoop (this=0x240a158, iLowerBounds=100000, iUpperBounds=600000000,
```
iMaxResolution=3600) at src/Csocket.cpp:3166
```
#11 0x00000000005771cb in CZNC::Loop (this=0x240a080) at src/znc.cpp:219
#12 0x000000000053ce9e in main (argc=4, argv=0x7fff55893308) at src/main.cpp:355
(gdb) bt full
#0 0x000000000053e430 in std::string::_M_data (this=0xa08310e51354d0eb) at /usr/include/c++/4.4/bits/basic_string.h:278
No locals.
#1 0x000000000053de48 in std::string::_M_rep (this=0xa08310e51354d0eb) at /usr/include/c++/4.4/bits/basic_string.h:286
No locals.
#2 0x000000000053d98a in basic_string (this=0x7fff55890560, __str=...) at /usr/include/c++/4.4/bits/basic_string.tcc:174
No locals.
#3 0x000000000053db66 in std::operator+<char, std::char_traits<char>, std::allocator<char> > (__lhs=..., __rhs=0x6de3a6 "/")
```
at /usr/include/c++/4.4/bits/basic_string.h:2201
__str = {static npos = 18446744073709551615,
_M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},
_M_p = 0x7fff55890530 "\220\005\211U\377\177"}}
__str = DWARF-2 expression error: DW_OP_reg operations must be used either alone or in conjuction with DW_OP_piece.
```
<!-- github-sync-id:40738886 -->
Git source changes on a regular basis. Please do specify which commit you compiled from to help the code monkeys track down the issue.
> Do you need any more information?
Git source changes on a regular basis. Please do specify which commit you compiled from to help the code monkeys track down the issue.
<!-- github-comment-id:52836163 -->
Which modules do you have loaded? Have they been built with znc-build from the exact same znc version you are running?
Which modules do you have loaded? Have they been built with znc-build from the exact same znc version you are running?
<!-- github-comment-id:52843512 -->
are RPL_CHANNELMODEIS and RPL_CREATIONTIME, respectively. Maybe it has nothing to do with QUIT, because those look like automatic replies sent after joining a channel. Looks a bit weird that they have a different target, but this has probably nothing to do with the crash.
The ZNC version you are running has some recently introduced new module hooks (https://github.com/znc/znc/commit/76bfa99dd02f0fed0d8c8e4b678766c95a167205), so I was suspecting the crash would be due to binary incompatibility. Those look like built-in modules, though, so they should've been rebuilt correctly together with ZNC. Do you remember if you did a clean or incremental build?
Messages from stack frame 8:
```
:irc-phx1.lindenlab.com 324 landon #lindenlab +
:irc-phx1.lindenlab.com 329 landon_ #lindenlab 1311367921
```
are RPL_CHANNELMODEIS and RPL_CREATIONTIME, respectively. Maybe it has nothing to do with QUIT, because those look like automatic replies sent after joining a channel. Looks a bit weird that they have a different target, but this has probably nothing to do with the crash.
The ZNC version you are running has some recently introduced new module hooks (https://github.com/znc/znc/commit/76bfa99dd02f0fed0d8c8e4b678766c95a167205), so I was suspecting the crash would be due to binary incompatibility. Those look like built-in modules, though, so they should've been rebuilt correctly together with ZNC. Do you remember if you did a clean or incremental build?
<!-- github-comment-id:52845778 -->
Could you run znc with the --debug argument and make it crash quickly? Perhaps that helps in figuring out what went wrong.
Could you run znc with the `--debug` argument and make it crash quickly? Perhaps that helps in figuring out what went wrong.
<!-- github-comment-id:52846978 -->
I wanted to make sure i had a clean setup, so i tried to compule again from a new git clone. it complained about my compiler version, so i downloaded the 1.4 tarball. I've compiled but the master crasher has left for the day. I'll get back to you as soon as I can.
Thanks
Jerm
I wanted to make sure i had a clean setup, so i tried to compule again from a new git clone. it complained about my compiler version, so i downloaded the 1.4 tarball. I've compiled but the master crasher has left for the day. I'll get back to you as soon as I can.
Thanks
Jerm
<!-- github-comment-id:52860909 -->
Program received signal SIGSEGV, Segmentation fault.
0x000000000053b0c2 in std::string::_M_data (this=0x91) at /usr/include/c++/4.4/bits/basic_string.h:278
278 { return _M_dataplus._M_p; }
Current language: auto
The current source language is "auto; currently c++".
(gdb) bt full #0 0x000000000053b0c2 in std::string::_M_data (this=0x91) at /usr/include/c++/4.4/bits/basic_string.h:278
No locals. #1 0x000000000053aada in std::string::_M_rep (this=0x91) at /usr/include/c++/4.4/bits/basic_string.h:286
No locals. #2 0x000000000053a61c in basic_string (this=0x7fff8a55ae80, __str=...) at /usr/include/c++/4.4/bits/basic_string.tcc:174
No locals. #3 0x000000000053a7f8 in std::operator+<char, std::char_traits, std::allocator > (__lhs=..., __rhs=0x6d2706 "/") at /usr/include/c++/4.4/bits/basic_string.h:2201
__str = {static npos = 18446744073709551615, _M_dataplus = {std::allocator = {<__gnu_cxx::new_allocator> = {}, }, _M_p = 0x0}}
__str = DWARF-2 expression error: DW_OP_reg operations must be used either alone or in conjuction with DW_OP_piece.
(gdb) bt #0 0x000000000053b0c2 in std::string::_M_data (this=0x91) at /usr/include/c++/4.4/bits/basic_string.h:278 #1 0x000000000053aada in std::string::_M_rep (this=0x91) at /usr/include/c++/4.4/bits/basic_string.h:286 #2 0x000000000053a61c in basic_string (this=0x7fff8a55ae80, __str=...) at /usr/include/c++/4.4/bits/basic_string.tcc:174 #3 0x000000000053a7f8 in std::operator+<char, std::char_traits, std::allocator > (_lhs=..., rhs=0x6d2706 "/") at /usr/include/c++/4.4/bits/basic_string.h:2201 #4 0x0000000000609a8e in CClient::GetFullName (this=0xcb1430) at src/Client.cpp:751 #5 0x0000000000609b6d in CClient::PutClient (this=0xcb1430, sLine=...) at src/Client.cpp:755 #6 0x00000000005b3eda in CIRCNetwork::PutUser (this=0xc71060, sLine=..., pClient=0x0, pSkipClient=0x0) at src/IRCNetwork.cpp:588 #7 0x00000000005e98d1 in CIRCSock::ReadLine (this=0xc98ab0, sData=...) at src/IRCSock.cpp:835 #8 0x000000000055624a in Csock::PushBuff (this=0xc98ab0,
data=0xca5060 ":irc-phx1.lindenlab.com 324 landon #lindenlab +\r\n:irc-phx1.lindenlab.com 329 landon #lindenlab 1311367921\r\n :0 zombot0\r\n:irc-phx1.lindenlab.com 352 landon #test jacobi pdp12.lindenlab.com irc-phx0."..., len=109, bStartAtZero=false)
at src/Csocket.cpp:1986 #9 0x000000000055944c in CSocketManager::Loop (this=0xc56158) at src/Csocket.cpp:2894 #10 0x0000000000559802 in CSocketManager::DynamicSelectLoop (this=0xc56158, iLowerBounds=100000, iUpperBounds=600000000, iMaxResolution=3600) at src/Csocket.cpp:2952 #11 0x00000000005738df in CZNC::Loop (this=0xc56080) at src/znc.cpp:213 #12 0x0000000000539b36 in main (argc=4, argv=0x7fff8a55dab8) at src/main.cpp:352
compiled from 1.4 tarball
same thing.
I can connect with textual, and it works fine. I can send messages, quit, whatever. landon connects with andchat, crashes it.
from the debug messages:
[2014-08-21 17:56:31.306225](landon/ll) ZNC -> CLI [:landon_!landon@pdp40.lindenlab.com PRIVMSG #test :[17:56:25] Test ]
[2014-08-21 17:56:31.306255](landon/ll) ZNC -> CLI [:***!znc@znc.in PRIVMSG #test :Playback Complete.]
[2014-08-21 17:56:31.340983](landon/ll) CLI -> ZNC [CAP END]
[2014-08-21 17:56:31.439099](landon/ll) CLI -> ZNC [MODE #lindenlab]
[2014-08-21 17:56:31.439161](landon/ll) ZNC -> IRC [MODE #lindenlab]
[2014-08-21 17:56:31.440318](landon/ll) IRC -> ZNC [:irc-phx1.lindenlab.com 324 landon_ #lindenlab +]
Segmentation fault
gdb:
Program received signal SIGSEGV, Segmentation fault.
0x000000000053b0c2 in std::string::_M_data (this=0x91) at /usr/include/c++/4.4/bits/basic_string.h:278
278 { return _M_dataplus._M_p; }
Current language: auto
The current source language is "auto; currently c++".
(gdb) bt full
#0 0x000000000053b0c2 in std::string::_M_data (this=0x91) at /usr/include/c++/4.4/bits/basic_string.h:278
No locals.
#1 0x000000000053aada in std::string::_M_rep (this=0x91) at /usr/include/c++/4.4/bits/basic_string.h:286
No locals.
#2 0x000000000053a61c in basic_string (this=0x7fff8a55ae80, __str=...) at /usr/include/c++/4.4/bits/basic_string.tcc:174
No locals.
#3 0x000000000053a7f8 in std::operator+<char, std::char_traits<char>, std::allocator<char> > (__lhs=..., __rhs=0x6d2706 "/") at /usr/include/c++/4.4/bits/basic_string.h:2201
__str = {static npos = 18446744073709551615, _M_dataplus = {std::allocator<char> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x0}}
__str = DWARF-2 expression error: DW_OP_reg operations must be used either alone or in conjuction with DW_OP_piece.
(gdb) bt
#0 0x000000000053b0c2 in std::string::_M_data (this=0x91) at /usr/include/c++/4.4/bits/basic_string.h:278
#1 0x000000000053aada in std::string::_M_rep (this=0x91) at /usr/include/c++/4.4/bits/basic_string.h:286
#2 0x000000000053a61c in basic_string (this=0x7fff8a55ae80, __str=...) at /usr/include/c++/4.4/bits/basic_string.tcc:174
#3 0x000000000053a7f8 in std::operator+<char, std::char_traits<char>, std::allocator<char> > (__lhs=..., __rhs=0x6d2706 "/") at /usr/include/c++/4.4/bits/basic_string.h:2201
#4 0x0000000000609a8e in CClient::GetFullName (this=0xcb1430) at src/Client.cpp:751
#5 0x0000000000609b6d in CClient::PutClient (this=0xcb1430, sLine=...) at src/Client.cpp:755
#6 0x00000000005b3eda in CIRCNetwork::PutUser (this=0xc71060, sLine=..., pClient=0x0, pSkipClient=0x0) at src/IRCNetwork.cpp:588
#7 0x00000000005e98d1 in CIRCSock::ReadLine (this=0xc98ab0, sData=...) at src/IRCSock.cpp:835
#8 0x000000000055624a in Csock::PushBuff (this=0xc98ab0,
data=0xca5060 ":irc-phx1.lindenlab.com 324 landon_ #lindenlab +\r\n:irc-phx1.lindenlab.com 329 landon_ #lindenlab 1311367921\r\n :0 zombot0\r\n:irc-phx1.lindenlab.com 352 landon_ #test jacobi pdp12.lindenlab.com irc-phx0."..., len=109, bStartAtZero=false)
at src/Csocket.cpp:1986
#9 0x000000000055944c in CSocketManager::Loop (this=0xc56158) at src/Csocket.cpp:2894
#10 0x0000000000559802 in CSocketManager::DynamicSelectLoop (this=0xc56158, iLowerBounds=100000, iUpperBounds=600000000, iMaxResolution=3600) at src/Csocket.cpp:2952
#11 0x00000000005738df in CZNC::Loop (this=0xc56080) at src/znc.cpp:213
#12 0x0000000000539b36 in main (argc=4, argv=0x7fff8a55dab8) at src/main.cpp:352
<!-- github-comment-id:52959507 -->
How come the debug output doesn't match with what ZNC 1.4 source code does?
```
2014-08-21 17:56:31.440318 IRC -> ZNC [:irc-phx1.lindenlab.com 324 landon_ #lindenlab +]
```
vs. https://github.com/znc/znc/blob/znc-1.4/src/IRCSock.cpp#L135
```
DEBUG("(" << m_pNetwork->GetUser()->GetUserName() << "/" << m_pNetwork->GetName() << ") IRC -> ZNC [" << sLine << "]");
```
The `(username/network)` part is missing. Is the output or ZNC modified, or what's going on?
Interestingly, the missing part does essentially the same thing where it crashes in stack frame 4: CClient::GetFullName (src/Client.cpp:751): https://github.com/znc/znc/blob/znc-1.4/src/Client.cpp#L751
<!-- github-comment-id:53159074 -->
Uhm, check znc --version AND /msg *status version. What are the odds of starting a wrong/older version of znc instead of the intended one?
Uhm, check `znc --version` AND `/msg *status version`. What are the odds of starting a wrong/older version of znc instead of the intended one?
<!-- github-comment-id:53160555 -->
It also breaks in a similar way running on different machine that is debian jessie with the packaged version of znc (1.4-1+b1)
It also breaks in a similar way running on different machine that is debian jessie with the packaged version of znc (1.4-1+b1)
<!-- github-comment-id:53319764 -->
Reproducing the crash is not as simple as connecting ZNC with AndChat. I had no problems with AndChat v1.4.3.2.
The best I can think of is to paste all relevant debug output all the way from where the problematic client connects and to the segfault. Then we can see the whole sequence of events, and details of the IRCd etc. which might help to setup an environment that can reproduce the problem.
PS. To avoid confusion, please avoid manipulating the debug output otherwise than filtering out irrelevant lines and passwords.
Reproducing the crash is not as simple as connecting ZNC with AndChat. I had no problems with AndChat v1.4.3.2.
The best I can think of is to paste all relevant debug output all the way from where the problematic client connects and to the segfault. Then we can see the whole sequence of events, and details of the IRCd etc. which might help to setup an environment that can reproduce the problem.
PS. To avoid confusion, please avoid manipulating the debug output otherwise than filtering out irrelevant lines and passwords.
<!-- github-comment-id:53467914 -->
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Dear Sirs and Ma'ams,
Whenever a certain user QUITs while running the andchat (http://www.andchat.net/) client for android znc seg faults thusly.
ZNC compiled from git source.
debian squeeze
Do you need any more information?
Thank you
[New Thread 0x7f19f24b9700 (LWP 20702)]
Program received signal SIGSEGV, Segmentation fault.
0x000000000053e430 in std::string::_M_data (this=0xa08310e51354d0eb) at /usr/include/c++/4.4/bits/basic_string.h:278
278 { return _M_dataplus._M_p; }
Current language: auto
The current source language is "auto; currently c++".
(gdb) bt
#0 0x000000000053e430 in std::string::_M_data (this=0xa08310e51354d0eb) at /usr/include/c++/4.4/bits/basic_string.h:278
#1 0x000000000053de48 in std::string::_M_rep (this=0xa08310e51354d0eb) at /usr/include/c++/4.4/bits/basic_string.h:286
#2 0x000000000053d98a in basic_string (this=0x7fff55890560, __str=...) at /usr/include/c++/4.4/bits/basic_string.tcc:174
#3 0x000000000053db66 in std::operator+<char, std::char_traits, std::allocator > (__lhs=..., __rhs=0x6de3a6 "/")
#4 0x0000000000610198 in CClient::GetFullName (this=0x2464550) at src/Client.cpp:753
#5 0x00000000006105ec in CClient::PutClient (this=0x2464550, sLine=...) at src/Client.cpp:761
#6 0x00000000005b8736 in CIRCNetwork::PutUser (this=0x24244c0, sLine=..., pClient=0x0, pSkipClient=0x0) at src/IRCNetwork.cpp:655
#7 0x00000000005efc67 in CIRCSock::ReadLine (this=0x2446010, sData=...) at src/IRCSock.cpp:840
#8 0x0000000000559986 in Csock::PushBuff (this=0x2446010,
#9 0x000000000055cbe0 in CSocketManager::Loop (this=0x240a158) at src/Csocket.cpp:3108
#10 0x000000000055cfb4 in CSocketManager::DynamicSelectLoop (this=0x240a158, iLowerBounds=100000, iUpperBounds=600000000,
#11 0x00000000005771cb in CZNC::Loop (this=0x240a080) at src/znc.cpp:219
#12 0x000000000053ce9e in main (argc=4, argv=0x7fff55893308) at src/main.cpp:355
(gdb) bt full
#0 0x000000000053e430 in std::string::_M_data (this=0xa08310e51354d0eb) at /usr/include/c++/4.4/bits/basic_string.h:278
No locals.
#1 0x000000000053de48 in std::string::_M_rep (this=0xa08310e51354d0eb) at /usr/include/c++/4.4/bits/basic_string.h:286
No locals.
#2 0x000000000053d98a in basic_string (this=0x7fff55890560, __str=...) at /usr/include/c++/4.4/bits/basic_string.tcc:174
No locals.
#3 0x000000000053db66 in std::operator+<char, std::char_traits, std::allocator > (__lhs=..., __rhs=0x6de3a6 "/")
Git source changes on a regular basis. Please do specify which commit you compiled from to help the code monkeys track down the issue.
commit
680935723fAuthor: Uli Schlachter psychon@znc.in
Date: Mon Jul 14 15:56:03 2014 +0200
Which modules do you have loaded? Have they been built with znc-build from the exact same znc version you are running?
Global modules are:
LoadModule = webadmin
LoadModule = imapauth imap.gmail.com +993 %@lindenlab.com
for that user:
i did a git clone
./autogen.sh
./configure --disable-optimization --enable-debug
make
sudo make install
Messages from stack frame 8:
are RPL_CHANNELMODEIS and RPL_CREATIONTIME, respectively. Maybe it has nothing to do with QUIT, because those look like automatic replies sent after joining a channel. Looks a bit weird that they have a different target, but this has probably nothing to do with the crash.
The ZNC version you are running has some recently introduced new module hooks (https://github.com/znc/znc/commit/76bfa99dd02f0fed0d8c8e4b678766c95a167205), so I was suspecting the crash would be due to binary incompatibility. Those look like built-in modules, though, so they should've been rebuilt correctly together with ZNC. Do you remember if you did a clean or incremental build?
Could you run znc with the
--debugargument and make it crash quickly? Perhaps that helps in figuring out what went wrong.I wanted to make sure i had a clean setup, so i tried to compule again from a new git clone. it complained about my compiler version, so i downloaded the 1.4 tarball. I've compiled but the master crasher has left for the day. I'll get back to you as soon as I can.
Thanks
Jerm
compiled from 1.4 tarball
same thing.
I can connect with textual, and it works fine. I can send messages, quit, whatever. landon connects with andchat, crashes it.
from the debug messages:
2014-08-21 17:56:31.306225 ZNC -> CLI [:landon_!landon@pdp40.lindenlab.com PRIVMSG #test :[17:56:25] Test ]
2014-08-21 17:56:31.306255 ZNC -> CLI [:***!znc@znc.in PRIVMSG #test :Playback Complete.]
2014-08-21 17:56:31.340983 CLI -> ZNC [CAP END]
2014-08-21 17:56:31.439099 CLI -> ZNC [MODE #lindenlab]
2014-08-21 17:56:31.439161 ZNC -> IRC [MODE #lindenlab]
2014-08-21 17:56:31.440318 IRC -> ZNC [:irc-phx1.lindenlab.com 324 landon_ #lindenlab +]
Segmentation fault
gdb:
Program received signal SIGSEGV, Segmentation fault.
0x000000000053b0c2 in std::string::_M_data (this=0x91) at /usr/include/c++/4.4/bits/basic_string.h:278
278 { return _M_dataplus._M_p; }
Current language: auto
The current source language is "auto; currently c++".
(gdb) bt full
#0 0x000000000053b0c2 in std::string::_M_data (this=0x91) at /usr/include/c++/4.4/bits/basic_string.h:278
No locals.
#1 0x000000000053aada in std::string::_M_rep (this=0x91) at /usr/include/c++/4.4/bits/basic_string.h:286
No locals.
#2 0x000000000053a61c in basic_string (this=0x7fff8a55ae80, __str=...) at /usr/include/c++/4.4/bits/basic_string.tcc:174
No locals.
#3 0x000000000053a7f8 in std::operator+<char, std::char_traits, std::allocator > (__lhs=..., __rhs=0x6d2706 "/") at /usr/include/c++/4.4/bits/basic_string.h:2201
__str = {static npos = 18446744073709551615, _M_dataplus = {std::allocator = {<__gnu_cxx::new_allocator> = {}, }, _M_p = 0x0}}
__str = DWARF-2 expression error: DW_OP_reg operations must be used either alone or in conjuction with DW_OP_piece.
(gdb) bt
#0 0x000000000053b0c2 in std::string::_M_data (this=0x91) at /usr/include/c++/4.4/bits/basic_string.h:278
#1 0x000000000053aada in std::string::_M_rep (this=0x91) at /usr/include/c++/4.4/bits/basic_string.h:286
#2 0x000000000053a61c in basic_string (this=0x7fff8a55ae80, __str=...) at /usr/include/c++/4.4/bits/basic_string.tcc:174
#3 0x000000000053a7f8 in std::operator+<char, std::char_traits, std::allocator > (_lhs=..., rhs=0x6d2706 "/") at /usr/include/c++/4.4/bits/basic_string.h:2201
#4 0x0000000000609a8e in CClient::GetFullName (this=0xcb1430) at src/Client.cpp:751
#5 0x0000000000609b6d in CClient::PutClient (this=0xcb1430, sLine=...) at src/Client.cpp:755
#6 0x00000000005b3eda in CIRCNetwork::PutUser (this=0xc71060, sLine=..., pClient=0x0, pSkipClient=0x0) at src/IRCNetwork.cpp:588
#7 0x00000000005e98d1 in CIRCSock::ReadLine (this=0xc98ab0, sData=...) at src/IRCSock.cpp:835
#8 0x000000000055624a in Csock::PushBuff (this=0xc98ab0,
data=0xca5060 ":irc-phx1.lindenlab.com 324 landon #lindenlab +\r\n:irc-phx1.lindenlab.com 329 landon #lindenlab 1311367921\r\n :0 zombot0\r\n:irc-phx1.lindenlab.com 352 landon #test jacobi pdp12.lindenlab.com irc-phx0."..., len=109, bStartAtZero=false)
at src/Csocket.cpp:1986
#9 0x000000000055944c in CSocketManager::Loop (this=0xc56158) at src/Csocket.cpp:2894
#10 0x0000000000559802 in CSocketManager::DynamicSelectLoop (this=0xc56158, iLowerBounds=100000, iUpperBounds=600000000, iMaxResolution=3600) at src/Csocket.cpp:2952
#11 0x00000000005738df in CZNC::Loop (this=0xc56080) at src/znc.cpp:213
#12 0x0000000000539b36 in main (argc=4, argv=0x7fff8a55dab8) at src/main.cpp:352
znc --version
ZNC 1.4 - http://znc.in
IPv6: yes, SSL: yes, DNS: threads
https://gist.github.com/jermlinden/531628e8b9a455c5534f
How come the debug output doesn't match with what ZNC 1.4 source code does?
vs. https://github.com/znc/znc/blob/znc-1.4/src/IRCSock.cpp#L135
The
(username/network)part is missing. Is the output or ZNC modified, or what's going on?Interestingly, the missing part does essentially the same thing where it crashes in stack frame 4: CClient::GetFullName (src/Client.cpp:751): https://github.com/znc/znc/blob/znc-1.4/src/Client.cpp#L751
Uhm, check
znc --versionAND/msg *status version. What are the odds of starting a wrong/older version of znc instead of the intended one?/usr/local/bin/znc --version
ZNC 1.4 - http://znc.in
IPv6: yes, SSL: yes, DNS: threads
[10:57:06] <jerm_> version
[10:57:06] <_status> ZNC 1.4 - http://znc.in
[10:57:06] <_status> IPv6: yes, SSL: yes, DNS: threads
It also breaks in a similar way running on different machine that is debian jessie with the packaged version of znc (1.4-1+b1)
1.2 crashed
1.0 crashed
0.206 doesn't crash
Reproducing the crash is not as simple as connecting ZNC with AndChat. I had no problems with AndChat v1.4.3.2.
The best I can think of is to paste all relevant debug output all the way from where the problematic client connects and to the segfault. Then we can see the whole sequence of events, and details of the IRCd etc. which might help to setup an environment that can reproduce the problem.
PS. To avoid confusion, please avoid manipulating the debug output otherwise than filtering out irrelevant lines and passwords.