[Libguestfs] Few libnbd questions/concerns

Richard W.M. Jones rjones at redhat.com
Thu Jun 27 07:29:46 UTC 2019


On Wed, Jun 26, 2019 at 09:33:04PM -0500, Eric Blake wrote:
> Another thing I just noticed: nbd_poll returns 0 both for timeout and
> for when it notified the state machine about POLLIN or POLLOUT making
> progress. We probably want to switch it to return 0 on timeout and 1
> when it made progress, so that a user can detect timeout (all our
> internal callers pass -1 for the timeout parameter, and thus can't time
> out, but external callers may care).

Agreed.

And another thing you said on IRC:

> 04:26 < eblake> urgh - libnbd is prone to die from SIGPIPE, but as a library, I don't know if we can ignore it
> 04:26 < eblake> should we be using pthread_sigmask and blocking SIGPIPE around our reads, and restoring it to the calling application's default the rest of the 
>                 time?
> 04:28 < eblake> ooh - maybe we can rely on MSG_NOSIGNAL :)
> 04:28 < eblake> that's a lot cleaner, even if it is Linux-specific

MSG_NOSIGNAL is also available on FreeBSD and seems to make a lot of
sense here, given that as you say changing the signal handler isn't a
good idea from a library.

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
Fedora Windows cross-compiler. Compile Windows programs, test, and
build Windows installers. Over 100 libraries supported.
http://fedoraproject.org/wiki/MinGW




More information about the Libguestfs mailing list