firebird icon indicating copy to clipboard operation
firebird copied to clipboard

Client on Linux does not detect the broken connection to server to long time ~ 15 min

Open abzalov opened this issue 3 years ago • 0 comments

Сan be reproduced with isql:

on client side: connect server_host:/tmp/test.fdb user sysdba password masterkey; on server side: disconnect the server from the network on client side: select * from rdb$database;

Client raise the exception about broken connection after ~ 15 min only.

It would also be nice if on Linux the client side could control the TCP_USER_TIMEOUT option, or in extreme cases it would be possible to somehow get a connection handle so that this option could be applied manually. Now in Linux, a client detects a broken connection for a very long time - about 15 minutes. This value is controlled by the OS setting tcp_retries2. But this setting is global and changing it affects all processes. To solve this problem, the ability to set the TCP connection option on the client side - TCP_USER_TIMEOUT will help. For example, in Postgres, it can be set both in the connection string and applied to the client application manually by receiving a connection socket using PQsocket from libpq.so.

Additional information in the issue 7006.

abzalov avatar Oct 17 '21 14:10 abzalov