Hey guys,
Not sure if there have been any changes but I have an interesting problem here when using TCP:
The BT is as follows:
#0 local_timer_list_expire (h=0xa0f128 <tcp_reader_ltimer+178664>, t=723807134, l=0x9e3740 <tcp_reader_ltimer>) at local_timer.c:198
#1 local_timer_expire (t=723807134, h=<optimized out>) at local_timer.c:227
#2 local_timer_run (lt=lt@entry=0x9e3740 <tcp_reader_ltimer>, saved_ticks=723807150) at local_timer.c:250
#3 0x00000000005d8417 in tcp_reader_timer_run () at tcp_read.c:1682
#4 tcp_receive_loop (unix_sock=<optimized out>) at tcp_read.c:1734
#5 0x00000000005c81c8 in tcp_init_children () at tcp_main.c:4788
#6 0x00000000004a9da3 in main_loop () at main.c:1664
#7 0x000000000042411e in main (argc=<optimized out>, argv=<optimized out>) at main.c:2566
This seems to be related to clearing timers for TCP connections. The crash is related to the following code:
_timer_rm_list(tl)
where it does a null pointer deref on tl->next and tl->prev, which, according to the bt, are null (see below).
(gdb) print *tl
$14 = {next = 0x0, prev = 0x0, expire = 723807134, initial_timeout = 32, data = 0x7fbbb05aa628, f = 0x5d02f0 <tcpconn_read_timeout>, flags = 512, slow_idx = 0}
Any ideas?
Cheers
Jason