]> git.ipfire.org Git - thirdparty/libvirt.git/commit
Fix error reporting when poll returns POLLHUP/POLLERR
authorDaniel P. Berrange <berrange@redhat.com>
Tue, 18 Apr 2017 15:57:06 +0000 (16:57 +0100)
committerDaniel P. Berrange <berrange@redhat.com>
Thu, 20 Apr 2017 09:15:46 +0000 (10:15 +0100)
commit234ac4e18db3a3acb7d8e792260ec0dabed7c36d
treee1e760280ed6bf814533d57e80a7f045d933eda9
parent355f5ab998994d40e011cec491483506bbefe04f
Fix error reporting when poll returns POLLHUP/POLLERR

In the RPC client event loop code, if poll() returns only a POLLHUP
or POLLERR status, then we end up reporting a bogus error message:

  error: failed to connect to the hypervisor
  error: An error occurred, but the cause is unknown

We do actually report an error, but we virNetClientMarkClose method
has already captured the error status before we report it, so the
real error gets thrown away. The key fix is to report the error
before calling virNetClientMarkClose(). In changing this, we also
split out reporting of POLLHUP vs POLLERR to make any future bugs
easier to diagnose.

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
src/rpc/virnetclient.c