From: "Daniel P. Berrangé" <berrange@redhat.com>
To: Eric Blake <eblake@redhat.com>
Cc: Kevin Wolf <kwolf@redhat.com>, Thomas Huth <thuth@redhat.com>,
qemu-devel@nongnu.org, qemu-block@nongnu.org,
Max Reitz <mreitz@redhat.com>
Subject: Re: [PATCH 2/2] nbd: disable signals and forking on Windows builds
Date: Tue, 25 Aug 2020 11:35:13 +0100 [thread overview]
Message-ID: <20200825103513.GJ107278@redhat.com> (raw)
In-Reply-To: <9655e35a-7c0e-0be9-dd7f-a1e7bde7f634@redhat.com>
On Mon, Aug 24, 2020 at 12:12:53PM -0500, Eric Blake wrote:
> On 8/24/20 12:02 PM, Daniel P. Berrangé wrote:
> > Disabling these parts are sufficient to get the qemu-nbd program
> > compiling in a Windows build.
> >
> > Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
> > ---
> > meson.build | 7 ++-----
> > qemu-nbd.c | 10 +++++++++-
> > 2 files changed, 11 insertions(+), 6 deletions(-)
>
> Feels a bit hacky at what it supports, but certainly better than nothing ;)
>
> >
> > diff --git a/meson.build b/meson.build
> > index df5bf728b5..1071871605 100644
> > --- a/meson.build
> > +++ b/meson.build
> > @@ -1074,12 +1074,9 @@ if have_tools
> > dependencies: [authz, block, crypto, io, qom, qemuutil], install: true)
> > qemu_io = executable('qemu-io', files('qemu-io.c'),
> > dependencies: [block, qemuutil], install: true)
> > - qemu_block_tools += [qemu_img, qemu_io]
> > - if targetos == 'linux' or targetos == 'sunos' or targetos.endswith('bsd')
> > - qemu_nbd = executable('qemu-nbd', files('qemu-nbd.c'),
> > + qemu_nbd = executable('qemu-nbd', files('qemu-nbd.c'),
> > dependencies: [block, qemuutil], install: true)
>
> Conflicts with this patch:
> https://lists.gnu.org/archive/html/qemu-devel/2020-08/msg05546.html
>
> but this one gets rid of the need for that one.
>
> > - qemu_block_tools += [qemu_nbd]
> > - endif
> > + qemu_block_tools += [qemu_img, qemu_io, qemu_nbd]
> > subdir('storage-daemon')
> > subdir('contrib/rdmacm-mux')
> > diff --git a/qemu-nbd.c b/qemu-nbd.c
> > index b102874f0f..c6fd6524d3 100644
> > --- a/qemu-nbd.c
> > +++ b/qemu-nbd.c
> > @@ -155,12 +155,13 @@ QEMU_COPYRIGHT "\n"
> > , name);
> > }
> > +#ifndef WIN32
> > static void termsig_handler(int signum)
> > {
> > atomic_cmpxchg(&state, RUNNING, TERMINATE);
> > qemu_notify_event();
> > }
> > -
> > +#endif
>
> How does one terminate a long-running server on Windows if there is no
> SIGTERM handler? I guess Ctrl-C does something, but without the state
> notification from a signal handler, you are getting less-clean shutdowns,
> which may explain the hangs you were seeing in testing? But incremental
> progress is fine, and I see no reason to not take this patch as-is.
The hangs occurred even with windows client/ native server, just less
frequently so don't think it is related.
Re-reading the code I notice this SIGTERM handler is only there for
the NBD device client thread, so we should skip it if that is not
installed.
Ctrl-C does SIGINT, so that's unrelated to the SIGTERM handler.
>
> Reviewed-by: Eric Blake <eblake@redhat.com>
>
> I'm happy to queue this series through my NBD tree.
I'll post a v2
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:[~2020-08-25 10:36 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-08-24 17:02 [PATCH 0/2] nbd: build qemu-nbd on Windows Daniel P. Berrangé
2020-08-24 17:02 ` [PATCH 1/2] block: add missing socket_init() calls to tools Daniel P. Berrangé
2020-08-24 17:08 ` Eric Blake
2020-08-24 17:02 ` [PATCH 2/2] nbd: disable signals and forking on Windows builds Daniel P. Berrangé
2020-08-24 17:12 ` Eric Blake
2020-08-25 10:35 ` Daniel P. Berrangé [this message]
2020-08-25 5:35 ` Thomas Huth
2020-08-25 14:55 ` [PATCH 0/2] nbd: build qemu-nbd on Windows Daniel P. Berrangé
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=20200825103513.GJ107278@redhat.com \
--to=berrange@redhat.com \
--cc=eblake@redhat.com \
--cc=kwolf@redhat.com \
--cc=mreitz@redhat.com \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=thuth@redhat.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.