Hi Andrei,
Yes this is kamailio 3.1.2 code. I have put some DBG & LOG inside the tcp
code to debug this problem that’s why the line number does not match.
It happens frequently – you need to run stress for a day or more. We are
using Microsoft OCS tools for the stress.
Here’s a problem – it creates a circular linked list
0x00000000004e8d5b in _tcpconn_find (id=<value optimized out>,
ip=0x7fff6d7393c0, port=5061, l_ip=0x7fff6d739280, l_port=0) at
tcp_main.c:1491
(gdb) list
1486 #ifdef EXTRA_DEBUG
1487 DBG("a=%p, c=%p, c->id=%d, alias port= %d
port=%d\n", a, a->parent,
1488 a->parent->id, a->port,
a->parent->rcv.src_port);
1489
print_ip("ip=",&a->parent->rcv.src_ip,"\n");
1490 #endif
(gdb) print a
$1 = (struct tcp_conn_alias *) 0x2aed7ed00220
(gdb) print *a
$2 = {parent = 0x2aed7ed000e0, next = 0x2aed7ebfc568, prev = 0x2aed7ebfc568,
port = 5061, hash = 2739}
(gdb) print a->next
$3 = (struct tcp_conn_alias *) 0x2aed7ebfc568
(gdb) print *a->next
$4 = {parent = 0x2aed7ebfc428, next = 0x2aed7ed00220, prev = 0x0, port =
5061, hash = 2739}
(gdb) print *a->next->next
$5 = {parent = 0x2aed7ed000e0, next = 0x2aed7ebfc568, prev = 0x2aed7ebfc568,
port = 5061, hash = 2739}
(gdb) print *a->next->next->next
$6 = {parent = 0x2aed7ebfc428, next = 0x2aed7ed00220, prev = 0x0, port =
5061, hash = 2739}
(gdb) print *a->next->next->next->next
$7 = {parent = 0x2aed7ed000e0, next = 0x2aed7ebfc568, prev = 0x2aed7ebfc568,
port = 5061, hash = 2739}
(gdb) print *a->next->next->next->next->next
$8 = {parent = 0x2aed7ebfc428, next = 0x2aed7ed00220, prev = 0x0, port =
5061, hash = 2739}
(gdb) print *a->next->next->next->next->next->next
$9 = {parent = 0x2aed7ed000e0, next = 0x2aed7ebfc568, prev = 0x2aed7ebfc568,
port = 5061, hash = 2739}
(gdb) print c->aliases
$10 = 3
Hope this helps.
I have to check whether I have the core dumps . If I have I’ll send you.
Regards
-Zunnun