Re: [PATCH v2 3/3] nbd: disable signals and forking on Windows builds
On Thu, Sep 3, 2020 at 7:29 AM Eric Blake wrote: > On 9/2/20 5:07 PM, 罗勇刚(Yonggang Luo) wrote: > > On Tue, Aug 25, 2020 at 6:40 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é > >> --- > >> meson.build | 7 ++- > >> qemu-nbd.c | 5 + > >> 2 files changed, 7 insertions(+), 5 deletions(-) > > >> +++ b/qemu-nbd.c > >> @@ -899,6 +899,7 @@ int main(int argc, char **argv) > >> #endif > >> > >> if ((device && !verbose) || fork_process) { > >> +#ifndef WIN32 > >> int stderr_fd[2]; > >> pid_t pid; > >> int ret; > >> @@ -962,6 +963,10 @@ int main(int argc, char **argv) > >>*/ > >> exit(errors); > >> } > >> +#else /* WIN32 */ > >> +error_report("Unable to fork into background on Windows > hosts"); > >> +exit(EXIT_FAILURE); > >> +#endif /* WIN32 */ > >> } > >> > > May us replace fork with alternative such as spawn? > > You're certainly welcome to propose a patch along those lines, if > spawning a task is a common Windows counterpart to the Unix notion of > forking off a daemon. But even requiring qemu-nbd to run in the > foreground is already an improvement over what we had previously, so any > change to use spawn will be a separate series, and will not hold up this > Yes, of cause. > one. > > -- > Eric Blake, Principal Software Engineer > Red Hat, Inc. +1-919-301-3226 > Virtualization: qemu.org | libvirt.org > > -- 此致 礼 罗勇刚 Yours sincerely, Yonggang Luo
Re: [PATCH v2 3/3] nbd: disable signals and forking on Windows builds
On Tue, Aug 25, 2020 at 6:40 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é > --- > meson.build | 7 ++- > qemu-nbd.c | 5 + > 2 files changed, 7 insertions(+), 5 deletions(-) > > 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) > -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 dc6ef089af..33476a1000 100644 > --- a/qemu-nbd.c > +++ b/qemu-nbd.c > @@ -899,6 +899,7 @@ int main(int argc, char **argv) > #endif > > if ((device && !verbose) || fork_process) { > +#ifndef WIN32 > int stderr_fd[2]; > pid_t pid; > int ret; > @@ -962,6 +963,10 @@ int main(int argc, char **argv) > */ > exit(errors); > } > +#else /* WIN32 */ > +error_report("Unable to fork into background on Windows hosts"); > +exit(EXIT_FAILURE); > +#endif /* WIN32 */ > } > May us replace fork with alternative such as spawn? > > if (device != NULL && sockpath == NULL) { > -- > 2.26.2 > > > -- 此致 礼 罗勇刚 Yours sincerely, Yonggang Luo
Re: [PATCH v2 3/3] nbd: disable signals and forking on Windows builds
On 9/2/20 5:07 PM, 罗勇刚(Yonggang Luo) wrote: On Tue, Aug 25, 2020 at 6:40 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é --- meson.build | 7 ++- qemu-nbd.c | 5 + 2 files changed, 7 insertions(+), 5 deletions(-) +++ b/qemu-nbd.c @@ -899,6 +899,7 @@ int main(int argc, char **argv) #endif if ((device && !verbose) || fork_process) { +#ifndef WIN32 int stderr_fd[2]; pid_t pid; int ret; @@ -962,6 +963,10 @@ int main(int argc, char **argv) */ exit(errors); } +#else /* WIN32 */ +error_report("Unable to fork into background on Windows hosts"); +exit(EXIT_FAILURE); +#endif /* WIN32 */ } May us replace fork with alternative such as spawn? You're certainly welcome to propose a patch along those lines, if spawning a task is a common Windows counterpart to the Unix notion of forking off a daemon. But even requiring qemu-nbd to run in the foreground is already an improvement over what we had previously, so any change to use spawn will be a separate series, and will not hold up this one. -- Eric Blake, Principal Software Engineer Red Hat, Inc. +1-919-301-3226 Virtualization: qemu.org | libvirt.org
Re: [PATCH v2 3/3] nbd: disable signals and forking on Windows builds
On 8/25/20 5:38 AM, 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é --- meson.build | 7 ++- qemu-nbd.c | 5 + 2 files changed, 7 insertions(+), 5 deletions(-) Reviewed-by: Eric Blake Queuing through my NBD tree. -- Eric Blake, Principal Software Engineer Red Hat, Inc. +1-919-301-3226 Virtualization: qemu.org | libvirt.org
[PATCH v2 3/3] nbd: disable signals and forking on Windows builds
Disabling these parts are sufficient to get the qemu-nbd program compiling in a Windows build. Signed-off-by: Daniel P. Berrangé --- meson.build | 7 ++- qemu-nbd.c | 5 + 2 files changed, 7 insertions(+), 5 deletions(-) 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) -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 dc6ef089af..33476a1000 100644 --- a/qemu-nbd.c +++ b/qemu-nbd.c @@ -899,6 +899,7 @@ int main(int argc, char **argv) #endif if ((device && !verbose) || fork_process) { +#ifndef WIN32 int stderr_fd[2]; pid_t pid; int ret; @@ -962,6 +963,10 @@ int main(int argc, char **argv) */ exit(errors); } +#else /* WIN32 */ +error_report("Unable to fork into background on Windows hosts"); +exit(EXIT_FAILURE); +#endif /* WIN32 */ } if (device != NULL && sockpath == NULL) { -- 2.26.2