commit 8b6c9bb794361c75b0aa96bede8a3f71d1dd663e Author: Jacek Konieczny Date: Wed Dec 12 11:59:42 2012 +0100 clvmd: command timeout handling fix clvmd would wait for select() to time-out before processing command time-outs. The select timeout would be set to the cmd_timeout ('-t' command-line option) value, which is 60 seconds by default. Normally the select() call is woken up more frequently, so the command time-outs are never processed. This causes LVM tools wait forever on cluster locking for operations started during temporary cluster problems. Signed-off-by: Jacek Konieczny diff --git a/daemons/clvmd/clvmd.c b/daemons/clvmd/clvmd.c index eb0bffd..2b5d753 100644 --- a/daemons/clvmd/clvmd.c +++ b/daemons/clvmd/clvmd.c @@ -939,8 +939,8 @@ static void main_loop(int local_sock, int cmd_timeout) } } - /* Select timed out. Check for clients that have been waiting too long for a response */ - if (select_status == 0) { + /* Check for clients that have been waiting too long for a response */ + if (select_status >= 0) { time_t the_time = time(NULL); for (thisfd = &local_client_head; thisfd != NULL;