[libvirt-users] [libvirt-1.3.2]'Disconnected from qemu:///session due to I/O error'

Michal Privoznik mprivozn at redhat.com
Sat Mar 5 10:16:21 UTC 2016


On 04.03.2016 16:24, Predrag Ivanovic wrote:
> Hi.
> 
> Since the update to libvirt-1.3.2, virsh keeps disconnecting from qemu:///session.
> Weirdly enough, qemu:///session works fine for root, and qemu:///system works for both the user and the root.
> With the same configuration(tarball with files from /etc/libvirt attached), libvirt-1.3.1 works without problems. 
> 
> From the virsh debug log(attached):
> ---
> grep error virsh.log.1.3.2 
> 2016-03-03 19:19:20.338+0000: 5589: error : virNetSocketReadWire:1613 : End of file while reading data: Input/output error
> 2016-03-03 19:19:46.261+0000: 5578: error : virConnectUnregisterCloseCallback:1282 : Requested operation is not valid: A different callback was requested
> 2016-03-03 19:22:59.308+0000: 14487: error : virNetSocketReadWire:1613 : End of file while reading data: Input/output error
> 2016-03-03 19:23:29.247+0000: 14486: error : virConnectUnregisterCloseCallback:1282 : Requested operation is not valid: A different callback was requested
> 2016-03-03 19:24:49.521+0000: 14487: error : virKeepAliveTimerInternal:143 : internal error: connection closed due to keepalive timeout
> 2016-03-03 19:25:17.043+0000: 14486: error : virConnectUnregisterCloseCallback:1282 : Requested operation is not valid: A different callback was requested
> 2016-03-03 19:25:47.110+0000: 14487: error : virNetSocketReadWire:1613 : End of file while reading data: Input/output error
> 2016-03-03 19:26:18.573+0000: 14486: error : virConnectUnregisterCloseCallback:1282 : Requested operation is not valid: A different callback was requested
> 2016-03-03 19:28:24.142+0000: 14665: error : virNetSocketReadWire:1613 : End of file while reading data: Input/output error
> 2016-03-03 19:28:55.091+0000: 14664: error : virConnectUnregisterCloseCallback:1282 : Requested operation is not valid: A different callback was requested

This looks like a dying session daemon to me. You can check if my
suspicion is right by running the session daemon by hand. From a console
run:

$ /usr/sbin/libvirtd

Usually, connecting to qemu:///session does the same, except it appends
'--timeout=30' to tell the session daemon to die after 30 seconds of
inactivity. And here's the problem - there should be a keepalive running
preventing daemon from dying.

> ---
> From the virt-manager.log (attached):
> ---
> [Thu, 03 Mar 2016 18:39:38 virt-manager 24388] DEBUG (connection:1310) Error polling connection qemu:///session
>     if ret is None: raise libvirtError ('virNodeGetInfo() failed', conn=self)
> libvirtError: internal error: client socket is closed
>     if ret == -1: raise libvirtError ('virConnectDomainEventDeregisterAny() failed', conn=self)
> libvirtError: internal error: client socket is closed
> [Thu, 03 Mar 2016 19:07:14 virt-manager 5191] ERROR (create:667) Error setting create wizard conn state.
>     if ret is None: raise libvirtError ('virConnectGetCapabilities() failed', conn=self)
> libvirtError: internal error: client socket is closed
> [Thu, 03 Mar 2016 19:07:15 virt-manager 5191] DEBUG (connection:1310) Error polling connection qemu:///session
>     if ret is None: raise libvirtError ('virNodeGetInfo() failed', conn=self)
> libvirtError: internal error: client socket is closed
>     if ret == -1: raise libvirtError ('virConnectDomainEventDeregisterAny() failed', conn=self)
> libvirtError: internal error: client socket is closed
> [Thu, 03 Mar 2016 19:08:19 virt-manager 5191] DEBUG (connection:1310) Error polling connection qemu:///session
>     if ret is None: raise libvirtError ('virNodeGetInfo() failed', conn=self)
> libvirtError: internal error: client socket is closed
>     if ret == -1: raise libvirtError ('virConnectDomainEventDeregisterAny() failed', conn=self)
> libvirtError: internal error: client socket is closed
> [Thu, 03 Mar 2016 19:11:19 virt-manager 5191] DEBUG (connection:1310) Error polling connection qemu:///system
>     if ret is None: raise libvirtError ('virNodeGetInfo() failed', conn=self)
> libvirtError: internal error: client socket is closed
>     if ret == -1: raise libvirtError ('virConnectDomainEventDeregisterAny() failed', conn=self)
> libvirtError: internal error: client socket is closed
> ---
> qemu:///system errors above are due to restarting libvirtd, once virt-manager connected to it, it stayed connected. 
> 
> This is with qemu-2.5.0.
> 
> I could try libvirt master from git, but will it break libvirt-python/virt-manager?

No. The APIs are backward compatible.

> Btw, is building libvirt with '--enable-debug' sufficient for useful gdb debug report, or do you need anything else?

The best would be to disable any optimization and include gdb debuging info:

libvirt.git $ export CFLAGS="-O0 -ggdb3" ; ./configure --enable-debug &&
make

Michal




More information about the libvirt-users mailing list