On Fri, Nov 08, 2019 at 08:25:15AM +0800, Wang Yechao wrote: > Libvirtd has set SIGPIPE to ignored, and virFork resets all signal > handlers to the defaults. But child process may write logs to > stderr/stdout, that may generate SIGPIPE if journald has stopped. > > So set SIGPIPE to a dummy no-op handler before unmask signals in > virFork(), and the handler will get reset to SIG_DFL when execve() > runs. Now we can delete sigaction() call entirely in virExec(). > > Signed-off-by: Wang Yechao <wang.yechao255@xxxxxxxxxx> > > --- > v3 patch: > https://www.redhat.com/archives/libvir-list/2019-October/msg00934.html > > Changes in v4: > - don't block SIGPIPE, ignore it when invoke VIR_FORCE_CLOSE and virCommandMassClose > > Changes in v5: > - chang from SIG_IGN to a no-op handler in child process > > Changes in v6: > - add a comment and delete sigaction() call entirely in virExec > --- > src/util/vircommand.c | 32 ++++++++++---------------------- > 1 file changed, 10 insertions(+), 22 deletions(-) > > diff --git a/src/util/vircommand.c b/src/util/vircommand.c > index 93b3dd2..8b10253 100644 > --- a/src/util/vircommand.c > +++ b/src/util/vircommand.c > @@ -217,6 +217,8 @@ virCommandFDSet(virCommandPtr cmd, > > #ifndef WIN32 > > +static void virDummyHandler(int sig G_GNUC_UNUSED) {} 'make syntax-check' didn't like {} on the same line like this. I've fixed that trivial style issue and pushed to git. 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 :| -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list