From 6b3704990257643da54100d8581856a7d2c72f86 Mon Sep 17 00:00:00 2001 From: Niels de Vos Date: Tue, 17 Feb 2015 12:12:11 +0100 Subject: socket: use TCP_USER_TIMEOUT to detect client failures quicker Use the network.ping-timeout to set the TCP_USER_TIMEOUT socket option (see 'man 7 tcp'). The option sets the transport.tcp-user-timeout option that is handled in the rpc/socket layer on the protocol/server side. This socket option makes detecting unclean disconnected clients more reliable. When the socket gets closed, any locks that the client held are been released. This makes it possible to reduce the fail-over time for applications that run on systems that became unreachable due to a network partition or general system error client-side (kernel panic, hang, ...). It is not trivial to create a test-case for this at the moment. We need a client that unclean disconnects and an other client that tries to take over the lock from the disconnected client. URL: http://supercolony.gluster.org/pipermail/gluster-devel/2014-May/040755.html Change-Id: I5e5f540a49abfb5f398291f1818583a63a5f4bb4 BUG: 1129787 Signed-off-by: Niels de Vos Reviewed-on: http://review.gluster.org/8065 Tested-by: Gluster Build System Reviewed-by: soumya k Reviewed-by: Santosh Pradhan Reviewed-by: Kaleb KEITHLEY --- rpc/rpc-transport/socket/src/socket.h | 1 + 1 file changed, 1 insertion(+) (limited to 'rpc/rpc-transport/socket/src/socket.h') diff --git a/rpc/rpc-transport/socket/src/socket.h b/rpc/rpc-transport/socket/src/socket.h index 6a8ab870ab7..2a84e264b81 100644 --- a/rpc/rpc-transport/socket/src/socket.h +++ b/rpc/rpc-transport/socket/src/socket.h @@ -216,6 +216,7 @@ typedef struct { int keepalive; int keepaliveidle; int keepaliveintvl; + int timeout; uint32_t backlog; gf_boolean_t read_fail_log; gf_boolean_t ssl_enabled; /* outbound I/O */ -- cgit