[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] qtest: setitimer() failures on Darwin and illumos
From: |
Andreas Färber |
Subject: |
Re: [Qemu-devel] qtest: setitimer() failures on Darwin and illumos |
Date: |
Tue, 29 May 2012 14:33:05 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:12.0) Gecko/20120421 Thunderbird/12.0 |
Am 28.05.2012 22:15, schrieb Paolo Bonzini:
> Il 28/05/2012 21:40, Andreas Färber ha scritto:
>> I'm seeing qemu-timer.c:unix_rearm_timer()'s setitimer() abort with
>> EINVAL during `make check` on both platforms. The value of
>> nearest_delta_ns appears to be INT64_MAX. Is this expected? Is it
>> possible that this value is too large for it_value on some platforms?
>> Apple's man page mentions that as possible reason for EINVAL but doesn't
>> describe how to obtain such an upper value, nor of course where in the
>> QEMU code base we would need to make adaptions. ;)
>>
>> Any suggestions?
>
> You shouldn't call the rearm function at all if you get INT64_MAX. This
> applies to all timers.
I had tried doing if (... == INT64_MAX) return; in unix_rearm_timer()
this morning. That avoided the abort, but the process ran at close to
100% CPU and seemed to hang make check. Don't know if that's related to
timers though.
Not a 1.1 release blocker anyway.
It's unfortunate though that qtest has such bad error handling with lots
of assertions - the previous accept() issue on illumos left zombie child
processes behind and on my machine I've seen intermittent hangs of
tests. I can certainly kill processes on my local machine if I notice,
but for our RPM builds I'm avoiding make check for now...
Andreas