[natty] virt-manager use 100% CPU
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
pygtk (Ubuntu) |
Invalid
|
Undecided
|
Unassigned | ||
Natty |
Invalid
|
Undecided
|
Unassigned | ||
virt-manager (Ubuntu) |
Fix Released
|
High
|
Unassigned | ||
Natty |
Fix Released
|
High
|
Unassigned |
Bug Description
Binary package hint: virt-manager
When starting virt-manager, the python process consume 200% CPU (two cores) for about 3 seconds. After, it consumes 100% CPU (one core).
The fact than VMs are running or not doesn't change anything.
If I quit virt-manager, it ends normally. The application works normally except the permanent CPU consumption.
ProblemType: Bug
DistroRelease: Ubuntu 11.04
Package: virt-manager 0.8.4-8ubuntu1
ProcVersionSign
Uname: Linux 2.6.37-12-generic x86_64
Architecture: amd64
Date: Tue Jan 25 10:05:33 2011
InstallationMedia: Ubuntu 11.04 "Natty Narwhal" - Alpha amd64+mac (20101223)
PackageArchitec
ProcEnviron:
LANGUAGE=
PATH=(custom, user)
LANG=fr_FR.UTF-8
LC_MESSAGES=
SHELL=/bin/bash
SourcePackage: virt-manager
Changed in virt-manager (Ubuntu): | |
status: | New → Confirmed |
Changed in virt-manager (Ubuntu Natty): | |
milestone: | none → natty-alpha-3 |
Marking Confirmed, I have experienced this too, and it seemed to start only when I updated about 24 hours ago.
Seems to be polling the sockets for each VM defined over and over without a 0 millisecond timeout. According to man 2 poll, a negative timeout is infinite, but it does not state that 0 is, so I can only assume that this is an error in some library call that should be specifying a timeout.
$ sudo strace -p 20110 syscall( <... resuming interrupted call ...>) = 1 SIG_BLOCK, NULL, [], 8) = 0 SIG_SETMASK, [], [], 8) = 0 4\0\240\ 0\363\0\ 20\0\v\ 0\0\0\7P\ 1\1\0\0\ 0\250\250\ 250\t\302> g\17\0\ 0"..., 4096, 0, NULL, NULL) = 131 SIG_BLOCK, NULL, [], 8) = 0 SIG_SETMASK, [], [], 8) = 0 POLLIN| POLLPRI} , {fd=16, events= POLLIN| POLLPRI} , {fd=17, events= POLLIN| POLLPRI} , {fd=10, events= POLLIN| POLLPRI} , {fd=22, events=POLLIN}, {fd=19, events=POLLIN}, {fd=27, events=POLLIN}, {fd=26, events=POLLIN}, {fd=23, events=POLLIN}, {fd=18, events=POLLIN}], 12, 0) = 0 (Timeout) SIG_BLOCK, NULL, [], 8) = 0 SIG_SETMASK, [], [], 8) = 0 SIG_BLOCK, NULL, [], 8) = 0 SIG_SETMASK, [], [], 8) = 0 POLLIN| POLLOUT} ], 1, -1) = 1 ([{fd=4, revents=POLLOUT}]) 266\0uF` \5\207+ `\5\20\ 0\v\0\240\ 0\363\0\ 0\30`\5\ 250\250\ 250\377\ 250\250\ 250\377" ..., 728}, {NULL, 0}, {"", 0}], 3) = 728 POLLIN| POLLPRI} , {fd=16, events= POLLIN| POLLPRI} , {fd=17, events= POLLIN| POLLPRI} , {fd=10, events= POLLIN| POLLPRI} , {fd=22, events=POLLIN}, {fd=19, events=POLLIN}, {fd=27, events=POLLIN}, {fd=26, events=POLLIN}, {fd=23, events=POLLIN}, {fd=18, events=POLLIN}], 12, 0) = 0 (Timeout) POLLIN| POLLOUT} ], 1, -1) = 1 ([{fd=4, revents=POLLOUT}]) 4\0v\335` \5%+`\5\ 20\0\v\ 0>\0\7\ 0uF`\5% +`\5\207+ `\5"... , 52}, {NULL, 0}, {"", 0}], 3) = 52 POLLIN| POLLPRI} , {fd=16, events= POLLIN| POLLPRI} , {fd=17, events= POLLIN| POLLPRI} , {fd=10, events= POLLIN| POLLPRI} , {fd=22, events=POLLIN}, {fd=19, events=POLLIN}, {fd=27, events=POLLIN}, {fd=26, events=POLLIN}, {fd=23, events=POLLIN}, {fd=18, events=POLLIN}], 12, 0) = 0 (Timeout) SIG_BLOCK, NULL, [], 8) = 0 SIG_SETMASK, [], [], 8) = 0 SIG_BLOCK, NULL, [], 8) = 0 SIG_SETMASK, [], [], 8) = 0 POLLIN| POLLOUT} ], 1, -1) = 1 ([{fd=4, revents=POLLOUT}]) 246\0uF` \5\207+ `\5\20\ 0\n\0\260\ 0\364\0\ 0\30`\5\ 250\250\ 250\377\ 250\250\ 250\377" ..., 664}, {NULL, 0}, {"", 0}], 3) = 664
Process 20110 attached - interrupt to quit
restart_
rt_sigprocmask(
rt_sigprocmask(
recvfrom(28, "\0\0\0\
rt_sigprocmask(
rt_sigprocmask(
read(4, 0x2e28f44, 4096) = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=5, events=POLLIN}, {fd=4, events=POLLIN}, {fd=14, events=
rt_sigprocmask(
rt_sigprocmask(
rt_sigprocmask(
rt_sigprocmask(
poll([{fd=4, events=
writev(4, [{"H\2\
read(4, 0x2e28f44, 4096) = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=5, events=POLLIN}, {fd=4, events=POLLIN}, {fd=14, events=
poll([{fd=4, events=
writev(4, [{"5\30\
read(4, 0x2e28f44, 4096) = -1 EAGAIN (Resource temporarily unavailable)
read(4, 0x2e28f44, 4096) = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=5, events=POLLIN}, {fd=4, events=POLLIN}, {fd=14, events=
rt_sigprocmask(
rt_sigprocmask(
rt_sigprocmask(
rt_sigprocmask(
poll([{fd=4, events=
writev(4, [{"H\2\
read(4, 0x2e28f44, 4096...