[libvirt] [sandbox] random hang in g_poll

Radu Caragea sinaelgl at gmail.com
Mon Jun 18 09:37:56 UTC 2012


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




More information about the libvir-list mailing list