Skip to content

WSS port stops receiving/listening.... #177

@jerry6021

Description

@jerry6021

I have cloned the latest 1.13.9

I have a FS env with 8 different physical phones, grandstream/yealin/poly/etc that don't use the WSS port and they all don't have any issues with signalling or audio.

I use ctxSIP (SIP.js 0.7.8) as well as my own WebPhone (SIP.js 0.20.0). Both work perfectly 90% of the time.
Both use the WSS port - this is where the issue appears to be...

After a day of testing with 2 WebPhones constantly dialing, listening to MOH for 5 seconds, hangup and repeat, it seems to be the WSS port stops reading/listening.

I set SIP.js keepalives to 1 second.
I have TPORT_DEBUG=9
I have SOFIA_DEBUG=9
I have tcpdump in one window, watching for traffic on the WSS port - it never stops
I have fs_cli opened with and it comes to a complete stop on the receiving side.
After about 10-15 seconds, the receiving continues...

Looks like the receiving port gets blocked for a short bit then possibly timeout while reading and continues...

Here is the fs_cli output...

tport.c:3528 tport_send_msg() tport_vsend returned 731
tport_type_ws.c:530 tport_ws_deinit_secondary() 0x7fac802dd750 destroy wss transport 0x7fac802dd940.
ws.c:889 ws_close() wsh_ssl: 1
ws.c:901 ws_close() code: = -1
ws.c:902 ws_close() ssl_error: = 5
ws.c:924 ws_close() ssl_error: = 5-SSL_ERROR_SYSCALL
ws.c:931 ws_close() ssl_error: SSL_ERROR_SYSCALL = YES errno=9
ws.c:932 ws_close() ws_close() errno=Input/output error
tport_type_ws.c:530 tport_ws_deinit_secondary() 0x7fac80323480 destroy wss transport 0x7fac80323670.
ws.c:889 ws_close() wsh_ssl: 1
ws.c:901 ws_close() code: = -1
ws.c:902 ws_close() ssl_error: = 5
ws.c:924 ws_close() ssl_error: = 5-SSL_ERROR_SYSCALL
ws.c:931 ws_close() ssl_error: SSL_ERROR_SYSCALL = YES errno=9
ws.c:932 ws_close() ws_close() errno=Input/output error
tport_type_ws.c:530 tport_ws_deinit_secondary() 0x7fac80369310 destroy wss transport 0x7fac80369500.
ws.c:889 ws_close() wsh_ssl: 1
ws.c:901 ws_close() code: = -1
ws.c:902 ws_close() ssl_error: = 5
ws.c:924 ws_close() ssl_error: = 5-SSL_ERROR_SYSCALL
ws.c:931 ws_close() ssl_error: SSL_ERROR_SYSCALL = YES errno=9
ws.c:932 ws_close() ws_close() errno=Input/output error
tport_type_ws.c:530 tport_ws_deinit_secondary() 0x7fac803af5d0 destroy wss transport 0x7fac803af7c0.
ws.c:889 ws_close() wsh_ssl: 1
ws.c:901 ws_close() code: = -1
ws.c:902 ws_close() ssl_error: = 5
ws.c:924 ws_close() ssl_error: = 5-SSL_ERROR_SYSCALL
ws.c:931 ws_close() ssl_error: SSL_ERROR_SYSCALL = YES errno=9
ws.c:932 ws_close() ws_close() errno=Input/output error
tport_type_ws.c:530 tport_ws_deinit_secondary() 0x7fac803f5570 destroy wss transport 0x7fac803f5760.
ws.c:889 ws_close() wsh_ssl: 1
ws.c:901 ws_close() code: = -1
ws.c:902 ws_close() ssl_error: = 5
ws.c:924 ws_close() ssl_error: = 5-SSL_ERROR_SYSCALL
ws.c:931 ws_close() ssl_error: SSL_ERROR_SYSCALL = YES errno=9
ws.c:932 ws_close() ws_close() errno=Input/output error
tport_type_ws.c:530 tport_ws_deinit_secondary() 0x7fac80aaa820 destroy wss transport 0x7fac80aaaa10.
ws.c:889 ws_close() wsh_ssl: 1
ws.c:901 ws_close() code: = -1
ws.c:902 ws_close() ssl_error: = 5
ws.c:924 ws_close() ssl_error: = 5-SSL_ERROR_SYSCALL
ws.c:931 ws_close() ssl_error: SSL_ERROR_SYSCALL = YES errno=0
ws.c:932 ws_close() ws_close() errno=Input/output error
tport_type_ws.c:530 tport_ws_deinit_secondary() 0x7fac8043f2f0 destroy wss transport 0x7fac8043f4e0.
ws.c:889 ws_close() wsh_ssl: 1
ws.c:901 ws_close() code: = -1
ws.c:902 ws_close() ssl_error: = 5
ws.c:924 ws_close() ssl_error: = 5-SSL_ERROR_SYSCALL
ws.c:931 ws_close() ssl_error: SSL_ERROR_SYSCALL = YES errno=9
ws.c:932 ws_close() ws_close() errno=Input/output error
tport_type_ws.c:530 tport_ws_deinit_secondary() 0x7fac80af3e50 destroy wss transport 0x7fac80af4040.
ws.c:889 ws_close() wsh_ssl: 1
ws.c:901 ws_close() code: = -1
ws.c:902 ws_close() ssl_error: = 5
ws.c:924 ws_close() ssl_error: = 5-SSL_ERROR_SYSCALL
ws.c:931 ws_close() ssl_error: SSL_ERROR_SYSCALL = YES errno=9
ws.c:932 ws_close() ws_close() errno=Input/output error
tport_type_ws.c:530 tport_ws_deinit_secondary() 0x7fac80101c30 destroy wss transport 0x7fac80101e20.
tport_type_ws.c:530 tport_ws_deinit_secondary() 0x7fac805aa250 destroy wss transport 0x7fac805aa440.
ws.c:889 ws_close() wsh_ssl: 1
ws.c:901 ws_close() code: = -1
ws.c:902 ws_close() ssl_error: = 5
ws.c:924 ws_close() ssl_error: = 5-SSL_ERROR_SYSCALL
ws.c:931 ws_close() ssl_error: SSL_ERROR_SYSCALL = YES errno=9
ws.c:932 ws_close() ws_close() errno=Input/output error
tport_type_ws.c:530 tport_ws_deinit_secondary() 0x7fac80633140 destroy wss transport 0x7fac80633330.
ws.c:889 ws_close() wsh_ssl: 1
ws.c:901 ws_close() code: = -1
ws.c:902 ws_close() ssl_error: = 1
ws.c:926 ws_close() ssl_error: = 1-SSL_ERROR_SSL
ws.c:937 ws_close() ssl_error: SSL_ERROR_SSL = YES errno=0
ws.c:938 ws_close() ws_close() errno=Operation not permitted
tport_type_ws.c:530 tport_ws_deinit_secondary() 0x7fac808e9d90 destroy wss transport 0x7fac808e9f80.
ws.c:889 ws_close() wsh_ssl: 1
ws.c:901 ws_close() code: = -1
ws.c:902 ws_close() ssl_error: = 5
ws.c:924 ws_close() ssl_error: = 5-SSL_ERROR_SYSCALL
ws.c:931 ws_close() ssl_error: SSL_ERROR_SYSCALL = YES errno=9
ws.c:932 ws_close() ws_close() errno=Input/output error
tport_type_ws.c:530 tport_ws_deinit_secondary() 0x7fac808b9ab0 destroy wss transport 0x7fac808b9ca0.
ws.c:889 ws_close() wsh_ssl: 1
ws.c:901 ws_close() code: = -1
ws.c:902 ws_close() ssl_error: = 5
ws.c:924 ws_close() ssl_error: = 5-SSL_ERROR_SYSCALL
ws.c:931 ws_close() ssl_error: SSL_ERROR_SYSCALL = YES errno=9
ws.c:932 ws_close() ws_close() errno=Input/output error
tport_type_ws.c:530 tport_ws_deinit_secondary() 0x7fac809b27a0 destroy wss transport 0x7fac809b2990.
ws.c:889 ws_close() wsh_ssl: 1
ws.c:901 ws_close() code: = -1
ws.c:902 ws_close() ssl_error: = 5
ws.c:924 ws_close() ssl_error: = 5-SSL_ERROR_SYSCALL
ws.c:931 ws_close() ssl_error: SSL_ERROR_SYSCALL = YES errno=9
ws.c:932 ws_close() ws_close() errno=Input/output error
tport.c:2777 tport_wakeup_pri() tport_wakeup_pri(0x7fac80006290): events IN
tport.c:2900 tport_recv_event() tport_recv_event(0x7fac80006290)

I added custom debug messages to ws_close to spit out those extra messages when things go wrong.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions