
On Mon, Jun 18, 2012 at 12:04 PM, Daniel P. Berrange <berrange@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 ?