You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We open a GUN instance successfully with the following TCP options {send_timeout, 30000} and {send_timeout_close, true}.
The options makes if the TCP stack can’t receive the sending packet and return a timeout, the socket will be closed.
Once the IP path has problem on the TCP connections, and the upper application sends the http request to the GUN instance continuously, the socket will closed finally.
It may be caused by the TCP sending window/buffer full. Then the OS close the socket will and send the TCP RST to peer(although it is impossible received by peer host).
However, the GUN instance is insensitive with this event. In the function gun_http2:request(), the returned value was not checked for gen_tcp:send().
The return value should be {error,timeout} first and {error,enotconn} after the socket is closed. I think GUN instance should exit for reason {error,enotconn} anyway.
The text was updated successfully, but these errors were encountered:
bjosv
added a commit
to Nordix/gun
that referenced
this issue
Sep 16, 2020
To get faster reaction times on failing socket-send of echos/requests
we now handle the response from the send call where applicable.
To avoid a larger change in the statemachine a send error triggers an
event and is handled like an remote socket error/close.
Fixesninenines#227 and touches ninenines#224
To get faster reaction times on failing socket-send of echos/requests
we now handle the response from the send call where applicable.
To avoid a larger change in the statemachine a send error triggers an
event and is handled like an remote socket error/close.
Fixesninenines#227 and touches ninenines#224
bjosv
added a commit
to Nordix/gun
that referenced
this issue
Oct 7, 2020
To get faster reaction times on failing socket-send of echos/requests
we now handle the response from the send call where applicable.
To avoid a larger change in the statemachine a send error triggers an
event and is handled like an remote socket error/close.
Fixesninenines#227 and touches ninenines#224
We open a GUN instance successfully with the following TCP options {send_timeout, 30000} and {send_timeout_close, true}.
The options makes if the TCP stack can’t receive the sending packet and return a timeout, the socket will be closed.
Once the IP path has problem on the TCP connections, and the upper application sends the http request to the GUN instance continuously, the socket will closed finally.
It may be caused by the TCP sending window/buffer full. Then the OS close the socket will and send the TCP RST to peer(although it is impossible received by peer host).
However, the GUN instance is insensitive with this event. In the function gun_http2:request(), the returned value was not checked for gen_tcp:send().
The return value should be {error,timeout} first and {error,enotconn} after the socket is closed. I think GUN instance should exit for reason {error,enotconn} anyway.
The text was updated successfully, but these errors were encountered: