I'm having the same issue on an upgraded 18.04 -> 20.04. This is bugging me immensely.
Ready to help out in any way. I have also confirmed that if I disable apparmor it works. But that is not a solution.
Here is an strace showing what it's up to starting at the socket access.
$ VIRSH_DEBUG=0 strace virsh list ... access("/var/run/libvirt/virtqemud-sock", F_OK) = -1 ENOENT (No such file or directory) access("/var/run/libvirt/libvirt-sock", F_OK) = 0 socket(AF_UNIX, SOCK_STREAM, 0) = 6 connect(6, {sa_family=AF_UNIX, sun_path="/var/run/libvirt/libvirt-sock"}, 110) = 0 getsockname(6, {sa_family=AF_UNIX}, [128->2]) = 0 futex(0x7f22454da060, FUTEX_WAKE_PRIVATE, 2147483647) = 0 fcntl(6, F_GETFD) = 0 fcntl(6, F_SETFD, FD_CLOEXEC) = 0 fcntl(6, F_GETFL) = 0x2 (flags O_RDWR) fcntl(6, F_SETFL, O_RDWR|O_NONBLOCK) = 0 futex(0x7f22454da180, FUTEX_WAKE_PRIVATE, 2147483647) = 0 pipe2([7, 8], O_CLOEXEC) = 0 write(5, "\0", 1) = 1 futex(0x7f22454d9320, FUTEX_WAKE_PRIVATE, 1) = 1 futex(0x7f22454da078, FUTEX_WAKE_PRIVATE, 2147483647) = 0 futex(0x7f22454da150, FUTEX_WAKE_PRIVATE, 2147483647) = 0 write(5, "\0", 1) = 1 futex(0x7f22454d9320, FUTEX_WAKE_PRIVATE, 1) = 1 rt_sigprocmask(SIG_BLOCK, [PIPE CHLD WINCH], [], 8) = 0 poll([{fd=6, events=POLLOUT}, {fd=7, events=POLLIN}], 2, -1) = 1 ([{fd=6, revents=POLLOUT}]) rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 write(6, "\0\0\0\34 \0\200\206\0\0\0\1\0\0\0B\0\0\0\0\0\0\0\0\0\0\0\0", 28) = 28 rt_sigprocmask(SIG_BLOCK, [PIPE CHLD WINCH], [], 8) = 0 poll([{fd=6, events=POLLIN}, {fd=7, events=POLLIN}], 2, -1) = 1 ([{fd=6, revents=POLLIN|POLLHUP}]) rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 read(6, "", 4) = 0 openat(AT_FDCWD, "/usr/share/locale/locale.alias", O_RDONLY|O_CLOEXEC) = 9 fstat(9, {st_mode=S_IFREG|0644, st_size=2996, ...}) = 0 read(9, "# Locale name alias data base.\n#"..., 4096) = 2996 read(9, "", 4096) = 0 close(9) = 0 openat(AT_FDCWD, "/usr/share/locale/en_US/LC_MESSAGES/libvirt.mo", O_RDONLY) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/usr/share/locale/en/LC_MESSAGES/libvirt.mo", O_RDONLY) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/usr/share/locale-langpack/en_US/LC_MESSAGES/libvirt.mo", O_RDONLY) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/usr/share/locale-langpack/en/LC_MESSAGES/libvirt.mo", O_RDONLY) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/usr/share/locale/en_US/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/usr/share/locale/en/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/usr/share/locale-langpack/en_US/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/usr/share/locale-langpack/en/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/usr/lib/x86_64-linux-gnu/charset.alias", O_RDONLY) = -1 ENOENT (No such file or directory) write(5, "\0", 1) = 1 futex(0x7f22454d9320, FUTEX_WAKE_PRIVATE, 1) = 1 futex(0x55589445f510, FUTEX_WAKE_PRIVATE, 1) = 1 close(6) = 0 close(8) = 0 close(7) = 0 write(2, "error: ", 7error: ) = 7 write(2, "failed to connect to the hypervi"..., 36failed to connect to the hypervisor ) = 36 write(2, "error: ", 7error: ) = 7 write(2, "End of file while reading data: "..., 51End of file while reading data: Input/output error ) = 51 write(1, "\n", 1 ) = 1 write(5, "\0", 1) = 1 futex(0x7f22454d9320, FUTEX_WAKE_PRIVATE, 1) = 1 futex(0x7fff571d7ca0, FUTEX_WAKE_PRIVATE, 1) = 1 futex(0x7f2240d6b9d0, FUTEX_WAIT, 134641, NULL) = 0 exit_group(1) = ? +++ exited with 1 +++
I'm having the same issue on an upgraded 18.04 -> 20.04.
This is bugging me immensely.
Ready to help out in any way. I have also confirmed that if I disable apparmor it works. But that is not a solution.
Here is an strace showing what it's up to starting at the socket access.
$ VIRSH_DEBUG=0 strace virsh list "/var/run/ libvirt/ virtqemud- sock", F_OK) = -1 ENOENT (No such file or directory) "/var/run/ libvirt/ libvirt- sock", F_OK) = 0 "/var/run/ libvirt/ libvirt- sock"}, 110) = 0 AF_UNIX} , [128->2]) = 0 da060, FUTEX_WAKE_PRIVATE, 2147483647) = 0 da180, FUTEX_WAKE_PRIVATE, 2147483647) = 0 d9320, FUTEX_WAKE_PRIVATE, 1) = 1 da078, FUTEX_WAKE_PRIVATE, 2147483647) = 0 da150, FUTEX_WAKE_PRIVATE, 2147483647) = 0 d9320, FUTEX_WAKE_PRIVATE, 1) = 1 SIG_BLOCK, [PIPE CHLD WINCH], [], 8) = 0 SIG_SETMASK, [], NULL, 8) = 0 206\0\0\ 0\1\0\0\ 0B\0\0\ 0\0\0\0\ 0\0\0\0\ 0\0", 28) = 28 SIG_BLOCK, [PIPE CHLD WINCH], [], 8) = 0 POLLIN| POLLHUP} ]) SIG_SETMASK, [], NULL, 8) = 0 locale/ locale. alias", O_RDONLY|O_CLOEXEC) = 9 S_IFREG| 0644, st_size=2996, ...}) = 0 locale/ en_US/LC_ MESSAGES/ libvirt. mo", O_RDONLY) = -1 ENOENT (No such file or directory) locale/ en/LC_MESSAGES/ libvirt. mo", O_RDONLY) = -1 ENOENT (No such file or directory) locale- langpack/ en_US/LC_ MESSAGES/ libvirt. mo", O_RDONLY) = -1 ENOENT (No such file or directory) locale- langpack/ en/LC_MESSAGES/ libvirt. mo", O_RDONLY) = -1 ENOENT (No such file or directory) locale/ en_US/LC_ MESSAGES/ libc.mo" , O_RDONLY) = -1 ENOENT (No such file or directory) locale/ en/LC_MESSAGES/ libc.mo" , O_RDONLY) = -1 ENOENT (No such file or directory) locale- langpack/ en_US/LC_ MESSAGES/ libc.mo" , O_RDONLY) = -1 ENOENT (No such file or directory) locale- langpack/ en/LC_MESSAGES/ libc.mo" , O_RDONLY) = -1 ENOENT (No such file or directory) x86_64- linux-gnu/ charset. alias", O_RDONLY) = -1 ENOENT (No such file or directory) d9320, FUTEX_WAKE_PRIVATE, 1) = 1 5f510, FUTEX_WAKE_PRIVATE, 1) = 1 d9320, FUTEX_WAKE_PRIVATE, 1) = 1 d7ca0, FUTEX_WAKE_PRIVATE, 1) = 1 6b9d0, FUTEX_WAIT, 134641, NULL) = 0
...
access(
access(
socket(AF_UNIX, SOCK_STREAM, 0) = 6
connect(6, {sa_family=AF_UNIX, sun_path=
getsockname(6, {sa_family=
futex(0x7f22454
fcntl(6, F_GETFD) = 0
fcntl(6, F_SETFD, FD_CLOEXEC) = 0
fcntl(6, F_GETFL) = 0x2 (flags O_RDWR)
fcntl(6, F_SETFL, O_RDWR|O_NONBLOCK) = 0
futex(0x7f22454
pipe2([7, 8], O_CLOEXEC) = 0
write(5, "\0", 1) = 1
futex(0x7f22454
futex(0x7f22454
futex(0x7f22454
write(5, "\0", 1) = 1
futex(0x7f22454
rt_sigprocmask(
poll([{fd=6, events=POLLOUT}, {fd=7, events=POLLIN}], 2, -1) = 1 ([{fd=6, revents=POLLOUT}])
rt_sigprocmask(
write(6, "\0\0\0\34 \0\200\
rt_sigprocmask(
poll([{fd=6, events=POLLIN}, {fd=7, events=POLLIN}], 2, -1) = 1 ([{fd=6, revents=
rt_sigprocmask(
read(6, "", 4) = 0
openat(AT_FDCWD, "/usr/share/
fstat(9, {st_mode=
read(9, "# Locale name alias data base.\n#"..., 4096) = 2996
read(9, "", 4096) = 0
close(9) = 0
openat(AT_FDCWD, "/usr/share/
openat(AT_FDCWD, "/usr/share/
openat(AT_FDCWD, "/usr/share/
openat(AT_FDCWD, "/usr/share/
openat(AT_FDCWD, "/usr/share/
openat(AT_FDCWD, "/usr/share/
openat(AT_FDCWD, "/usr/share/
openat(AT_FDCWD, "/usr/share/
openat(AT_FDCWD, "/usr/lib/
write(5, "\0", 1) = 1
futex(0x7f22454
futex(0x5558944
close(6) = 0
close(8) = 0
close(7) = 0
write(2, "error: ", 7error: ) = 7
write(2, "failed to connect to the hypervi"..., 36failed to connect to the hypervisor
) = 36
write(2, "error: ", 7error: ) = 7
write(2, "End of file while reading data: "..., 51End of file while reading data: Input/output error
) = 51
write(1, "\n", 1
) = 1
write(5, "\0", 1) = 1
futex(0x7f22454
futex(0x7fff571
futex(0x7f2240d
exit_group(1) = ?
+++ exited with 1 +++