[Cluster-devel] cluster/fence/agents/egenera fence_egenera.pl

jparsons at sourceware.org jparsons at sourceware.org
Wed Aug 8 16:02:10 UTC 2007


CVSROOT:	/cvs/cluster
Module name:	cluster
Branch: 	RHEL51
Changes by:	jparsons at sourceware.org	2007-08-08 16:02:10

Modified files:
	fence/agents/egenera: fence_egenera.pl 

Log message:
	Fix for 251358

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/fence/agents/egenera/fence_egenera.pl.diff?cvsroot=cluster&only_with_tag=RHEL51&r1=1.2.2.1&r2=1.2.2.1.2.1

--- cluster/fence/agents/egenera/fence_egenera.pl	2007/06/27 15:38:17	1.2.2.1
+++ cluster/fence/agents/egenera/fence_egenera.pl	2007/08/08 16:02:10	1.2.2.1.2.1
@@ -4,7 +4,7 @@
 ###############################################################################
 ##
 ##  Copyright (C) Sistina Software, Inc.  1997-2003  All rights reserved.
-##  Copyright (C) 2004-2007 Red Hat, Inc.  All rights reserved.
+##  Copyright (C) 2004 Red Hat, Inc.  All rights reserved.
 ##  
 ##  This copyrighted material is made available to anyone wishing to use,
 ##  modify, copy, or redistribute it subject to the terms and conditions
@@ -20,13 +20,14 @@
 # "#END_VERSION_GENERATION"  It is generated by the Makefile
 
 #BEGIN_VERSION_GENERATION
-$FENCE_RELEASE_NAME="";
-$REDHAT_COPYRIGHT="";
-$BUILD_DATE="";
+$FENCE_RELEASE_NAME="1.32.25";
+$REDHAT_COPYRIGHT=("Copyright (C) Red Hat, Inc.  2004  All rights reserved.");
+$BUILD_DATE="(built Wed May 17 11:59:44 EDT 2006)";
 #END_VERSION_GENERATION
 
 # Get the program name from $0 and strip directory names
 $_=$0;
+$|=1;
 s/.*\///;
 my $pname = $_;
 
@@ -163,6 +164,10 @@
 
 		# FIXME should we do more error checking?  
 		# Excess name/vals will be eaten for now
+		else 
+		{
+			fail "parse error: unknown option \"$opt\"";
+		}
 	}
 }
 
@@ -269,7 +274,7 @@
 		}
 
 		# Is there any harm in sending this command multiple times?
-		my $cmd = "ssh $cserv $esh blade -b $_";
+		my $cmd = "ssh $cserv $esh pserver -b $lpan/$pserv";
 		my $pid = open3 (\*WTR, \*RDR,\*RDR, $cmd)
 			or die "error open3(): $!";
 
@@ -291,11 +296,15 @@
 sub pserver_shutdown
 {
 	my $rtrn=1;
+        local *egen_log;
+        open(egen_log,">/tmp/eglog");
 	for (my $trys=0; $trys<20; $trys++)
 	{
 		last if (pserver_status != 0);
 
+
 		my $status = $_;
+                print egen_log "shutdown: $trys    $status\n";
 		if (/^Shutdown/)
 		{
 			$rtrn=0;
@@ -307,6 +316,12 @@
 			# do I need to do anything here?  
 			# We'll just wait for now
 		}
+		elsif (/^Booted\(KDB\)/ || /^Debugging/ )
+		{
+			print egen_log "shutdown: crash dump being performed. Waiting\n";
+			$rtrn=0;
+			last;
+		}
 		else
 		{
 			if (pserver_pblade)
@@ -317,8 +332,12 @@
 			# is there any harm in sending this command multiple 
 			# times?
 			my $cmd = "ssh $cserv $esh blade -s $_";
+                        print egen_log "shutdown: $cmd  being called, before open3\n";
 			my $pid = open3 (\*WTR, \*RDR,\*RDR, $cmd)
 				or die "error open3(): $!";
+                        print egen_log "shutdown: after calling open3\n";
+                        @outlines = <RDR>;
+                        print egen_log "shutdown: Open3 result: ", @outlines, "\n";
 
 			close WTR;
 			close RDR;
@@ -329,6 +348,7 @@
 
 		sleep 1;
 	}
+        print egen_log "shutdown: Returning from pserver_shutdown with return code $rtrn\n";
 	return $rtrn;
 }
 




More information about the Cluster-devel mailing list