Bug 1587880
| Summary: | [RFE] 0ac0102 netdev: check for NULL fields in netdev_get_addrs is insufficient that won't cover all of possible situation. Need workaround urgently | ||||||
|---|---|---|---|---|---|---|---|
| Product: | Red Hat OpenStack | Reporter: | Masaki Furuta ( RH ) <mfuruta> | ||||
| Component: | openvswitch | Assignee: | Assaf Muller <amuller> | ||||
| Status: | CLOSED CURRENTRELEASE | QA Contact: | Ofer Blaut <oblaut> | ||||
| Severity: | high | Docs Contact: | |||||
| Priority: | high | ||||||
| Version: | 10.0 (Newton) | CC: | amuller, apevec, chrisw, dalvarez, fleitner, jbenc, knoha, majopela, mfuruta, ragiman, rhos-maint, rkhan, srevivo, tredaelli | ||||
| Target Milestone: | zstream | Keywords: | FutureFeature, TestOnly, ZStream | ||||
| Target Release: | 10.0 (Newton) | ||||||
| Hardware: | All | ||||||
| OS: | Linux | ||||||
| Whiteboard: | |||||||
| Fixed In Version: | openvswitch-2.9.0-62.el7fdn | Doc Type: | If docs needed, set a value | ||||
| Doc Text: | Story Points: | --- | |||||
| Clone Of: | Environment: | ||||||
| Last Closed: | 2019-03-01 11:39:09 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: | |||||
| Embargoed: | |||||||
| Attachments: |
|
||||||
|
Description
Masaki Furuta ( RH )
2018-06-06 08:52:10 UTC
Created attachment 1452839 [details]
untested more complete workaround
The customer is right that the workaround is incomplete.
But instead of forcing a rebuild of route cache periodically just to delete the cached addresses, I'd like to propose a more complete workaround of the glibc bug.
If ifa_name is NULL in the returned ifaddrs list, this means we've hit the glibc bug and that the results we've got are inconsistent. Instead of ignoring the inconsistent entry, we should just retry getifaddrs. This whole loop should be guarded by a counter and we should back up with a warning and continue with the last inconsistent dump if we don't get a consistent dump in a reasonable number of iterations.
Daniel, what do you think? See the attached patch.
(Note that the "with a warning" part is not in the patch. It probably should be.) Hi Jiri, Your patch makes sense and makes the workaround more robust by retrying it 3 times. Thanks! The glibc patch got merged: https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=c1f86a33ca32e26a9d6e29fc961e5ecb5e2e5eb4 This one should be the proper fix to the issue. Daniel, do you plan to submit it upstream, preferably with the warning part added? (In reply to Jiri Benc from comment #19) > Daniel, do you plan to submit it upstream, preferably with the warning part > added? I thought you were going to do it as it's your patch! If you want me to I can do it and add you as signer but also if you do it I can ACK it... Let me know how you want to move forward :) thanks! It would be great if you could submit it (and finish it first, I guess :-)). Thanks! Done: http://patchwork.ozlabs.org/patch/942816/ https://mail.openvswitch.org/pipermail/ovs-dev/2018-July/349566.html Patch is merged in OVS master and 2.10 branches upstream. https://github.com/openvswitch/ovs/commit/3434d306866d825084d2d186d1f8dd98662ff650 I'll reassign this to Jiri/OVS team for downstream backport. Also, note that this patch shouldn't be needed for glibc >= 2.28. According to our records, this should be resolved by openvswitch-2.9.0-83.el7fdp.1. This build is available now. |