summaryrefslogtreecommitdiff
path: root/Vagrantfile
diff options
context:
space:
mode:
authorEthan Jackson <ethan@nicira.com>2015-01-03 11:39:14 -0800
committerEthan Jackson <ethan@nicira.com>2015-01-07 18:15:13 -0800
commit4c75aaabb15389ddc9ec76e23f09d9282648dc13 (patch)
tree30a200b8ec8ce8051aca3b2710744058feccfa1c /Vagrantfile
parent8ae8176fd0d8ed919e3301cc961dcf02b65ff49d (diff)
downloadopenvswitch-4c75aaabb15389ddc9ec76e23f09d9282648dc13.tar.gz
dpif-netdev: Fix rare flow add race condition.
Before this patch, dp_netdev_flow_add() inserted newly minted flows in the "flow_table" cmap before inserting them into the per core "dpcls" classifier. Since dpcls_insert() initializes 'flow->cr.mask', there's a brief window where the flow is accessible from the cmap, but has a bogus mask value. In my testing, under rare instances (i.e. once every 20 minutes with a very specific flow table and traffic pattern), revalidators core dump when they call dpif_netdev_flow_dump_next(), which accesses this bogus mask value from dp_netdev_flow_to_dpif_flow(). By inserting into the per core classifier before the cmap, all the values are guaranteed to be initialized during flow dumps. With this patch, I can no longer reproduce the crash. Signed-off-by: Ethan Jackson <ethan@nicira.com> Acked-by: Jarno Rajahalme <jrajahalme@nicira.com>
Diffstat (limited to 'Vagrantfile')
0 files changed, 0 insertions, 0 deletions