I created this GDB script

define check_wsc	
 while(wsc->state == WS_S_REMOVING)
   p wsc->id
   p wsc->rmticks
   cont
 end
end

at 183996
b ws_conn.c:694
condition 1 wsc->state == WS_S_REMOVING
set pagination off
c
check_wsc

Where I watch the process with 183996 is WEBSOCKET TIMER.

[root@ippbx-0a ~]# kamcmd ps | grep WEBSOCKET
183989	WEBSOCKET KEEPALIVE
183992	WEBSOCKET KEEPALIVE
183994	WEBSOCKET KEEPALIVE
183996	WEBSOCKET TIMER

Script output shows the webssocket rmticks always increased and timeout for rm_delay_interval never fired.
For me that is a reason why websocket connection cannot be closed.

(gdb) c
Continuing.

Breakpoint 1, ws_timer (ticks=78432190, param=0x0) at ws_conn.c:694
694				if(wsc->state == WS_S_REMOVING
(gdb) check_wsc
$1 = 541
$2 = 78432190

Breakpoint 1, ws_timer (ticks=78432191, param=0x0) at ws_conn.c:694
694				if(wsc->state == WS_S_REMOVING
$13 = 541
$14 = 78432191

Breakpoint 1, ws_timer (ticks=78432192, param=0x0) at ws_conn.c:694
694				if(wsc->state == WS_S_REMOVING
$25 = 541
$26 = 78432192

Breakpoint 1, ws_timer (ticks=78432193, param=0x0) at ws_conn.c:694
694				if(wsc->state == WS_S_REMOVING
$37 = 541
$38 = 78432193

Breakpoint 1, ws_timer (ticks=78432194, param=0x0) at ws_conn.c:694
694				if(wsc->state == WS_S_REMOVING
$49 = 541
$50 = 78432194

Breakpoint 1, ws_timer (ticks=78432195, param=0x0) at ws_conn.c:694
694				if(wsc->state == WS_S_REMOVING
$61 = 541
$62 = 78432195


Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: <kamailio/kamailio/issues/3278/1383093059@github.com>