]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
all: don't wait for driver lock during startup
authorDaniel P. Berrangé <berrange@redhat.com>
Thu, 11 Jul 2019 14:57:34 +0000 (15:57 +0100)
committerDaniel P. Berrangé <berrange@redhat.com>
Mon, 15 Jul 2019 12:36:45 +0000 (13:36 +0100)
When the drivers acquire their pidfile lock we don't want to wait if the
lock is already held. We need the driver to immediately report error,
causing the daemon to exit.

Reviewed-by: Erik Skultety <eskultet@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
12 files changed:
src/bhyve/bhyve_driver.c
src/interface/interface_backend_netcf.c
src/interface/interface_backend_udev.c
src/libxl/libxl_driver.c
src/lxc/lxc_driver.c
src/network/leaseshelper.c
src/node_device/node_device_hal.c
src/node_device/node_device_udev.c
src/nwfilter/nwfilter_driver.c
src/qemu/qemu_driver.c
src/secret/secret_driver.c
src/vz/vz_driver.c

index cfcf4e1fba5ca77640c026037bb879b3433e5bec..5387ac557051522740cb85abba8530d9439030a6 100644 (file)
@@ -1280,7 +1280,7 @@ bhyveStateInitialize(bool privileged,
     }
 
     if ((bhyve_driver->lockFD =
-         virPidFileAcquire(BHYVE_STATE_DIR, "driver", true, getpid())) < 0)
+         virPidFileAcquire(BHYVE_STATE_DIR, "driver", false, getpid())) < 0)
         goto cleanup;
 
     if (virDomainObjListLoadAllConfigs(bhyve_driver->domains,
index 868e49c56e4c7d1a46144ccf65a78828ac9b30f9..f575768c4c91d1a369c2ff3802fa1bac38939546 100644 (file)
@@ -120,7 +120,7 @@ netcfStateInitialize(bool privileged,
     }
 
     if ((driver->lockFD =
-         virPidFileAcquire(driver->stateDir, "driver", true, getpid())) < 0)
+         virPidFileAcquire(driver->stateDir, "driver", false, getpid())) < 0)
         goto error;
 
     /* open netcf */
index fcd7f1c04a4ccb91ce54785d946e3684436a8616..2feaeb95b70cecb35d2a25302f3feb15482a0401 100644 (file)
@@ -1199,7 +1199,7 @@ udevStateInitialize(bool privileged,
     }
 
     if ((driver->lockFD =
-         virPidFileAcquire(driver->stateDir, "driver", true, getpid())) < 0)
+         virPidFileAcquire(driver->stateDir, "driver", false, getpid())) < 0)
         goto cleanup;
 
     driver->udev = udev_new();
index a99c7471bb05766da2b21456a91a13d254c08819..492028c48740f84321abfa557fbdca949e505a0a 100644 (file)
@@ -747,7 +747,7 @@ libxlStateInitialize(bool privileged,
     }
 
     if ((libxl_driver->lockFD =
-         virPidFileAcquire(cfg->stateDir, "driver", true, getpid())) < 0)
+         virPidFileAcquire(cfg->stateDir, "driver", false, getpid())) < 0)
         goto error;
 
     if (!(libxl_driver->lockManager =
index 3982c24f347b1f54a4f926c0ad8d746e6ee89201..d0b670310163cfd0f93f6ce8425cae2f64f25c64 100644 (file)
@@ -1607,7 +1607,7 @@ static int lxcStateInitialize(bool privileged,
     }
 
     if ((lxc_driver->lockFD =
-         virPidFileAcquire(cfg->stateDir, "driver", true, getpid())) < 0)
+         virPidFileAcquire(cfg->stateDir, "driver", false, getpid())) < 0)
         goto cleanup;
 
     /* Get all the running persistent or transient configs first */
