Skip to content

Segfault in kill_peer()

I occasionally see segfaults in kill_peer(),

Thread 3 "test" received signal SIGSEGV, Segmentation fault.
kill_peer (peer=0x7ffff803e6a0) at ../../../../../../../../cargo/registry/src/github.com-1ecc6299db9ec823/librist-sys-0.7.0/librist/src/rist-common.c:2225

Seems peer->peer_data is NULL,

(gdb) print peer->peer_data
$3 = (struct rist_peer *) 0x0

which would indeed be a problem at line 2225:

if (current_state != peer->peer_data->dead && peer->peer_data->parent)

Backtrace,

#0  kill_peer (peer=0x7ffff803e6a0) at ../../../../../../../../cargo/registry/src/github.com-1ecc6299db9ec823/librist-sys-0.7.0/librist/src/rist-common.c:2225                                                     
#1  0x00007ffff7ab7631 in rist_timeout_check (cctx=0x7ffff7e7a0a0, now=9487574994389608167)                                                                                                                        
    at ../../../../../../../../cargo/registry/src/github.com-1ecc6299db9ec823/librist-sys-0.7.0/librist/src/rist-common.c:2996                                                                                     
#2  0x00007ffff7ab93a8 in receiver_pthread_protocol (arg=0x7ffff7e7a020) at ../../../../../../../../cargo/registry/src/github.com-1ecc6299db9ec823/librist-sys-0.7.0/librist/src/rist-common.c:3645                
#3  0x00007ffff7ba142a in start ()                                                                                                                                                                                 
#4  0x00007ffff7e79b20 in ?? ()                                                                                                                                                                                    
#5  0x0000000000000000 in ?? ()                                                                                                                                                                                    
Edited by David Holroyd