ctdb-scripts: Run tdb checker under timeout command
authorAmitay Isaacs <amitay@gmail.com>
Tue, 28 Apr 2015 13:15:37 +0000 (23:15 +1000)
committerAmitay Isaacs <amitay@samba.org>
Thu, 30 Apr 2015 04:45:26 +0000 (06:45 +0200)
If tdb database file size grows beyond 4GB, tdbtool/tdbdump can hang
indefinitely.  This will prevent CTDB from starting up.

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
ctdb/config/events.d/00.ctdb

index 0688411dd90e379a4f9a8834566a2dc8044bf04f..d8096ee46c60d9c0d81d8c8a5f4eb1034abd6a62 100755 (executable)
@@ -50,14 +50,14 @@ check_tdb ()
 
     if $use_tdb_tool_check ; then
        # tdbtool always exits with 0  :-(
-       if tdbtool "$_db" check 2>/dev/null |
+       if timeout 10 tdbtool "$_db" check 2>/dev/null |
            grep -q "Database integrity is OK" ; then
            return 0
        else
            return 1
        fi
     else
-       tdbdump "$_db" >/dev/null 2>/dev/null
+       timeout 10 tdbdump "$_db" >/dev/null 2>/dev/null
        return $?
     fi
 }