All of lore.kernel.org
 help / color / mirror / Atom feed
From: Boaz Harrosh <bharrosh@panasas.com>
To: Steve Dickson <steved@redhat.com>,
	"Bhamare, Sachin" <sbhamare@panasas.com>,
	Trond Myklebust <Trond.Myklebust@netapp.com>
Cc: NFS list <linux-nfs@vger.kernel.org>,
	open-osd <osd-dev@open-osd.org>,
	Benny Halevy <bhalevy@tonian.com>,
	"Welch, Brent" <welch@panasas.com>
Subject: SQUASHME: osd_login: Add autologin script for objlayoutdriver
Date: Thu, 22 Mar 2012 19:36:03 -0700	[thread overview]
Message-ID: <4F6BE193.5050103@panasas.com> (raw)
In-Reply-To: <4F62DD6C.4040504@panasas.com>

On 03/15/2012 11:27 PM, Boaz Harrosh wrote:
> From: Sachin Bhamare <sbhamare@panasas.com>
> 
> This script is part of the autologin feature mandated by the
> pnfs-objects standard.
> It is called from objlayoutdriver.ko in the kernel.
> 
> Signed-off-by: Sachin Bhamare <sbhamare@panasas.com>
> Signed-off-by: Boaz Harrosh <bharrosh@panasas.com>

As suggested by Trond (Thanks Trond) We add a watchdog
facility to the script so it will timeout after 15s and
will return to the Kernel, even if iscsiadm gets stuck.

We are also logging with the "osd_login" prefix.

Below is the diff from this patch. (ver 1).

I will send a new email patch [version 2] for submission
to nfs-utils, as reply to the original patch.

Please submit, as the Kernel part has been accepted
into Mainline for the 3.4-rc1 merge window

Much obliged
Sachin & Boaz

---
diff --git a/utils/osd_login/osd_login b/utils/osd_login/osd_login
index c08e05c..63967fc 100755
--- a/utils/osd_login/osd_login
+++ b/utils/osd_login/osd_login
@@ -27,6 +27,9 @@ PATH="/sbin:/usr/sbin:/bin:/usr/bin"
 
 iscsiadm=/sbin/iscsiadm
 
+PARENT_PID=$BASHPID
+WATCHDOG_TIMEOUT=15
+
 protocol=""
 portal=""
 uri=""
@@ -71,32 +74,45 @@ parse_cmdline()
 	portal=`echo $uri | awk -F '//' '{print $2}'`
 }
 
-do_cmd()
+watchdog()
 {
-	$* 2>&1 | logger &
+	timeout=$1
+	portal=$2
+
+        sleep $timeout
+	if kill -9 $PARENT_PID; then
+	    echo "watchdog : Timed out (>$timeout seconds) while login into $portal" | logger -t "osd_login"
+	fi
+        echo "watchdog: exiting .."
+        exit 2
 }
 
 login_iscsi_osd()
 {
-	echo "osd_login: login into: $1"
+	echo "login into: $1"
 	if ! $iscsiadm -m discovery -o nonpersistent -t sendtargets -p $1 --login; then
 		echo "$iscsiadm -m discovery -t sendtargets -p $1 --login returned error $? !"
 		sleep 1;
 	fi
 }
 
- echo "============= osd_login ========="
- echo "progname : $0"
+echo "============= osd_login ========="
+echo "progname : $0"
 parse_cmdline "$@"
 echo "protocol: $protocol"
 echo "portal: $portal"
 
+watchdog $WATCHDOG_TIMEOUT $portal &
+watchdog_pid=$!
+
 case $protocol in
 iscsi)
-	login_iscsi_osd $portal |& logger
+	login_iscsi_osd $portal |& logger -t "osd_login"
 	;;
 *)
-	echo "osd_login: Error: protocol $protocol not supported !" | logger
+	echo "Error: protocol $protocol not supported !" | logger -t "osd_login"
 	;;
 esac
 
+kill -9 $watchdog_pid
+exit 0

  reply	other threads:[~2012-03-23  2:36 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-03-16  6:17 [PATCHSET 0/4] Auto-login support for the pnfs-objects protocol Boaz Harrosh
2012-03-16  6:19 ` [PATCH 1/4] pnfsd-exofs: Add autologin support to exofs Boaz Harrosh
2012-03-16  6:30   ` Boaz Harrosh
2012-03-16  6:21 ` [PATCH 2/4] pnfs-obj: Remove unused variable from objlayout_get_deviceinfo() Boaz Harrosh
2012-03-16  6:23 ` [PATCH 3/4] pnfs-obj: autologin: Add support for protocol autologin Boaz Harrosh
2012-03-16 21:40   ` Myklebust, Trond
2012-03-19 20:58     ` Boaz Harrosh
2012-03-19 21:12       ` Myklebust, Trond
2012-03-19 23:23         ` Boaz Harrosh
2012-03-20  1:16           ` Boaz Harrosh
2012-03-20  3:10             ` Boaz Harrosh
2012-03-20  3:26               ` Boaz Harrosh
2012-03-20  3:47   ` [PATCH version2] " Boaz Harrosh
2012-03-16  6:27 ` [PATCH 4/4] osd_login: Add autologin script for objlayoutdriver Boaz Harrosh
2012-03-23  2:36   ` Boaz Harrosh [this message]
2012-03-23  2:57   ` [PATCH version2] " Boaz Harrosh
2012-05-01 18:50   ` [PATCH 4/4] " Steve Dickson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4F6BE193.5050103@panasas.com \
    --to=bharrosh@panasas.com \
    --cc=Trond.Myklebust@netapp.com \
    --cc=bhalevy@tonian.com \
    --cc=linux-nfs@vger.kernel.org \
    --cc=osd-dev@open-osd.org \
    --cc=sbhamare@panasas.com \
    --cc=steved@redhat.com \
    --cc=welch@panasas.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.