[ovs-git] [openvswitch/ovs] 1c13aa: revalidator: Avoid assert in transition_ukey().
GitHub
noreply at github.com
Thu Apr 27 16:55:34 UTC 2017
Branch: refs/heads/branch-2.7
Home: https://github.com/openvswitch/ovs
Commit: 1c13aa391bb1404e763919b22f64ab2b3a350ada
https://github.com/openvswitch/ovs/commit/1c13aa391bb1404e763919b22f64ab2b3a350ada
Author: Joe Stringer <joe at ovn.org>
Date: 2017-04-27 (Thu, 27 Apr 2017)
Changed paths:
M ofproto/ofproto-dpif-upcall.c
Log Message:
-----------
revalidator: Avoid assert in transition_ukey().
There is a case where a flow is dumped from the kernel after the ukey is
already transitioned into an EVICTING/EVICTED/DELETED state, and the
revalidator thread attempts to shift that into UKEY_OPERATIONAL because
it was able to dump the flow from the datapath. This resulted in
triggering the assert in transition_ukey(). Detect this condition and
skip handling the flow (as it's already on its way out).
Users report:
> Program terminated with signal SIGABRT, Aborted.
> raise () from /lib/x86_64-linux-gnu/libc.so.6
> raise () from /lib/x86_64-linux-gnu/libc.so.6
> abort () from /lib/x86_64-linux-gnu/libc.so.6
> ovs_abort_valist
> vlog_abort_valist
> vlog_abort
> ovs_assert_failure
> transition_ukey (ukey=<optimized out>, dst=<optimized out>)
> at ofproto/ofproto-dpif-upcall.c:1674
> revalidate (revalidator=0x1cb36c8) at ofproto/ofproto-dpif-upcall.c:2324
> udpif_revalidator (arg=0x1cb36c8) at ofproto/ofproto-dpif-upcall.c:901
> ovsthread_wrapper (aux_=<optimized out>) at lib/ovs-thread.c:348
> start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
> clone () from /lib/x86_64-linux-gnu/libc.so.6
VMware-BZ: #1857694
Signed-off-by: Joe Stringer <joe at ovn.org>
Acked-by: Ben Pfaff <blp at ovn.org>
Commit: f0320ddadeec012487807cb2c71dd8da4dc9dad9
https://github.com/openvswitch/ovs/commit/f0320ddadeec012487807cb2c71dd8da4dc9dad9
Author: Joe Stringer <joe at ovn.org>
Date: 2017-04-27 (Thu, 27 Apr 2017)
Changed paths:
M ofproto/ofproto-dpif-upcall.c
Log Message:
-----------
revalidator: Improve logging for transition_ukey().
There are a few cases where more introspection into ukey transitions
would be relevant for logging or assertion. Track the SOURCE_LOCATOR and
thread id when states are transitioned and use these for logging.
Suggested-by: Jarno Rajahalme <jarno at ovn.org>
Signed-off-by: Joe Stringer <joe at ovn.org>
Acked-by: Ben Pfaff <blp at ovn.org>
Compare: https://github.com/openvswitch/ovs/compare/e167728bd786...f0320ddadeec
More information about the git
mailing list