From: "Daniel P. Berrangé" <berrange@redhat.com>
To: Eduardo Habkost <ehabkost@redhat.com>
Cc: Igor Mammedov <imammedo@redhat.com>,
Michal Privoznik <mprivozn@redhat.com>,
ldoktor@redhat.com, libvir-list@redhat.com,
qemu-devel@nongnu.org, mreitz@redhat.com, pbonzini@redhat.com,
pkrempa@redhat.com
Subject: Re: [Qemu-devel] [libvirt] [PATCH v6 2/2] vl: fix use of --daemonize with --preconfig
Date: Wed, 13 Jun 2018 15:23:09 +0100 [thread overview]
Message-ID: <20180613142309.GX19901@redhat.com> (raw)
In-Reply-To: <20180613141730.GR7451@localhost.localdomain>
On Wed, Jun 13, 2018 at 11:17:30AM -0300, Eduardo Habkost wrote:
> On Tue, Jun 12, 2018 at 01:50:33PM +0100, Daniel P. Berrangé wrote:
> > On Tue, Jun 12, 2018 at 02:42:05PM +0200, Igor Mammedov wrote:
> > > We can keep daemonizing flow in QEMU as it's now.
> > > But Eduardo's idea about libvirt created socked + letting QEMU connect to it
> > > has a merit. It should fix current deadlock issue with as monitor
> > > won't be depending on lead exit event.
> >
> > NB, libvirt only ever uses --daemonize when probing capabilities, never
> > when launching QEMU for a real VM. In the latter case, we now use FD
> > passing, so libvirt opens the UNIX domain socket listener, and passes
> > this into QEMU. So libvirt knows it can connect to the listener
> > immediately and will only ever get a failure if QEMU has exited.
>
> So, what I'm really missing here is: do we have a good reason to
> support --daemonize + --preconfig today?
On the libvirt zero, I don't see a compelling need for it.
> The options I see are:
>
> 1) complete daemonization before preconfig main loop
> ----------------------------------------------------
>
> By "complete daemonization" I mean doing chdir("/"),
> stderr/stdout cleanup, chroot, and UID magic before calling
> exit(0) on the main QEMU process.
>
> Pros:
> * More intuitive
>
> Cons:
> * Can break existing initialization code that don't expect
> this to happen.
> (can this be fixed?)
> * Can break any preconfig-time QMP commands that rely on opening
> files
> (is it a real problem?)
NB Use of -chroot is separate from -daemonize, so it is not
an issue with -preconfig + -daemonize alone.
There's soo many caveats around -chroot, I struggle to
care about adding another caveats.
> * Any initialization error conditions that currently rely on
> error_report()+exit() will be very inconvenient to handle
> properly
> (this can be fixed eventually, but it's not trivial)
> 3) daemonize only after leaving preconfig state
> -----------------------------------------------
>
> AFAICS, this is the current behavior.
>
> Pros:
> * Less likely to break init code
> * Keeps existing code as is
>
> Cons:
> * Less intuitive
> * -daemonize becomes useless as synchronization point for monitor
> availability
Yeah that honestly kills the key benefit of having -daemonize
imho.
> * Would this be useful for anybody, at all?
> * We won't be able to change this behavior later
>
>
> I believe the only reasonable options are (1) and (4).
Agreed.
Regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
next prev parent reply other threads:[~2018-06-13 14:23 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-06-05 14:00 [Qemu-devel] [PATCH v3 0/2] fix -nodefaults and -daemonize regressions caused by --preconfig introduction Igor Mammedov
2018-06-05 14:00 ` [Qemu-devel] [PATCH v3 1/2] cli: Don't run early event loop if no --preconfig was specified Igor Mammedov
2018-06-05 18:12 ` Eduardo Habkost
2018-06-06 7:22 ` Igor Mammedov
2018-06-11 17:34 ` Eduardo Habkost
2018-06-05 14:00 ` [Qemu-devel] [PATCH v3 2/2] vl: fix use of --daemonize with --preconfig Igor Mammedov
2018-06-05 15:13 ` Eric Blake
2018-06-05 15:28 ` [Qemu-devel] [PATCH v4 " Igor Mammedov
2018-06-05 18:30 ` [Qemu-devel] [PATCH v3 " Eduardo Habkost
2018-06-06 8:34 ` Igor Mammedov
2018-06-06 8:37 ` [Qemu-devel] [PATCH v5 " Igor Mammedov
2018-06-06 13:50 ` Eduardo Habkost
2018-06-07 12:00 ` [Qemu-devel] [PATCH v6 " Igor Mammedov
2018-06-08 13:21 ` Eduardo Habkost
2018-06-11 13:16 ` Igor Mammedov
2018-06-11 19:06 ` Eduardo Habkost
2018-06-11 21:29 ` Igor Mammedov
2018-06-11 22:36 ` Eduardo Habkost
2018-06-12 9:17 ` [Qemu-devel] [libvirt] " Michal Privoznik
2018-06-12 12:42 ` Igor Mammedov
2018-06-12 12:50 ` Daniel P. Berrangé
2018-06-13 14:17 ` Eduardo Habkost
2018-06-13 14:23 ` Daniel P. Berrangé [this message]
2018-06-13 17:09 ` Eduardo Habkost
2018-06-14 12:32 ` Igor Mammedov
2018-06-12 13:04 ` Michal Privoznik
2018-06-12 13:10 ` Peter Krempa
2018-06-12 13:17 ` Daniel P. Berrangé
2018-06-06 8:55 ` [Qemu-devel] [PATCH v3 0/2] fix -nodefaults and -daemonize regressions caused by --preconfig introduction no-reply
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180613142309.GX19901@redhat.com \
--to=berrange@redhat.com \
--cc=ehabkost@redhat.com \
--cc=imammedo@redhat.com \
--cc=ldoktor@redhat.com \
--cc=libvir-list@redhat.com \
--cc=mprivozn@redhat.com \
--cc=mreitz@redhat.com \
--cc=pbonzini@redhat.com \
--cc=pkrempa@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).