[Cluster-devel] cluster/cman/cman_tool join.c

pcaulfield at sourceware.org pcaulfield at sourceware.org
Mon Feb 19 13:14:44 UTC 2007


CVSROOT:	/cvs/cluster
Module name:	cluster
Branch: 	RHEL5
Changes by:	pcaulfield at sourceware.org	2007-02-19 13:14:43

Modified files:
	cman/cman_tool : join.c 

Log message:
	If exec fails then tell the parent process.

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/cman/cman_tool/join.c.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.47.2.1&r2=1.47.2.2

--- cluster/cman/cman_tool/join.c	2006/12/12 16:51:10	1.47.2.1
+++ cluster/cman/cman_tool/join.c	2007/02/19 13:14:42	1.47.2.2
@@ -139,7 +139,11 @@
 		be_daemon(!comline->verbose);
 		chdir(SBINDIR);
 		execve("./aisexec", argv, envp);
-		die("execve of " SBINDIR "/aisexec failed: %s", strerror(errno));
+
+		// exec failed - tell the parent process */
+		sprintf(scratch, "execve of " SBINDIR "/aisexec failed: %s", strerror(errno));
+		write(p[1], scratch, strlen(scratch));
+		exit(1);
 		break;
 
 	default: //parent
@@ -169,7 +173,7 @@
 			}
 			else {
 				int pidstatus;
-				if (waitpid(aisexec_pid, &pidstatus, WNOHANG) == 0)
+				if (waitpid(aisexec_pid, &pidstatus, WNOHANG) == 0 && pidstatus != 0)
 					fprintf(stderr, "cman died with status: %d\n", WEXITSTATUS(pidstatus));
 				else
 					status = 0; /* Try to connect */




More information about the Cluster-devel mailing list