On 29/04/2023 4:05 am, Stefano Stabellini wrote: > On Fri, 28 Apr 2023, GitLab wrote: >> Pipeline #852233694 triggered by >> [568538936b4ac45a343cb3a4ab0c6cda?s=48&d=identicon] >> Ganis >> had 3 failed jobs >> Failed jobs >> ✖ >> test >> qemu-smoke-dom0less-arm64-gcc > This is a real failure on staging. Unfortunately it is intermittent. It > usually happens once every 3-8 tests for me. > > The test script is: > automation/scripts/qemu-smoke-dom0less-arm64.sh > > and for this test it is invoked without arguments. It is starting 2 > dom0less VMs in parallel, then dom0 does a xl network-attach and the > domU is supposed to setup eth0 and ping. > > The failure is that nothing happens after "xl network-attach". The domU > never hotplugs any interfaces. I have logs that show that eth0 never > shows up and the only interface is lo no matter how long we wait. > > > On a hunch, I removed Alejandro patches. Without them, I ran 20 tests > without any failures. I have not investigated further but it looks like > one of these 4 commits is the problem: > > 2023-04-28 11:41 Alejandro Vallejo tools: Make init-xenstore-domain use > xc_domain_getinfolist() > 2023-04-28 11:41 Alejandro Vallejo tools: Refactor console/io.c to avoid > using xc_domain_getinfo() > 2023-04-28 11:41 Alejandro Vallejo tools: Create xc_domain_getinfo_single() > 2023-04-28 11:41 Alejandro Vallejo tools: Make some callers of > xc_domain_getinfo() use xc_domain_getinfol
In commit order (reverse of above), these patches are: 1) Modify the python bindings and xenbaked 2) Introduce a new library function with a better API/ABI 3) Modify xenconsoled 4) Modify init-xenstore-domain The test isn't using anything from 4 or 1, and 2 definitely isn't breaking anything on its own. That just leaves 3. This test does turn activate xenconsoled by virtue of invoking xencommons, but that doesn't help explain why a change in xenconsoled interferes (and only intermittently on this one single test) with `xl network-attach`. The xenconsoled change does have correctness fix in it, requiring xenconsoled to ask for all domains info in one go. This does mean it's hypercall-buffering (i.e. bouncing) a 4M array now where previously it was racy figuring out which VMs had come and gone. ~Andrew