Control: reassign -1 libcurl4 7.65.1-1
Control: affects -1 + rtorrent
Control: tags -1 + upstream fixed-upstream
Control: fixed -1 7.65.3-1


Dear Maintainer,
I just tried to find some more information from the given backtrace.

That I guess would translate to something like below [1],
if it would have been done with a debugger and debug symbols.

These stack looks in the last frames similar to these shown in [2] and [3].
And these seem to get fixed upstream in commit [4]
that is in curl-7_65_2 and above.

So in theory the libcurl4 7.65.3-1 from unstable
might not show these segfaults.

Kind regards,
Bernhard


[1]
rtorrent(+0x11e59) [0x4afe59]                                                  
| 0x00411e54 0x00411e59 in do_panic(int) at main.cc:596:       int stackSize = 
backtrace(stackPtrs, 20);
linux-gate.so.1(__kernel_sigreturn+0) [0xb7f92d7c]                             
|            0xb7fd4d7c <__kernel_sigreturn>
libcurl.so.4(+0x31640) [0xb7e69640]                                            
|            0xb7eab640 in sh_delentry at multi.c:253:         dta->sh_entry = 
NULL;
libcurl.so.4(+0x328f2) [0xb7e6a8f2]                                            
| 0xb7eac8ed 0xb7eac8f2 in Curl_multi_closed at multi.c:2397
libcurl.so.4(+0x2f7f7) [0xb7e677f7]                                            
| 0xb7ea97f2 0xb7ea97f7 in Curl_closesocket at connect.c:1347
libcurl.so.4(+0x30612) [0xb7e68612]                                            
| 0xb7eaa60d 0xb7eaa612 in trynextip at connect.c:606
libcurl.so.4(+0x30951) [0xb7e68951]                                            
| 0xb7eaa94c 0xb7eaa951 in Curl_is_connected at connect.c:861
libcurl.so.4(+0x33d5c) [0xb7e6bd5c]                                            
| 0xb7eadd57 0xb7eadd5c in multi_runsingle at multi.c:1509
libcurl.so.4(+0x35205) [0xb7e6d205]                                            
| 0xb7eaf200 0xb7eaf205 in multi_socket at multi.c:2564
libcurl.so.4(curl_multi_socket_action+0x2f) [0xb7e6d3af]                       
| 0xb7eaf3aa 0xb7eaf3af in curl_multi_socket_action at multi.c:2677
rtorrent(+0xda370) [0x578370]                                                  
| 0x004da36b 0x004da370 in core::CurlStack::receive_action(core::CurlSocket*, 
int) at curl_stack.cc:95
rtorrent(+0xda68c) [0x57868c]                                                  
| 0x004da687 0x004da68c in core::CurlStack::receive_timeout() at 
curl_stack.cc:171
rtorrent(+0x1341b) [0x4b141b]                                                  
| 0x00413418 0x0041341b in std::function<void ()>::operator()() const at 
/usr/include/c++/7/bits/std_function.h:706
libtorrent.so.20(_ZN7torrent11thread_base10event_loopEPS0_+0x229) [0xb7d8ec89] 
| 0xb7dd0c83 0xb7dd0c89 in std::function<void ()>::operator()() const at 
/usr/include/c++/7/bits/std_function.h:706
rtorrent(+0x10b7b) [0x4aeb7b]                                                  
| 0x00410b76 0x00410b7b in main(int, char**) at main.cc:480:         
torrent::thread_base::event_loop(torrent::main_thread());
libc.so.6(__libc_start_main+0xf1) [0xb77e7b41]                                 
| 0xb7829b3d 0xb7829b41 in __libc_start_main at ../csu/libc-start.c:308
rtorrent(+0x1173b) [0x4af73b]                                                  
| 0x00411736 0x0041173b <_start+44>


[2] https://github.com/curl/curl/issues/3995
[3] https://github.com/curl/curl/issues/4057
[4] https://github.com/curl/curl/commit/4981fae7f158152fca01bddb042231f9f8343d58
# Bullseye/testing i386 qemu VM 2019-08-14


apt update
apt dist-upgrade


apt install systemd-coredump gdb mc rtorrent rtorrent-dbgsym 
libtorrent20-dbgsym libcurl4-dbgsym
apt build-dep rtorrent



mkdir /home/benutzer/source/rtorrent/orig -p
cd    /home/benutzer/source/rtorrent/orig
apt source rtorrent
cd

mkdir /home/benutzer/source/libcurl4/orig -p
cd    /home/benutzer/source/libcurl4/orig
apt source libcurl4
cd



gdb -q --args /usr/bin/rtorrent

set width 0
set pagination off
directory /home/benutzer/source/rtorrent/orig/rtorrent-0.9.7/src
set backtrace past-main
display/i $pc
tb main
run
generate-core-file /tmp/core1



gdb -q /usr/bin/rtorrent --core /tmp/core1

set width 0
set pagination off
directory /home/benutzer/source/rtorrent/orig/rtorrent-0.9.7/src
directory /home/benutzer/source/libcurl4/orig/curl-7.65.1/lib
set backtrace past-main
display/i $pc

b * _start+44
b * __libc_start_main+237
b * main+3654
b * _ZN7torrent11thread_base10event_loopEPS0_+0x223
b * client_perform+280
b * core::CurlStack::receive_timeout+39
b * core::CurlStack::receive_action(core::CurlSocket*, int)+91
b * curl_multi_socket_action+42
b * multi_socket+624
b * multi_runsingle+2103
b * Curl_is_connected+748
b * trynextip+189
b * Curl_closesocket+66
b * Curl_multi_closed+125
b * sh_delentry+48
b * __kernel_sigreturn+0
b * do_panic(int)+164


############


# From submitter:
rtorrent(+0x11e59) [0x4afe59]                                                  
| 0x00411e54 0x00411e59 in do_panic(int) at main.cc:596:       int stackSize = 
backtrace(stackPtrs, 20);
linux-gate.so.1(__kernel_sigreturn+0) [0xb7f92d7c]                             
|            0xb7fd4d7c <__kernel_sigreturn>
libcurl.so.4(+0x31640) [0xb7e69640]                                            
|            0xb7eab640 in sh_delentry at multi.c:253:         dta->sh_entry = 
NULL;
libcurl.so.4(+0x328f2) [0xb7e6a8f2]                                            
| 0xb7eac8ed 0xb7eac8f2 in Curl_multi_closed at multi.c:2397
libcurl.so.4(+0x2f7f7) [0xb7e677f7]                                            
| 0xb7ea97f2 0xb7ea97f7 in Curl_closesocket at connect.c:1347
libcurl.so.4(+0x30612) [0xb7e68612]                                            
| 0xb7eaa60d 0xb7eaa612 in trynextip at connect.c:606
libcurl.so.4(+0x30951) [0xb7e68951]                                            
| 0xb7eaa94c 0xb7eaa951 in Curl_is_connected at connect.c:861
libcurl.so.4(+0x33d5c) [0xb7e6bd5c]                                            
| 0xb7eadd57 0xb7eadd5c in multi_runsingle at multi.c:1509
libcurl.so.4(+0x35205) [0xb7e6d205]                                            
| 0xb7eaf200 0xb7eaf205 in multi_socket at multi.c:2564
libcurl.so.4(curl_multi_socket_action+0x2f) [0xb7e6d3af]                       
| 0xb7eaf3aa 0xb7eaf3af in curl_multi_socket_action at multi.c:2677
rtorrent(+0xda370) [0x578370]                                                  
| 0x004da36b 0x004da370 in core::CurlStack::receive_action(core::CurlSocket*, 
int) at curl_stack.cc:95
rtorrent(+0xda68c) [0x57868c]                                                  
| 0x004da687 0x004da68c in core::CurlStack::receive_timeout() at 
curl_stack.cc:171
rtorrent(+0x1341b) [0x4b141b]                                                  
| 0x00413418 0x0041341b in std::function<void ()>::operator()() const at 
/usr/include/c++/7/bits/std_function.h:706
libtorrent.so.20(_ZN7torrent11thread_base10event_loopEPS0_+0x229) [0xb7d8ec89] 
| 0xb7dd0c83 0xb7dd0c89 in std::function<void ()>::operator()() const at 
/usr/include/c++/7/bits/std_function.h:706
rtorrent(+0x10b7b) [0x4aeb7b]                                                  
| 0x00410b76 0x00410b7b in main(int, char**) at main.cc:480:         
torrent::thread_base::event_loop(torrent::main_thread());
libc.so.6(__libc_start_main+0xf1) [0xb77e7b41]                                 
| 0xb7829b3d 0xb7829b41 in __libc_start_main at ../csu/libc-start.c:308
rtorrent(+0x1173b) [0x4af73b]                                                  
| 0x00411736 0x0041173b <_start+44>


0x4b141b - 0x4af73b = 0x1CE0
0x4af73b + 0x1CE0   = 0x4B141B                                                  
                         0x0041173b + 0x1CE0   = 0x0041341B

0x57868c - 0x4af73b = 0xC8F51
0x4af73b + 0xC8F51  = 0x57868C                                                  
                         0x0041173b + 0xC8F51  = 0x004DA68C

0x578370 - 0x4af73b = 0xC8C35
0x4af73b + 0xC8C35  = 0x578370                                                  
                         0x0041173b + 0xC8C35  = 0x004DA370

0x4afe59 - 0x4af73b = 0x71E
0x4af73b + 0x71E    = 0x4AFE59                                                  
                         0x0041173b + 0x71E    = 0x00411E59


(gdb) info b
Num     Type           Disp Enb Address    What
1       breakpoint     keep y   0x00411736 <_start+44>
2       breakpoint     keep y   0xb7829b3d in __libc_start_main at 
../csu/libc-start.c:308
3       breakpoint     keep y   0x00410b76 in main(int, char**) at main.cc:480
4       breakpoint     keep y   0xb7dd0c83 in std::function<void 
()>::operator()() const at /usr/include/c++/7/bits/std_function.h:706
5       breakpoint     keep y   0x00413418 in std::function<void 
()>::operator()() const at /usr/include/c++/7/bits/std_function.h:706
6       breakpoint     keep y   0x004da687 in 
core::CurlStack::receive_timeout() at curl_stack.cc:171
7       breakpoint     keep y   0x004da36b in 
core::CurlStack::receive_action(core::CurlSocket*, int) at curl_stack.cc:95
8       breakpoint     keep y   0xb7eaf3aa in curl_multi_socket_action at 
multi.c:2677
9       breakpoint     keep y   0xb7eaf200 in multi_socket at multi.c:2564
10      breakpoint     keep y   0xb7eadd57 in multi_runsingle at multi.c:1509
11      breakpoint     keep y   0xb7eaa94c in Curl_is_connected at connect.c:861
12      breakpoint     keep y   0xb7eaa60d in trynextip at connect.c:606
13      breakpoint     keep y   0xb7ea97f2 in Curl_closesocket at connect.c:1347
14      breakpoint     keep y   0xb7eac8ed in Curl_multi_closed at multi.c:2397
15      breakpoint     keep y   0xb7eab640 in sh_delentry at multi.c:253
16      breakpoint     keep y   0xb7fd4d7c <__kernel_sigreturn>
17      breakpoint     keep y   0x00411e54 in do_panic(int) at main.cc:596



(gdb) disassemble sh_delentry
Dump of assembler code for function sh_delentry:
...
   0xb7eab639 <+41>:    call   0xb7eaade0 <Curl_llist_remove>
   0xb7eab63e <+46>:    mov    (%esi),%edx
   0xb7eab640 <+48>:    movl   $0x0,0x24(%ebp)
   0xb7eab647 <+55>:    add    $0x10,%esp
   0xb7eab64a <+58>:    test   %edx,%edx
...
End of assembler dump.




https://github.com/curl/curl/issues/3995
https://github.com/curl/curl/issues/4057
https://github.com/curl/curl/commit/4981fae7f158152fca01bddb042231f9f8343d58

Reply via email to