index 89d9a003e25e5352049989ba475e666a822edaf5..2a10fbf33abd83d3249954815c583d675e6ef866 100644 (file)
@@ -164,7 +164,7 @@ main(int argc, char **argv)
         goto cleanup;
 
     /* Try to claim the pidfile, exiting if we can't */
-    if ((pid_file_fd = virPidFileAcquirePath(pid_file, true, getpid())) < 0)
+    if ((pid_file_fd = virPidFileAcquirePath(pid_file, false, getpid())) < 0)
         goto cleanup;
 
     /* Since interfaces can be hot plugged, we need to make sure that the
index 1920f4566e5dab8859666c1bf940dc837ef01e3d..1f3f867599ae363fc35c145529307fba27357fe1 100644 (file)
@@ -637,7 +637,7 @@ nodeStateInitialize(bool privileged ATTRIBUTE_UNUSED,
     }
 
     if ((driver->lockFD =
-         virPidFileAcquire(driver->stateDir, "driver", true, getpid())) < 0)
+         virPidFileAcquire(driver->stateDir, "driver", false, getpid())) < 0)
         goto failure;
 
     if (!(driver->devs = virNodeDeviceObjListNew()))
index d88346294850b6648aeed29d6b86212c46b2594f..8bc63c506cfe5d94a3a128d1889cbdf8141ff48d 100644 (file)
@@ -1848,7 +1848,7 @@ nodeStateInitialize(bool privileged,
     }
 
     if ((driver->lockFD =
-         virPidFileAcquire(driver->stateDir, "driver", true, getpid())) < 0)
+         virPidFileAcquire(driver->stateDir, "driver", false, getpid())) < 0)
         goto cleanup;
 
     if (!(driver->devs = virNodeDeviceObjListNew()) ||
index 43561241f63dfbad54c14c29f31e028bacf27151..530e4f58725b62b43ca826da00efa35bba9156a6 100644 (file)
@@ -215,7 +215,7 @@ nwfilterStateInitialize(bool privileged,
     }
 
     if ((driver->lockFD =
-         virPidFileAcquire(driver->stateDir, "driver", true, getpid())) < 0)
+         virPidFileAcquire(driver->stateDir, "driver", false, getpid())) < 0)
         goto error;
 
     if (virNWFilterIPAddrMapInit() < 0)
index fc0d12c335389d0a7da90bb38362e0a965c214e5..d3a144aabddf6410e54d07e485e86c1526bedb92 100644 (file)
@@ -677,7 +677,7 @@ qemuStateInitialize(bool privileged,
     }
 
     if ((qemu_driver->lockFD =
-         virPidFileAcquire(cfg->stateDir, "driver", true, getpid())) < 0)
+         virPidFileAcquire(cfg->stateDir, "driver", false, getpid())) < 0)
         goto error;
 
     qemu_driver->qemuImgBinary = virFindFileInPath("qemu-img");
index 9344948db4053f175a435720e419b579ec0013e5..0af2bcef967ae7c76638f17e087c7e2c6a57ad90 100644 (file)
@@ -504,7 +504,7 @@ secretStateInitialize(bool privileged,
     }
 
     if ((driver->lockFD =
-         virPidFileAcquire(driver->stateDir, "driver", true, getpid())) < 0)
+         virPidFileAcquire(driver->stateDir, "driver", false, getpid())) < 0)
         goto error;
 
     if (!(driver->secrets = virSecretObjListNew()))
index 75430fb0d9f1d52b863fe4e0331d123b71a187d4..f5d05a7f43beb4b79e68828eac0da2dfc597e094 100644 (file)
@@ -4129,7 +4129,7 @@ vzStateInitialize(bool privileged,
     }
 
     if ((vz_driver_lock_fd =
-         virPidFileAcquire(VZ_STATEDIR, "driver", true, getpid())) < 0)
+         virPidFileAcquire(VZ_STATEDIR, "driver", false, getpid())) < 0)
         return -1;
 
     if (prlsdkInit() < 0) {