[ 
https://issues.apache.org/jira/browse/IGNITE-6835?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16247701#comment-16247701
 ] 

Sergey Kalashnikov commented on IGNITE-6835:
--------------------------------------------

[~isapego]
Here are my comments:

1. Duplicate {{LOG_MSG()}} in linux variant of {{SocketClient::Connect()}}

2. {{SocketClient::TrySetOptions()}}
It would be great to have additional {{LOG_MSG}} output with 
{{errno}}/{{WSAGetLastError()}} in case of {{setsockopt}} failures.

3. Windows {{SocketClient::TrySetOption()}}

{{struct tcp_keepalive settings;}}
I would initialize it with zero (struct tcp_keepalive settings = {0};) before 
filling individual fields.



> ODBC driver should handle ungraceful tcp disconnects
> ----------------------------------------------------
>
>                 Key: IGNITE-6835
>                 URL: https://issues.apache.org/jira/browse/IGNITE-6835
>             Project: Ignite
>          Issue Type: Bug
>      Security Level: Public(Viewable by anyone) 
>          Components: odbc
>    Affects Versions: 2.1
>            Reporter: Alexey Popov
>            Assignee: Igor Sapego
>              Labels: odbc
>             Fix For: 2.4
>
>
> It is found that ungraceful TCP disconnect makes ODBC driver stuck at socket 
> recv().
> Ungraceful TCP disconnect could be caused:
> 1. Network failure (or new firewall rules)
> 2. Remote party shutdown (Half Closed Connection)
> So, the proposal is:
> setup socket  options: 
> 1) SO_KEEPALIVE enabled
> 2) TCP_KEEPIDLE to 60 sec. It is 2 hour by default
> 3) TCP_KEEPINTVL to 5 (\?) sec. It is 1 sec at Win and 75 sec at Linux by 
> default.
> 4) send/receive buffers to some greater value (8k by default)



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to