On Mon, Jun 18, 2012 at 12:04 PM, Daniel P. Berrange
<berrange(a)redhat.com> wrote:
The fact that the last message is about clock sources, makes me
very suspicious about the possibility that the guest OS itself
has hung. This would also tally up with the fact that you say
it is quite random / unpredictable.
Actually, the guest OS hasn't hung. It's also trying to do a poll. I
ran with strace on it and here's the output:
Send wait
Switch state to waiting
Schedule another wait
/usr/bin/strace: can't fopen '/tmp/sandbox.log.1434': Read-only file system
libvirt-sandbox-init-common: changing user root 0 0 /root
libvirt-sandbox-init-common: running I/O loop -1 -1poll([{fd=4,
events=POLLIN}, {fd=6, events=POLLIN}], 2, -1Send wait
Schedule another wait
Send wait
) = 1 ([{fd=6, revents=POLLIN}])
host readable
read 1 1 0
Sending sync confirm
poll([{fd=4, events=POLLIN}, {fd=6, events=POLLIN|POLSchedule another wait
Send wait
LOUT}], 2, -1) = 1 ([{fd=6, revents=POLLOUT}])
Host writable
Wrote packet 1 toSwitch state to syncing
Send sync
hostpoll([{fd=4, events=POLLIN}, {fd=6, events=POLLIN}], 2, -1) = 1
([{fd=6, revents=POLLIN}])
host readable
read 1 1 0
Ignoring delayed wait
poll([{fd=4, events=POLLIN}, {fd=6, events=POLLIN}], 2, -1) = 1
([{fd=6, revents=POLLIN}])
host readable
read 1 1 0
Ignoring delayed wait
poll([{fd=4, events=POLLIN}, {fd=6, events=POLLIN}], 2, -1) = 1
([{fd=6, revents=POLLIN}])
host readable
read 1 1 0
Ignoring delayed wait
poll([{fd=4, events=POLLIN}, {fd=6, events=POLLIN}], 2, -1
So the guest OS gest stuck in a poll syscall as well. Namely, the one
at libvirt-sandbox-init-common.c:741.
I think that we probably ought to make the libvirt-sandbox KVM
builder
add the following XML config to its guests.
<clock offset='utc'>
<timer name='pit' tickpolicy='delay'/>
<timer name='rtc' tickpolicy='catchup'/>
</clock>
I can try this to see if it helps. Where exactly should I try adding it ?