[PATCH] dnsapi: Add DnsGetCacheDataTable stub
Rémi Bernon
rbernon at codeweavers.com
Mon Sep 2 02:28:08 CDT 2019
On 8/31/19 11:47 AM, Francois Gouget wrote:
> On Fri, 30 Aug 2019, Rémi Bernon wrote:
>
>> On 8/30/19 3:03 PM, Marvin wrote:
>>> Hi,
>>>
>>> While running your changed tests, I think I found new failures.
>>> Being a bot and all I'm not very good at pattern recognition, so I might be
>>> wrong, but could you please double-check?
>>>
>>> Full results can be found at:
>>> https://testbot.winehq.org/JobDetails.pl?Key=56052
>>>
>>> Your paranoid android.
>>>
>>>
>>> === build (build log) ===
>>>
>>> Task errors:
>>> BotError: The VM is not powered on
>>>
>>
>> I did a successful run with the same patch here:
>> https://testbot.winehq.org/JobDetails.pl?Key=56051
>
> Yes, here's what happened:
> * When it has nothing to do the TestBot picks some VMs that it starts up
> in advance in the hope they will be needed by the next job.
>
> * Because the build VM is used to provide the Windows binaries for
> testing on Windows it's needed by almost every job. So its given a
> high priority and ends up being prepared in advance and thus is
> recorded by the TestBot as being in the idle state.
>
> * But then there was a power outage so all the VMs got powered off.
>
> * But the TestBot server is on a separate location and was not powered
> off so it was not aware that the VMs got powered off. The thing is
> these days the Engine never uses libvirt because these calls are
> blocking which means if it tries to communicate with a dead VM host of
> one where libvirt is hosed, these calls can block for a long time (up
> to 10 minutes), which would block the Engine for all that time.
> Instead it assumes the information it has in its database about the VM
> is accurate and forks a process whenever it needs to perform an
> operation on a VM, whether that's running a task, shutting it down or
> reverting it.
>
> * So it just scheduled the taks on the build VM as usual. But the
> child process could not communicate with the VMs, checked its state
> and complained that there was an error because "The VM is not
> powered on".
>
> What's wrong is that it marked the task as failed. A better recovery
> mechanism would have been to either mark the VM as "dirty" or "offline"
> and put the task back in the queued state so the TesBot tries running it
> again.
>
> The risk is that if the reason why the VM is not usable is not caused by
> an external factor (such as here), the next round is likely to produce
> the same result, leading the TestBot to try to run the same highest
> priority task again and again on the one borked VM.
>
>
> Finally the reason why you won't see that job as failed if you look a it
> now is because I restarted it. The user who submitted a job that failed
> due to a TestBot error gets a button to restart it. A user can only
> restart his own jobs and I'm not sure it that would have been possible
> in this case since the job came from a wine-devel email (but the
> administrator gets to restart anyone's jobs ;-).
>
>
> Anyway I'll see about tweaking the task scripts to avoid this situation
> in the future.
>
>
Thanks for the details!
--
Rémi Bernon <rbernon at codeweavers.com>
More information about the wine-devel
mailing list