[ovs-build] Failed: blp/ovs-reviews#356 (deadlock - 69a7109)

Travis CI builds at travis-ci.org
Sat Apr 23 00:31:07 UTC 2016


Build Update for blp/ovs-reviews
-------------------------------------

Build: #356
Status: Failed

Duration: 2 minutes and 12 seconds
Commit: 69a7109 (deadlock)
Author: Ben Pfaff
Message: netdev: Fix potential deadlock.

Until now, netdev_class_mutex and route_table_mutex could be taken in
either order:

    * netdev_run() takes netdev_class_mutex, then netdev_vport_run() calls
      route_table_run(), which takes route_table_mutex.

    * route_table_init() takes route_table_mutex and then eventually calls
      netdev_open(), which takes netdev_class_mutex.

This commit fixes the problem by converting the netdev_classes hmap,
protected by netdev_class_mutex, into a cmap protected on the read
side by RCU.  Only a very small amount of code actually writes to the
cmap in question, so it's a lot easier to understand the locking rules
at that point.  In particular, there's no need to take netdev_class_mutex
from either netdev_run() or netdev_open(), so neither of the code paths
above determines a lock ordering any longer.

Reported-by: William Tu <u9012063 at gmail.com>
Reported-at: http://openvswitch.org/pipermail/discuss/2016-February/020216.html
Signed-off-by: Ben Pfaff <blp at ovn.org>

View the changeset: https://github.com/blp/ovs-reviews/compare/7f796a857838^...69a71094c679

View the full build log and details: https://travis-ci.org/blp/ovs-reviews/builds/125154369

--

You can configure 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://www.openvswitch.org/pipermail/ovs-build/attachments/20160423/56dbb6e3/attachment-0002.html>


More information about the build mailing list