[Cluster-devel] cluster/gulm/src lock_io.c ltpx_io.c

lhh at sourceware.org lhh at sourceware.org
Wed Aug 16 15:01:38 UTC 2006


CVSROOT:	/cvs/cluster
Module name:	cluster
Branch: 	STABLE
Changes by:	lhh at sourceware.org	2006-08-16 15:01:37

Modified files:
	gulm/src       : lock_io.c ltpx_io.c 

Log message:
	Port bugfix for 183507 from RHEL4 branch (Fix by cfeist)

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/gulm/src/lock_io.c.diff?cvsroot=cluster&only_with_tag=STABLE&r1=1.9.2.5.6.1&r2=1.9.2.5.6.2
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/gulm/src/ltpx_io.c.diff?cvsroot=cluster&only_with_tag=STABLE&r1=1.12.2.1&r2=1.12.2.1.6.1

--- cluster/gulm/src/Attic/lock_io.c	2005/06/21 16:07:40	1.9.2.5.6.1
+++ cluster/gulm/src/Attic/lock_io.c	2006/08/16 15:01:37	1.9.2.5.6.2
@@ -515,6 +515,7 @@
    uint64_t x_gen;
    uint32_t x_code, x_error, x_rank;
    uint8_t x_ama;
+   int connection_attempts = 0;
 
    if((cfd = socket(AF_INET6, SOCK_STREAM, 0)) <0) {
       log_err("Failed to create socket. %d:%s\n", errno, strerror(errno));
@@ -526,10 +527,19 @@
    adr.sin6_addr = in6addr_loopback;
    adr.sin6_port = htons(gulm_config.corePort);
 
-   if( connect(cfd, (struct sockaddr*)&adr, sizeof(struct sockaddr_in6))<0) {
+   while ( connect(cfd, (struct sockaddr*)&adr, sizeof(struct sockaddr_in6))<0) {
       close(cfd);
-      log_err("Failed to connect to core. %d:%s\n", errno, strerror(errno));
-      return -1;
+
+      connection_attempts++;
+      if (connection_attempts > 3) {
+         log_err("Failed to connect to core, shutting down lock_gulmd_LT.");
+         return -1;
+      }
+      if (connection_attempts > 1)
+         log_err("Failed to connect to core. %d:%s\n", errno, strerror(errno));
+
+      sleep(5);
+
    }
 
    idx = add_to_pollers(cfd, poll_Open, 0, "_ core _", &in6addr_loopback);
--- cluster/gulm/src/Attic/ltpx_io.c	2005/02/07 15:25:31	1.12.2.1
+++ cluster/gulm/src/Attic/ltpx_io.c	2006/08/16 15:01:37	1.12.2.1.6.1
@@ -426,6 +426,7 @@
    uint64_t x_gen;
    uint32_t x_code, x_error, x_rank;
    uint8_t x_ama;
+   int connection_attempts = 0;
 
    if((cfd = socket(AF_INET6, SOCK_STREAM, 0)) <0) {
       log_err("Failed to create socket. %d:%s\n", errno, strerror(errno));
@@ -437,10 +438,18 @@
    adr.sin6_addr = in6addr_loopback;
    adr.sin6_port = htons(gulm_config.corePort);
 
-   if( connect(cfd, (struct sockaddr*)&adr, sizeof(struct sockaddr_in6))<0) {
+   while ( connect(cfd, (struct sockaddr*)&adr, sizeof(struct sockaddr_in6))<0) {
       close(cfd);
-      log_err("Failed to connect to core. %d:%s\n", errno, strerror(errno));
-      return -1;
+
+      connection_attempts++;
+      if (connection_attempts > 3) {
+         log_err("Failed to connect to core, shutting down lock_gulmd_LTPX.");
+        return -1;
+      }
+      if (connection_attempts > 1)
+        log_err("Failed to connect to core. %d:%s\n", errno, strerror(errno));
+
+      sleep(5);
    }
 
    idx = add_to_pollers(cfd, poll_Open, 0, "_ core _", &in6addr_loopback);




More information about the Cluster-devel mailing list