Hi,

 

I’m currently trying to set up a heartbeat cluster that fails over an IPaddress on a specific virtual interface (eth1:1 in my case). The task is accomplished by using the following line in my haresources file:

blue04 IPaddr2::192.168.5.5/24/eth1:1

 

 

This works just fine in release 2.0.3-9, but after having recently upgraded to 2.0.5-1, I noticed that a nasty error message is now printed every time the resource is checked (every 5 seconds in this case):

lrmd[3310]: 2006/05/16_17:48:00 info: RA output: (IPaddr2_1:monitor:stderr) eth1:1: warning: name may be invalid

lrmd[3310]: 2006/05/16_17:48:05 info: RA output: (IPaddr2_1:monitor:stderr) eth1:1: warning: name may be invalid

 

I did some looking, and through the linux-ha-cvs archives, I found that recently the following pice of code was added to findif.c::ValidateIFName on 4/20/2006 (entire commit message at bottom of this email):

 

       /* Contain a ":"?  Probably an error, but treat as warning at present */
       if ((colonptr = strchr(ifname, ':')) != NULL) {
               fprintf(stderr, "%s: warning: name may be invalid\n",
                 ifr->ifr_name);

 

 

I’m not sure I understand why specifying a virtual interface would be considered a potential problem. The warning message is quite annoying, since it gets printed out every 5 seconds. My main concern is that someone might decide to take the change to the point where heartbeat errors out on startup when it sees a resource that specifies a virtual interface. I searched through the linux-ha-* mailing archives, and every mention of virtual interfaces that I found seemed to indicate that support for virtual interfaces is a wanted feature.

 

The “fix” for this isn’t exactly rocket science, but I would *really* prefer to depend on Fedora binary RPMs for updates, rather than having to deal with patching and building from scratch every time an update is released. If my reasoning on this issue is flawed, please let me know. Otherwise, if I need to open an issue for this, please let me know.

 

Thanks,

 

--John

 

 

---

John Zdunczyk

Metreos Corporation

o : 512-687-2009

m: 512-785-6651

e : [EMAIL PROTECTED]

 

 

 

CVS commit message follows:

 

 

RCS file: /home/cvs/linux-ha/linux-ha/heartbeat/findif.c,v
retrieving revision 1.59
retrieving revision 1.60
diff -u -3 -r1.59 -r1.60
--- findif.c    10 Apr 2006 09:55:02 -0000      1.59
+++ findif.c    20 Apr 2006 09:02:13 -0000      1.60
@@ -1,4 +1,4 @@
-/* $Id: findif.c,v 1.59 2006/04/10 09:55:02 andrew Exp $ */
+/* $Id: findif.c,v 1.60 2006/04/20 09:02:13 davidlee Exp $ */
 /*
  * findif.c:   Finds an interface which can route a given address
  *
@@ -511,13 +511,21 @@
 ValidateIFName(const char *ifname, struct ifreq *ifr) 
 {
        int skfd = -1;
- 
+       char *colonptr;
+
        if ( (skfd = socket(PF_INET, SOCK_DGRAM, 0)) == -1 ) {
                fprintf(stderr, "%s\n", strerror(errno));
                return 0;
        }
  
        strncpy(ifr->ifr_name, ifname, IFNAMSIZ);
+
+       /* Contain a ":"?  Probably an error, but treat as warning at present */
+       if ((colonptr = strchr(ifname, ':')) != NULL) {
+               fprintf(stderr, "%s: warning: name may be invalid\n",
+                 ifr->ifr_name);
+       }
+ 
        if (ioctl(skfd, SIOCGIFFLAGS, ifr) < 0) {
                fprintf(stderr, "%s: unknown interface: %s\n"
                        , ifr->ifr_name, strerror(errno));
@@ -903,6 +911,9 @@
 
 /* 
  * $Log: findif.c,v $
+ * Revision 1.60  2006/04/20 09:02:13  davidlee
+ * A ':' in an interface name is probably an error (but for now treat as a 
mere warning).
+ *
  * Revision 1.59  2006/04/10 09:55:02  andrew
  * Fix findif for any OS that doesnt use /proc/route
  *

 

_______________________________________________________
Linux-HA-Dev: [email protected]
http://lists.linux-ha.org/mailman/listinfo/linux-ha-dev
Home Page: http://linux-ha.org/

Reply via email to