vswitch: Do not use "xe" on XenServer, to avoid deadlock.
authorBen Pfaff <blp@nicira.com>
Tue, 31 Mar 2009 21:45:02 +0000 (14:45 -0700)
committerBen Pfaff <blp@nicira.com>
Tue, 31 Mar 2009 21:45:02 +0000 (14:45 -0700)
commit04850866d9d01e5e667328d0b13929b744defdb9
treed73c82931af6358bae28a85e5d39d7c9fe5d0e57
parent1261f17136356afa80fd7c4b9c4af14a5173858c
vswitch: Do not use "xe" on XenServer, to avoid deadlock.

Commit 4ab581b949, "vswitch: Fix duplicated DPIDs observed under
XenServer," changed vswitchd to use the "xe" program to obtain the host
UUID and network name under XenServer.  Unfortunately, on XenServer pool
slaves this causes a deadlock, because on such machines "xe" always
attempts to contact the master to perform database queries.  Since vswitchd
is the entity that must set up the flow that "xe" initiates as part of
that connection, this will deadlock and fail.

Instead, get the host UUID from /etc/xensource-inventory and hash it with
the bridge name.  Discussion with the NOX folks indicates that this should
provide sufficient stability and uniqueness.
lib/vlog-modules.def
vswitchd/automake.mk
vswitchd/bridge.c
vswitchd/xe.c [deleted file]
vswitchd/xe.h [deleted file]
vswitchd/xenserver.c [new file with mode: 0644]
vswitchd/xenserver.h [new file with mode: 0644]