On Thu, Aug 17, 2023 at 12:47:48PM +0200, Denis V. Lunev wrote: > On 8/17/23 12:26, Daniel P. Berrangé wrote: > > On Thu, Aug 17, 2023 at 04:04:46AM +0800, Efim Shevrin via wrote: > > > From: Fima Shevrin <efim.shev...@virtuozzo.com> > > > > > > When the guest OS starts, qemu-ga sends an event to the host. > > > This event allows services on the host to start configuring > > > the already running guest OS. When configuring network settings, > > > it is possible that an external service will receive a signal > > > from qemu-ga about the start of guest OS, while NetworkManager > > > may not be running yet. Therefore, network setting may not > > > be available. With the current patch, we eliminate the described > > > race condition between qemu-ga and NetworkManager for guest OS > > > network setting cases. > > A host mgmt app should not be assuming that networking is > > running at all, and if it is, the guest might not even be > > on the same subnet as the host. Conceivably someone could > > even be using QGA to inject files to configure networking. > > > > Overall, IMHO, it is wrong to correlate host notification > > that QGA is running, with any assumption about state of > > the guest networking. > > > > IOW, I don't think we should make an attempt to serialize > > startup of QGA after guest networking. The QGA should be > > run as soon as its data transport (virtio-serial/vsock) > > is available, which is the current state. > > > > If a host consumer of QGA wants to do something with > > guest networking, they should check for guest network > > state with the 'guest-network-get-interfaces' command. > > This is very tight question at my opinion. > > Frankly speaking my original intention here would be > to put QGA at the very end of the startup sequence > in order to avoid complications. In the other case > any host side software, which would like to control > the guest behavior will be in trouble. > > For example, yet another common application is a > guest backup, here I would say application based > backup. In a normal case this is done through > /etc/qemu-ga/fsfreeze-hook
It will already be started after local-fs.target, since it does not have DefaultDependencies=no set. This should be sufficient for fsfreeze use cases IIUC. > I would say that agent should start very last, in the > other case *ANY* software working through the agent > must take efforts to avoid such transient state, which > is complicated. With 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 :|