From 2e711ed745c0d0bb67321a4553a8499f15ef6895 Mon Sep 17 00:00:00 2001 From: Donald Buczek Date: Sat, 10 Mar 2018 14:05:42 +0100 Subject: [PATCH] Add timeout for lsof If we have dead nfs mounts, lsof might hangover. Limit a timeout and return an error message if lsof fails. --- clusterd | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/clusterd b/clusterd index 92bc6ac..f14fb82 100755 --- a/clusterd +++ b/clusterd @@ -1204,12 +1204,16 @@ sub clp_rx_LSOF { defined $pid or die "$!\n"; unless ($pid) { $socket->blocking(1); - open P,'lsof|' or die "$!\n"; + open P,'timeout -k 12s 10s lsof|' or die "$!\n"; while (

) { next if defined $pattern && index($_,$pattern)<0; $socket->send(pack('n',length($_)).$_,0); } close P; + if ($?) { + $_=sprintf("** lsof timout/error on %s\n",$my_hostname); + $socket->send(pack('n',length($_)).$_,0); + } close $socket; exit; }