On Wed, Jun 21, 2023 at 14:32:24 +0100, Daniel P. Berrangé wrote:
> All services are ordered after local-fs.target unless they have set
> DefaultDependencies=no, which we do not do.
>
>
https://gitlab.com/libvirt/libvirt/-/issues/489
> Signed-off-by: Daniel P. Berrangé <berrange(a)redhat.com>
> ---
> src/ch/virtchd.service.in | 1 -
> src/interface/virtinterfaced.service.in | 1 -
> src/libxl/virtxend.service.in | 1 -
> src/lxc/virtlxcd.service.in | 1 -
> src/network/virtnetworkd.service.in | 1 -
> src/node_device/virtnodedevd.service.in | 1 -
> src/nwfilter/virtnwfilterd.service.in | 1 -
> src/qemu/virtqemud.service.in | 1 -
> src/remote/libvirtd.service.in | 1 -
> src/remote/virtproxyd.service.in | 1 -
> src/secret/virtsecretd.service.in | 1 -
> src/storage/virtstoraged.service.in | 1 -
> src/util/virstring.c | 6 ++++++
> src/vbox/virtvboxd.service.in | 1 -
> src/vz/virtvzd.service.in | 1 -
> 15 files changed, 6 insertions(+), 14 deletions(-)
> diff --git a/src/util/virstring.c b/src/util/virstring.c
> index 6b728ff047..e189b9de31 100644
> --- a/src/util/virstring.c
> +++ b/src/util/virstring.c
> @@ -50,6 +50,7 @@ virStrToLong_i(char const *s, char **end_ptr, int base, int
*result)
>
> errno = 0;
> val = g_ascii_strtoll(s, &p, base);
> + g_assert(errno != EAGAIN);
> err = (errno || (!end_ptr && *p) || p == s || (int) val != val);
> if (end_ptr)
> *end_ptr = p;
> @@ -71,6 +72,7 @@ virStrToLong_ui(char const *s, char **end_ptr, int base, unsigned
int *result)
>
> errno = 0;
> val = g_ascii_strtoull(s, &p, base);
> + g_assert(errno != EAGAIN);
>
> /* This one's tricky. We _want_ to allow "-1" as shorthand for
> * UINT_MAX regardless of whether long is 32-bit or 64-bit. But
> @@ -103,6 +105,7 @@ virStrToLong_uip(char const *s, char **end_ptr, int base,
unsigned int *result)
>
> errno = 0;
> val = g_ascii_strtoull(s, &p, base);
> + g_assert(errno != EAGAIN);
> err = (memchr(s, '-', p - s) ||
> errno || (!end_ptr && *p) || p == s || (unsigned int) val !=
val);
> if (end_ptr)
> @@ -160,6 +163,7 @@ virStrToLong_ulp(char const *s, char **end_ptr, int base,
>
> errno = 0;
> val = g_ascii_strtoull(s, &p, base);
> + g_assert(errno != EAGAIN);
> err = (memchr(s, '-', p - s) ||
> errno || (!end_ptr && *p) || p == s || (unsigned long) val !=
val);
> if (end_ptr)
> @@ -202,6 +206,7 @@ virStrToLong_ull(char const *s, char **end_ptr, int base,
>
> errno = 0;
> val = g_ascii_strtoull(s, &p, base);
> + g_assert(errno != EAGAIN);
> err = (errno || (!end_ptr && *p) || p == s);
> if (end_ptr)
> *end_ptr = p;
> @@ -223,6 +228,7 @@ virStrToLong_ullp(char const *s, char **end_ptr, int base,
>
> errno = 0;
> val = g_ascii_strtoull(s, &p, base);
> + g_assert(errno != EAGAIN);
> err = (memchr(s, '-', p - s) ||
> errno || (!end_ptr && *p) || p == s);
> if (end_ptr)
You've accidentally added some debugging code to this patch.
Doh yes, this was leftover from debugging the problem with glib mutexes
splattering errno.
For the systemd stuff:
Reviewed-by: Peter Krempa <pkrempa(a)redhat.com>