| Summary: | Unable to configure network after updating iproute to 2.6.32-31 | ||||||
|---|---|---|---|---|---|---|---|
| Product: | Red Hat Enterprise Linux 6 | Reporter: | Andrew Vagin <avagin> | ||||
| Component: | iproute | Assignee: | Pavel Šimerda (pavlix) <psimerda> | ||||
| Status: | CLOSED ERRATA | QA Contact: | Jaroslav Aster <jaster> | ||||
| Severity: | high | Docs Contact: | |||||
| Priority: | urgent | ||||||
| Version: | 6.5 | CC: | bkb, fkrska, jaster, jherrman, jkurik, khorenko, kolyshkin, krai, mmalik, mpathan, nchavan, ppisar, strobert, thozza, vvs | ||||
| Target Milestone: | rc | Keywords: | EasyFix, Patch, ZStream | ||||
| Target Release: | --- | ||||||
| Hardware: | Unspecified | ||||||
| OS: | Unspecified | ||||||
| URL: | http://thread.gmane.org/gmane.linux.network/294319 | ||||||
| Whiteboard: | |||||||
| Fixed In Version: | Doc Type: | Bug Fix | |||||
| Doc Text: |
Prior to this update, the iproute utility handled the return values of the send() system call incorrectly when reading kernel responses. Consequently, iproute could interpret successful kernel responses as failures, which caused iproute to terminate with an error. With this update, iproute uses the return values correctly and processes kernel responses as intended.
|
Story Points: | --- | ||||
| Clone Of: | |||||||
| : | 1156448 (view as bug list) | Environment: | |||||
| Last Closed: | 2015-07-22 06:40:38 UTC | Type: | Bug | ||||
| Regression: | --- | Mount Type: | --- | ||||
| Documentation: | --- | CRM: | |||||
| Verified Versions: | Category: | --- | |||||
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||
| Cloudforms Team: | --- | Target Upstream Version: | |||||
| Bug Depends On: | |||||||
| Bug Blocks: | 1156448 | ||||||
| Attachments: |
|
||||||
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. https://rhn.redhat.com/errata/RHBA-2015-1331.html |
Description of problem: iproute2 was fixed incorrectly by iproute2-2.6.32-rtnl_send-hang.patch --- a/ip/iplink.c +++ b/ip/iplink.c @@ -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); } return have_rtnl_newlink; } 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): iproute-2.6.32-31.el6.x86_64 How reproducible: 100% Steps to Reproduce: 1. Install old kernel (2.6.18) 2. # ip link set up dev eth0 RTNETLINK answers: Operation not supported Actual results: Can't bring a network interface up Expected results: It works fine w/o this patch Additional info: