[pve-devel] applied: [PATCH qemu-server v6 0/3] add qmeventd
Wolfgang Bumiller
w.bumiller at proxmox.com
Wed Nov 14 15:33:06 CET 2018
applied series
On Wed, Nov 14, 2018 at 02:59:55PM +0100, Dominik Csapak wrote:
> this series adds qmeventd, a binary which listens on a socket
> and waits for qemu to connect to it, and thenfor the shutdown event of qemu
>
> i use this to execute 'qm cleanup' when a vm exits, and can detect
> if a qemu crashed/was stopped from within/etc.
>
> like i discussed this with wolfgang off-list, i send it without the
> docs patch
>
> changes from v5:
> * fixed typo
> * fixed function signature formatting
> * changed exit(0) to exit(EXIT_SUCCESS)
> * fixed the path to qmeventd socket in config_to_command
>
> changes from v4:
> * incorporated feedback from wolfgang
> - initialize with NULL
> - use < len
> - use stdbool
> - better error handling for pid
> - exit code 0 with -h
> - dependecy
> - whitespace
> - put args on the stack
> * sorted headers
> * moved service socket to /var/run/qmeventd.sock and have
> that directory as RequiresMountsFor=/var/run
> (that fixed the issue that qmeventd could not start after a reboot because
> /var/run/qemu-server was not created yet)
> * added some logging to qm cleanup
>
> changes from v3:
> * added missing build dependency
> * fixed string handling in get_vmid_from_pid
> * use strtoul instead of custom code
> * changed multiple fatal errors to simply logging
> * added SIGCLD handler
> * changed manpage from rst to adoc and moved to pve-docs
> * changed fds to have CLOEXEC
> * changed from accept to accept4
> * whitespace fixes
> * changed error handling from macro to inline function
> * put buf/vmid limits in struct and use sizeof instead of #define
>
> changes from v2:
> * completely reversed the logic: instead of having one binary
> per vm, we now have one proper daemon which listens and waits
> for qemu to connect to it, this way the race is on the qemu side
> (if it crashes/gets killed before connecting to the socket) instead
> of with us (connecting to a non existing qemu process)
> * dropped the --no-reboot patch/logic, as my patch upstream was not accepted,
> but i will send another version of it there soon
> * added a manpage, option parsing, etc.
>
> changes from v1:
> * 1/5 is new and contains changes that we want for qemu 2.12
> * incorporated feedback from w.bumiller
> * fixed the -no-reboot check
>
> Dominik Csapak (3):
> add qmeventd
> add 'qm cleanup'
> use qmeventd to execute qm cleanup
>
> Makefile | 19 ++-
> PVE/CLI/qm.pm | 62 ++++++++
> PVE/QemuServer.pm | 3 +-
> debian/control | 2 +
> debian/rules | 2 +-
> qmeventd.c | 429 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
> qmeventd.h | 55 +++++++
> qmeventd.service | 10 ++
> 8 files changed, 576 insertions(+), 6 deletions(-)
> create mode 100644 qmeventd.c
> create mode 100644 qmeventd.h
> create mode 100644 qmeventd.service
>
> --
> 2.11.0
More information about the pve-devel
mailing list