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