Description of problem:
iproute2 was fixed incorrectly by iproute2-2.6.32-rtnl_send-hang.patch
@@ -158,8 +158,8 @@ static int iplink_have_newlink(void)
req.n.nlmsg_type = RTM_NEWLINK;
req.i.ifi_family = AF_UNSPEC;
- rtnl_send(&rth, (char *)&req.n, req.n.nlmsg_len);
- rtnl_listen(&rth, accept_msg, NULL);
+ if (rtnl_send(&rth, &req.n, req.n.nlmsg_len) == 0)
+ rtnl_listen(&rth, accept_msg, NULL);
Look at the rtnl_send() function
int rtnl_send(struct rtnl_handle *rth, const char *buf, int len)
return send(rth->fd, buf, len, 0);
send() returns the number of bytes sent, so with these patch we leave a response in a socket. Each next command will get a response for a previous command.
I think we must check that rtnl_send() returns a positive value.
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. Install old kernel (2.6.18)
2. # ip link set up dev eth0
RTNETLINK answers: Operation not supported
Can't bring a network interface up
It works fine w/o this patch
You are right, the patch is wrong.
Created attachment 835274 [details]
Correct patch proposed to upstream
Just for the reference:
Corresponding Parallels issue id: PCLIN-32219
Corresponding OpenVZ bug: https://bugzilla.openvz.org/2843
Web Hosting Talk thread: http://www.webhostingtalk.com/showthread.php?t=1327600
Fixed iproute2 packages: http://download.openvz.org/.kir/bug2843/
Upstream is still working on fix. Current upstream sources does not provide complete fix.
I recommend to apply my patch or the latter version posted in referenced mailing list which adds a warning to error output.
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.
For information on the advisory, and where to find the updated
files, follow the link below.
If the solution does not work for you, open a new bug report.