#!/bin/bash
#
# Simple monitoring script which uses rpcdebug to check for RPC tasks in a specific state
#
if [ $# -eq 1 ]; then
	SEC=$1
else
	SEC=30
fi
STATE=Seqid_waitqueue

echo "Using rpcdebug to monitor for RPC tasks stuck in Seqid_waitqueue at $SEC second intervals"

COUNT=$(grep -c $STATE /var/log/messages)
while true;
do
	OLD_COUNT=$COUNT
	rpcdebug -m rpc -c debug > /dev/null 2>&1
	COUNT=$(grep -c $STATE /var/log/messages)
	DELTA=$((COUNT - OLD_COUNT))
	echo "Found $DELTA new $STATE lines in /var/log/message, sleeping $SEC seconds"
	sleep $SEC
done
