Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Hi Simon, it seems I am the one unlucky guy who uses heartbeat with IPv6.... I started updateing my cluster today to lenny and IPv6addr fails again: scs1:/etc/heartbeat/resource.d# ./IPv6addr 2001:629:3800:33:0:0:0:122 start 2009/02/16_20:19:50 ERROR: Generic error ERROR: Generic error I dug into the source of IPv6addr.c and it seems that the mask is too long and therefore the scan_if isn't matching. I have a 2001:629:3800:33::/64 subnet but it seems from my debug output that IPv6addr tries to match /96 bits of the IP address which fails. My C knowledge is sadly too little to fix this myself. I would greatly be happy if you could help me with that. ------------------------------------------------------------------------------ Hi, we found some discussion about this issue here: http://www.velocityreviews.com/forums/t283343-shifting-bits-shift-32-bits-on-32-bit-int.html In post ClusterLabs#4 it reads: The behaviour of shifts defined only if the value of the right operand is less than the number of bits in the left operand. So shifting a 32-bit value by 32 or more is undefined... further info in ClusterLabs#7: Better yet, read the first part of section 5.8 of the ISO/IEC 14882:2003 standard: The behavior is undefined if the right operand is negative, or greater than or equal to the length in bits of the promoted left operand. So it seems that my patch is the proper fix in the end after all. Attached as file, since BT distroyed the formatting. ------------------------------------------------------------------------------- This bug was reported as Debian bug #515662 http://bugs.debian.org/515662 Signed-off-by: Simon Horman <horms@verge.net.au>
- Loading branch information