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