On Thu, Jun 18, 2026 at 17:13:26 +0100, Daniel P. Berrangé wrote: > On Thu, Jun 18, 2026 at 05:51:57PM +0200, Peter Krempa wrote: > > On Mon, Jun 15, 2026 at 16:55:06 +0200, Peter Krempa via Devel wrote: > > > On Mon, Jun 15, 2026 at 15:39:06 +0100, Daniel P. Berrangé wrote: > > > > On Mon, Jun 15, 2026 at 04:23:55PM +0200, Peter Krempa via Devel wrote: > > > > [...] > > > > > > > Signed-off-by: Peter Krempa <[email protected]> > > > > > --- > > > > > src/qemu/virtqemud.service.extra.in | 4 ++++ > > > > > src/remote/libvirtd.service.in | 4 ++++ > > > > > 2 files changed, 8 insertions(+) > > > > > > > > > > diff --git a/src/qemu/virtqemud.service.extra.in > > > > > b/src/qemu/virtqemud.service.extra.in > > > > > index cc16b6a9bb..3cc2edcfd0 100644 > > > > > --- a/src/qemu/virtqemud.service.extra.in > > > > > +++ b/src/qemu/virtqemud.service.extra.in > > > > > @@ -6,6 +6,10 @@ Requires=virtlogd.socket > > > > > Wants=virtlockd.socket > > > > > After=virtlogd.socket > > > > > After=virtlockd.socket > > > > > > > > Is there any point in keeping these two lines ? The "Wants" on > > > > the socket, and the "After" on the sevice should be enough ? > > > > > > So originally I've thought that we'd need it so that the helper daemon > > > socket is really started, but: > > > > > > man systemd.unit states: > > > > > > > > > Default Dependencies > > > > > > [...] > > > > > > For example, target units will complement all configured dependencies > > > of > > > type Wants= or Requires= with dependencies of type After=. See > > > systemd.target(5) for details. > > > > > > So we can delete it; but in fact anywhere where we have a dependancy, > > > not just an ordering requirement. > > > > So I had a better look at the man pages, and what I quoted is true only > > for '.target' units so doesn't apply here. > > > > I didn't find anything regarding any "implicit" or "default" dependancy > > being considered when a foo.service has 'Wants=bar.socket' that would > > ensure that bar.socket is available already when foo.service starts. > > > > Thus I think we need to keep both After=virtlogd.socket and > > After=virtlogd.service as one applies at startup to ensure socket is > > around and the second one ensures that the hypervisor daemon has the > > logging daemon available the whole time. > > If we have > > virtqemud.service After virtlogd.service > > and then implicitly we get > > virtlogd.sevice After virtlogd.socket > > Then transitively we have "virtqemud.service After virtlogd.socket" and > thus don't need to state that explicitly .
My understanding is that the transitivity only applies if 'virtlogd.service' were being started at that time, which it will not if it is socket activated. So it's not part of the same transaction and thus IIUC ordering will not apply any more because virtlog.service simply doesn't appear in what's happening at that time.
