[ovs-build] Passed: ovsrobot/ovn#10 (series_109227 - 9755b10)

Travis CI builds at travis-ci.com
Wed May 22 14:49:45 UTC 2019


Build Update for ovsrobot/ovn
-------------------------------------

Build: #10
Status: Passed

Duration: 1 hr, 0 mins, and 40 secs
Commit: 9755b10 (series_109227)
Author: Dumitru Ceara
Message: ovn-controller: Fix chassis ovn-sbdb record init

The chassis_run code didn't take into account the scenario when the
system-id was changed in the Open_vSwitch table. Due to this the code
was trying to insert a new Chassis record in the OVN_Southbound DB with
the same Encaps as the previous Chassis record. The transaction used
to insert the new records was aborting due to the ["type", "ip"]
index constraint violation as we were creating new Encap entries with
the same "type" and "ip" as the old ones.

In order to fix this issue the flow is now:
1. the first time ovn-controller initializes the Chassis entry (shortly
after start up) we first check if there is a stale Chassis record in the
OVN_Southbound DB by checking if any of the old Encap entries associated
to the Chassis record match the new tunnel configuration. If found it
means that ovn-controller didn't shutdown gracefully last time it was
run so it didn't cleanup the Chassis table. Potentially in the meantime
the OVS system-id was also changed. We then update the stale entry with
the new configuration and store the last configured chassis-id in memory
to avoid walking the Chassis table every time.
2. for subsequent chassis_run calls we use the last configured
chassis-id stored at the previous step to lookup the old Chassis record.
3. when ovn-controller shuts down gracefully we lookup the Chassis
record based on the chassis-id stored in memory at steps 1 and 2 above.
This is to avoid failing to cleanup the Chassis record in OVN_Southbound
DB if the OVS system-id changes between the last call to chassis_run and
chassis_cleanup.

With this commit we also:
- refactor chassis.c to abstract the string processing and use
  library data structures (e.g., sset)
- rename the get_chassis_id function in ovn-controller.c to
  get_ovs_chassis_id to avoid confusion with the newly added
  chassis_get_id function from chassis.c which returns the last
  successfully configured chassis-id.
- add a test case in ovn-controller.at to check that OVS system-id
  changes are properly propagated to OVN_Southbound DB

Reported-at: https://bugzilla.redhat.com/1708146
Reported-by: Haidong Li <haili at redhat.com>
Signed-off-by: Dumitru Ceara <dceara at redhat.com>
Signed-off-by: 0-day Robot <robot at bytheb.org>

View the changeset: https://github.com/ovsrobot/ovn/compare/a6f5e39c17d7^...9755b1055795

View the full build log and details: https://travis-ci.com/ovsrobot/ovn/builds/112754262?utm_medium=notification&utm_source=email

--

You can unsubscribe from build emails from the ovsrobot/ovn repository going to https://travis-ci.com/account/preferences/unsubscribe?repository=9136199&utm_medium=notification&utm_source=email.
Or unsubscribe from *all* email updating your settings at https://travis-ci.com/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/20190522/323db298/attachment.html>


More information about the build mailing list