[ovs-build] Failed: dceara/ovn#84 (bug-inc-processing-stale-data - 5cc7c55)

Travis CI builds at travis-ci.org
Tue Oct 29 15:43:34 UTC 2019


Build Update for dceara/ovn
-------------------------------------

Build: #84
Status: Failed

Duration: 49 mins and 28 secs
Commit: 5cc7c55 (bug-inc-processing-stale-data)
Author: Dumitru Ceara
Message: ovn-controller: Fix use of dangling pointers in I-P runtime_data.

The incremental processing engine might stop a run before the
en_runtime_data node is processed. In such cases the ed_runtime_data
fields might contain pointers to already deleted SB records. For
example, if a port binding corresponding to a patch port is removed from
the SB database and the incremental processing engine aborts before the
en_runtime_data node is processed then the corresponding local_datapath
hashtable entry in ed_runtime_data is stale and will store a pointer to
the already freed sbrec_port_binding record.

This will cause invalid memory accesses in various places (e.g.,
pinctrl_run() -> prepare_ipv6_ras()).

To fix the issue we need a way to track how each node was processed
during an engine run. This commit transforms the 'changed' field in
struct engine_node in a 'state' field. Possible node states are:
- "Stale": data in the node is not up to date with the DB.
- "Updated": data in the node is valid but was updated during
  the last run of the engine.
- "Valid": data in the node is valid and didn't change during
  the last run of the engine.
- "Aborted": during the last run, processing was aborted for
  this node.

The commit also simplifies the logic of calling engine_run and
engine_need_run in order to reduce the number of external variables
required to track the result of the last engine execution.

Functions that need to be called from the main loop and depend on
various data contents of the engine's nodes are now called only if
the data is up to date.

CC: Han Zhou <hzhou8 at ebay.com>
Fixes: a6b7d9f4f047 ("ovn-controller: Fix flow installation latency
caused by recompute.")
Signed-off-by: Dumitru Ceara <dceara at redhat.com>

View the changeset: https://github.com/dceara/ovn/compare/d66eaf7e4f6b^...5cc7c55eeaf5

View the full build log and details: https://travis-ci.org/dceara/ovn/builds/604498375?utm_medium=notification&utm_source=email

--

You can unsubscribe from build emails from the dceara/ovn repository going to https://travis-ci.org/account/preferences/unsubscribe?repository=25507942&utm_medium=notification&utm_source=email.
Or unsubscribe from *all* email updating your settings at https://travis-ci.org/account/preferences/unsubscribe?utm_medium=notification&utm_source=email.
Or configure specific recipients for build notifications in your .travis.yml file. See https://docs.travis-ci.com/user/notifications.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openvswitch.org/pipermail/ovs-build/attachments/20191029/94ca61ff/attachment.html>


More information about the build mailing list