Hi Kazunori-san,

On Fri, Oct 09, 2009 at 07:17:15PM +0900, Kazunori INOUE wrote:
> Hi,
> 
> I found that IPv6addr failed to assign the address in the following
> environments.
> I attached patch for IPv6addr in Cluster Resource Agents
> (changeset:de034cf1e9a1).
> 
> 1) environments
>    # ifconfig bond0
>    bond0     Link encap:Ethernet  HWaddr 00:10:18:27:02:D3
>              inet6 addr: 2001:db8:91:0:92::181/80 Scope:Global
>    [snip]
> 
>    # ifconfig eth0
>    eth0      Link encap:Ethernet  HWaddr 00:1A:64:06:59:92
>              inet6 addr: 2001:db8:91:0:91::182/64 Scope:Global
>    [snip]
> 
>    # grep ^2001 /proc/net/if_inet6
>    20010db8009100000091000000000182 0e 40 00 80     eth0
>    20010db8009100000092000000000181 0c 50 00 80    bond0
>      (* POINT which fails is this order.)

You mean the order of interface list influences the processing?

> 2) IPv6addr start op
>    # env | grep OCF_RESKEY
>    OCF_RESKEY_ipv6addr=2001:db8:91:0:92::189
>    OCF_RESKEY_nic=bond0
>     (* OCF_RESKEY_cidr_netmask is not specified intentionally.)
> 
>    # /usr/lib/ocf/resource.d/heartbeat/IPv6addr start
>    # echo $?
>    1
>    #
> 
> I hope they are helpful to you.
> 
> Regards,
> Kazunori INOUE

> diff -urN agents.org/heartbeat/IPv6addr.c agents.mod/heartbeat/IPv6addr.c
> --- agents.org/heartbeat/IPv6addr.c   2009-10-09 15:13:50.000000000 +0900
> +++ agents.mod/heartbeat/IPv6addr.c   2009-10-09 15:19:36.000000000 +0900
> @@ -294,6 +294,7 @@
>       /* release the pid file */
>       unlink(pid_file);
>  
> +     cl_log(LOG_DEBUG, "%s %s : %d", getenv("OCF_RESOURCE_INSTANCE"), 
> argv[1], ret);
>       return ret;
>  }
>  int
> @@ -513,7 +514,6 @@
>               if (*plen_target!=0 && plen != *plen_target) {
>                       continue;
>               }
> -             *plen_target = plen;
>  
>               /* If interface name provided, only same devname entry
>                * would be considered
> @@ -554,6 +554,7 @@
>               /* We found it! */
>               if (same) {
>                       fclose(f);
> +                     *plen_target = plen;
>                       return devname;
>               }
>       }

I looked at the code twice, but can't see how this patch would
make the difference. plen doesn't change in that code segment, so
how can moving that assignment make plen_target different. Can
you please explain in more detail.

Cheers,

Dejan

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

_______________________________________________________
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