Summary: | sys-cluster/keepalived-1.2.2 on Linux 3.0.6: communication with kernel failing after some time | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Ronie Henrich <ronie> |
Component: | [OLD] Core system | Assignee: | Gentoo Cluster Team <cluster> |
Status: | RESOLVED FIXED | ||
Severity: | critical | CC: | ronie |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
URL: | http://sourceforge.net/mailarchive/forum.php?thread_name=1323263509.28623.69.camel%40lnxos-dev&forum_name=keepalived-devel | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: |
keepalived_k2.strace
keepalived_k3.strace bind-afunspec.patch |
Description
Ronie Henrich
2011-12-10 16:02:23 UTC
Created attachment 295381 [details]
keepalived_k2.strace
Created attachment 295383 [details]
keepalived_k3.strace
I found some posts related to it: http://comments.gmane.org/gmane.linux.network/205326 I tested it again with the following changes in Linux kernel 3.0.6, and it worked: diff --git a/net/ipv4/af_inet.c b/net/ipv4/af_inet.c index 1b745d4..60fd64e 100644 --- a/net/ipv4/af_inet.c +++ b/net/ipv4/af_inet.c @@ -465,7 +465,7 @@ int inet_bind(struct socket *sock, struct sockaddr *uaddr, int addr_len) if (addr_len < sizeof(struct sockaddr_in)) goto out; - if (addr->sin_family != AF_INET) { + if (addr->sin_family != AF_INET && addr->sin_family != AF_UNSPEC) { err = -EAFNOSUPPORT; goto out; } I posted all the debug info at https://lists.sourceforge.net/lists/listinfo/keepalived-devel on 2011-12-05 and Vincent Bernat provided a patch to fix it. See attached bind-afunspec.patch Created attachment 295385 [details, diff]
bind-afunspec.patch
Please don't CC random people. Jeroen, I talk to Robin (robbat2) by email about this bug. InCVS now. |