Re: [PATCH v3] util: Block SIGPIPE until execve in child process

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Oct 15, 2019 at 09:59:46PM -0500, Eric Blake wrote:
> On 10/15/19 9:43 PM, Eric Blake wrote:
> > On 10/15/19 9:25 PM, 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 block SIGPIPE in virFork, and unblock it before execve.
> > 
> > How does that help?  If writing to stderr hits EOF, it will queue up a
> > SIGPIPE to be delivered as soon as you unblock SIGPIPE.
> > 
> > The correct fix is to not unblock SIGPIPE until after any point at which
> > you would be performing I/O that must not fail due to SIGPIPE, rather
> > than messing with signal masks to just delay when SIGPIPE is delivered.
> 
> Let's word this better:
> 
> The correct fix is to keep SIGPIPE ignored until after any point at which
> you would be performing I/O that must not cause SIGPIPE, reverting SIGPIPE
> back to SIG_DFL at the last possible moment.  Messing with signal masks
> merely delays when SIGPIPE is delivered, rather than avoiding it.

The challenge here is that we're in between fork + execve and want signal
handlers back to their defaults at time of execve.

If we set SIGPIPE to SIG_IGN and then execve() will that get reset back
to SIG_DFL automatically ?

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




[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]

  Powered by Linux