==> Building on scovillain ==> Checking for remote environment... ==> Syncing package to remote host... sending incremental file list created directory packages/python-pytest-xdist ./ .SRCINFO 720 100% 0.00kB/s 0:00:00 720 100% 0.00kB/s 0:00:00 (xfr#1, to-chk=2/4) PKGBUILD 1,164 100% 1.11MB/s 0:00:00 1,164 100% 1.11MB/s 0:00:00 (xfr#2, to-chk=1/4) python-pytest-xdist-3.5.0-2.log 376 100% 367.19kB/s 0:00:00 376 100% 367.19kB/s 0:00:00 (xfr#3, to-chk=0/4) sent 1,500 bytes received 127 bytes 3,254.00 bytes/sec total size is 2,081 speedup is 1.28 ==> Running extra-riscv64-build -- -d /home/felix/packages/riscv64-pkg-cache:/var/cache/pacman/pkg -l felix61 on remote host... ==> Locking clean chroot...done [?25l:: Synchronizing package databases... core downloading... extra downloading... :: Starting full system upgrade... there is nothing to do [?25h==> Building in chroot for [extra] (riscv64)... ==> Locking clean chroot [/var/lib/archbuild/extra-riscv64/root]...done ==> Synchronizing chroot copy [/var/lib/archbuild/extra-riscv64/root] -> [felix61]...done ==> Making package: python-pytest-xdist 3.5.0-2 (Mon May 13 19:50:55 2024) ==> Retrieving sources...  -> Cloning pytest-xdist git repo... Cloning into bare repository '/home/felix/packages/python-pytest-xdist/pytest-xdist'... remote: Enumerating objects: 6788, done. remote: Counting objects: 0% (1/2450) remote: Counting objects: 1% (25/2450) remote: Counting objects: 2% (49/2450) remote: Counting objects: 3% (74/2450) remote: Counting objects: 4% (98/2450) remote: Counting objects: 5% (123/2450) remote: Counting objects: 6% (147/2450) remote: Counting objects: 7% (172/2450) remote: Counting objects: 8% (196/2450) remote: Counting objects: 9% (221/2450) remote: Counting objects: 10% (245/2450) remote: Counting objects: 11% (270/2450) remote: Counting objects: 12% (294/2450) remote: Counting objects: 13% (319/2450) remote: Counting objects: 14% (343/2450) remote: Counting objects: 15% (368/2450) remote: Counting objects: 16% (392/2450) remote: Counting objects: 17% (417/2450) remote: Counting objects: 18% (441/2450) remote: Counting objects: 19% (466/2450) remote: Counting objects: 20% (490/2450) remote: Counting objects: 21% (515/2450) remote: Counting objects: 22% (539/2450) remote: Counting objects: 23% (564/2450) remote: Counting objects: 24% (588/2450) remote: Counting objects: 25% (613/2450) remote: Counting objects: 26% (637/2450) remote: Counting objects: 27% (662/2450) remote: Counting objects: 28% (686/2450) remote: Counting objects: 29% (711/2450) remote: Counting objects: 30% (735/2450) remote: Counting objects: 31% (760/2450) remote: Counting objects: 32% (784/2450) remote: Counting objects: 33% (809/2450) remote: Counting objects: 34% (833/2450) remote: Counting objects: 35% (858/2450) remote: Counting objects: 36% (882/2450) remote: Counting objects: 37% (907/2450) remote: Counting objects: 38% (931/2450) remote: Counting objects: 39% (956/2450) remote: Counting objects: 40% (980/2450) remote: Counting objects: 41% (1005/2450) remote: Counting objects: 42% (1029/2450) remote: Counting objects: 43% (1054/2450) remote: Counting objects: 44% (1078/2450) remote: Counting objects: 45% (1103/2450) remote: Counting objects: 46% (1127/2450) remote: Counting objects: 47% (1152/2450) remote: Counting objects: 48% (1176/2450) remote: Counting objects: 49% (1201/2450) remote: Counting objects: 50% (1225/2450) remote: Counting objects: 51% (1250/2450) remote: Counting objects: 52% (1274/2450) remote: Counting objects: 53% (1299/2450) remote: Counting objects: 54% (1323/2450) remote: Counting objects: 55% (1348/2450) remote: Counting objects: 56% (1372/2450) remote: Counting objects: 57% (1397/2450) remote: Counting objects: 58% (1421/2450) remote: Counting objects: 59% (1446/2450) remote: Counting objects: 60% (1470/2450) remote: Counting objects: 61% (1495/2450) remote: Counting objects: 62% (1519/2450) remote: Counting objects: 63% (1544/2450) remote: Counting objects: 64% (1568/2450) remote: Counting objects: 65% (1593/2450) remote: Counting objects: 66% (1617/2450) remote: Counting objects: 67% (1642/2450) remote: Counting objects: 68% (1666/2450) remote: Counting objects: 69% (1691/2450) remote: Counting objects: 70% (1715/2450) remote: Counting objects: 71% (1740/2450) remote: Counting objects: 72% (1764/2450) remote: Counting objects: 73% (1789/2450) remote: Counting objects: 74% (1813/2450) remote: Counting objects: 75% (1838/2450) remote: Counting objects: 76% (1862/2450) remote: Counting objects: 77% (1887/2450) remote: Counting objects: 78% (1911/2450) remote: Counting objects: 79% (1936/2450) remote: Counting objects: 80% (1960/2450) remote: Counting objects: 81% (1985/2450) remote: Counting objects: 82% (2009/2450) remote: Counting objects: 83% (2034/2450) remote: Counting objects: 84% (2058/2450) remote: Counting objects: 85% (2083/2450) remote: Counting objects: 86% (2107/2450) remote: Counting objects: 87% (2132/2450) remote: Counting objects: 88% (2156/2450) remote: Counting objects: 89% (2181/2450) remote: Counting objects: 90% (2205/2450) remote: Counting objects: 91% (2230/2450) remote: Counting objects: 92% (2254/2450) remote: Counting objects: 93% (2279/2450) remote: Counting objects: 94% (2303/2450) remote: Counting objects: 95% (2328/2450) remote: Counting objects: 96% (2352/2450) remote: Counting objects: 97% (2377/2450) remote: Counting objects: 98% (2401/2450) remote: Counting objects: 99% (2426/2450) remote: Counting objects: 100% (2450/2450) remote: Counting objects: 100% (2450/2450), done. remote: Compressing objects: 0% (1/628) remote: Compressing objects: 1% (7/628) remote: Compressing objects: 2% (13/628) remote: Compressing objects: 3% (19/628) remote: Compressing objects: 4% (26/628) remote: Compressing objects: 5% (32/628) remote: Compressing objects: 6% (38/628) remote: Compressing objects: 7% (44/628) remote: Compressing objects: 8% (51/628) remote: Compressing objects: 9% (57/628) remote: Compressing objects: 10% (63/628) remote: Compressing objects: 11% (70/628) remote: Compressing objects: 12% (76/628) remote: Compressing objects: 13% (82/628) remote: Compressing objects: 14% (88/628) remote: Compressing objects: 15% (95/628) remote: Compressing objects: 16% (101/628) remote: Compressing objects: 17% (107/628) remote: Compressing objects: 18% (114/628) remote: Compressing objects: 19% (120/628) remote: Compressing objects: 20% (126/628) remote: Compressing objects: 21% (132/628) remote: Compressing objects: 22% (139/628) remote: Compressing objects: 23% (145/628) remote: Compressing objects: 24% (151/628) remote: Compressing objects: 25% (157/628) remote: Compressing objects: 26% (164/628) remote: Compressing objects: 27% (170/628) remote: Compressing objects: 28% (176/628) remote: Compressing objects: 29% (183/628) remote: Compressing objects: 30% (189/628) remote: Compressing objects: 31% (195/628) remote: Compressing objects: 32% (201/628) remote: Compressing objects: 33% (208/628) remote: Compressing objects: 34% (214/628) remote: Compressing objects: 35% (220/628) remote: Compressing objects: 36% (227/628) remote: Compressing objects: 37% (233/628) remote: Compressing objects: 38% (239/628) remote: Compressing objects: 39% (245/628) remote: Compressing objects: 40% (252/628) remote: Compressing objects: 41% (258/628) remote: Compressing objects: 42% (264/628) remote: Compressing objects: 43% (271/628) remote: Compressing objects: 44% (277/628) remote: Compressing objects: 45% (283/628) remote: Compressing objects: 46% (289/628) remote: Compressing objects: 47% (296/628) remote: Compressing objects: 48% (302/628) remote: Compressing objects: 49% (308/628) remote: Compressing objects: 50% (314/628) remote: Compressing objects: 51% (321/628) remote: Compressing objects: 52% (327/628) remote: Compressing objects: 53% (333/628) remote: Compressing objects: 54% (340/628) remote: Compressing objects: 55% (346/628) remote: Compressing objects: 56% (352/628) remote: Compressing objects: 57% (358/628) remote: Compressing objects: 58% (365/628) remote: Compressing objects: 59% (371/628) remote: Compressing objects: 60% (377/628) remote: Compressing objects: 61% (384/628) remote: Compressing objects: 62% (390/628) remote: Compressing objects: 63% (396/628) remote: Compressing objects: 64% (402/628) remote: Compressing objects: 65% (409/628) remote: Compressing objects: 66% (415/628) remote: Compressing objects: 67% (421/628) remote: Compressing objects: 68% (428/628) remote: Compressing objects: 69% (434/628) remote: Compressing objects: 70% (440/628) remote: Compressing objects: 71% (446/628) remote: Compressing objects: 72% (453/628) remote: Compressing objects: 73% (459/628) remote: Compressing objects: 74% (465/628) remote: Compressing objects: 75% (471/628) remote: Compressing objects: 76% (478/628) remote: Compressing objects: 77% (484/628) remote: Compressing objects: 78% (490/628) remote: Compressing objects: 79% (497/628) remote: Compressing objects: 80% (503/628) remote: Compressing objects: 81% (509/628) remote: Compressing objects: 82% (515/628) remote: Compressing objects: 83% (522/628) remote: Compressing objects: 84% (528/628) remote: Compressing objects: 85% (534/628) remote: Compressing objects: 86% (541/628) remote: Compressing objects: 87% (547/628) remote: Compressing objects: 88% (553/628) remote: Compressing objects: 89% (559/628) remote: Compressing objects: 90% (566/628) remote: Compressing objects: 91% (572/628) remote: Compressing objects: 92% (578/628) remote: Compressing objects: 93% (585/628) remote: Compressing objects: 94% (591/628) remote: Compressing objects: 95% (597/628) remote: Compressing objects: 96% (603/628) remote: Compressing objects: 97% (610/628) remote: Compressing objects: 98% (616/628) remote: Compressing objects: 99% (622/628) remote: Compressing objects: 100% (628/628) remote: Compressing objects: 100% (628/628), done. Receiving objects: 0% (1/6788) Receiving objects: 1% (68/6788) Receiving objects: 2% (136/6788) Receiving objects: 3% (204/6788) Receiving objects: 4% (272/6788) Receiving objects: 5% (340/6788) Receiving objects: 6% (408/6788) Receiving objects: 7% (476/6788) Receiving objects: 8% (544/6788) Receiving objects: 9% (611/6788) Receiving objects: 10% (679/6788) Receiving objects: 11% (747/6788) Receiving objects: 12% (815/6788) Receiving objects: 13% (883/6788) Receiving objects: 14% (951/6788) Receiving objects: 15% (1019/6788) Receiving objects: 16% (1087/6788) Receiving objects: 17% (1154/6788) Receiving objects: 18% (1222/6788) Receiving objects: 19% (1290/6788) Receiving objects: 20% (1358/6788) Receiving objects: 21% (1426/6788) Receiving objects: 22% (1494/6788) Receiving objects: 23% (1562/6788) Receiving objects: 24% (1630/6788) Receiving objects: 25% (1697/6788) Receiving objects: 26% (1765/6788) Receiving objects: 27% (1833/6788) Receiving objects: 28% (1901/6788) Receiving objects: 29% (1969/6788) Receiving objects: 30% (2037/6788) Receiving objects: 31% (2105/6788) Receiving objects: 32% (2173/6788) Receiving objects: 33% (2241/6788) Receiving objects: 34% (2308/6788) Receiving objects: 35% (2376/6788) Receiving objects: 36% (2444/6788) Receiving objects: 37% (2512/6788) Receiving objects: 38% (2580/6788) Receiving objects: 39% (2648/6788) Receiving objects: 40% (2716/6788) Receiving objects: 41% (2784/6788) Receiving objects: 42% (2851/6788) Receiving objects: 43% (2919/6788) Receiving objects: 44% (2987/6788) Receiving objects: 45% (3055/6788) Receiving objects: 46% (3123/6788) Receiving objects: 47% (3191/6788) Receiving objects: 48% (3259/6788) Receiving objects: 49% (3327/6788) Receiving objects: 50% (3394/6788) Receiving objects: 51% (3462/6788) Receiving objects: 52% (3530/6788) Receiving objects: 53% (3598/6788) Receiving objects: 54% (3666/6788) Receiving objects: 55% (3734/6788), 1.27 MiB | 2.53 MiB/s Receiving objects: 56% (3802/6788), 1.27 MiB | 2.53 MiB/s Receiving objects: 57% (3870/6788), 1.27 MiB | 2.53 MiB/s Receiving objects: 58% (3938/6788), 1.27 MiB | 2.53 MiB/s Receiving objects: 59% (4005/6788), 1.27 MiB | 2.53 MiB/s Receiving objects: 60% (4073/6788), 1.27 MiB | 2.53 MiB/s Receiving objects: 61% (4141/6788), 1.27 MiB | 2.53 MiB/s Receiving objects: 62% (4209/6788), 1.27 MiB | 2.53 MiB/s Receiving objects: 63% (4277/6788), 1.27 MiB | 2.53 MiB/s Receiving objects: 64% (4345/6788), 1.27 MiB | 2.53 MiB/s Receiving objects: 65% (4413/6788), 1.27 MiB | 2.53 MiB/s Receiving objects: 66% (4481/6788), 1.27 MiB | 2.53 MiB/s Receiving objects: 67% (4548/6788), 1.27 MiB | 2.53 MiB/s Receiving objects: 68% (4616/6788), 1.27 MiB | 2.53 MiB/s Receiving objects: 69% (4684/6788), 1.27 MiB | 2.53 MiB/s Receiving objects: 70% (4752/6788), 1.27 MiB | 2.53 MiB/s Receiving objects: 71% (4820/6788), 1.27 MiB | 2.53 MiB/s Receiving objects: 72% (4888/6788), 1.27 MiB | 2.53 MiB/s Receiving objects: 73% (4956/6788), 1.27 MiB | 2.53 MiB/s Receiving objects: 74% (5024/6788), 1.27 MiB | 2.53 MiB/s Receiving objects: 75% (5091/6788), 1.27 MiB | 2.53 MiB/s Receiving objects: 76% (5159/6788), 1.27 MiB | 2.53 MiB/s Receiving objects: 77% (5227/6788), 1.27 MiB | 2.53 MiB/s Receiving objects: 78% (5295/6788), 1.27 MiB | 2.53 MiB/s Receiving objects: 79% (5363/6788), 1.27 MiB | 2.53 MiB/s Receiving objects: 80% (5431/6788), 1.27 MiB | 2.53 MiB/s Receiving objects: 81% (5499/6788), 1.27 MiB | 2.53 MiB/s Receiving objects: 82% (5567/6788), 1.27 MiB | 2.53 MiB/s Receiving objects: 83% (5635/6788), 1.27 MiB | 2.53 MiB/s Receiving objects: 84% (5702/6788), 1.27 MiB | 2.53 MiB/s Receiving objects: 85% (5770/6788), 1.27 MiB | 2.53 MiB/s Receiving objects: 86% (5838/6788), 1.27 MiB | 2.53 MiB/s Receiving objects: 87% (5906/6788), 1.27 MiB | 2.53 MiB/s Receiving objects: 88% (5974/6788), 1.27 MiB | 2.53 MiB/s Receiving objects: 89% (6042/6788), 1.27 MiB | 2.53 MiB/s Receiving objects: 90% (6110/6788), 1.27 MiB | 2.53 MiB/s Receiving objects: 91% (6178/6788), 1.27 MiB | 2.53 MiB/s Receiving objects: 92% (6245/6788), 1.27 MiB | 2.53 MiB/s Receiving objects: 93% (6313/6788), 1.27 MiB | 2.53 MiB/s Receiving objects: 94% (6381/6788), 1.27 MiB | 2.53 MiB/s Receiving objects: 95% (6449/6788), 1.27 MiB | 2.53 MiB/s Receiving objects: 96% (6517/6788), 1.27 MiB | 2.53 MiB/s Receiving objects: 97% (6585/6788), 1.27 MiB | 2.53 MiB/s Receiving objects: 98% (6653/6788), 1.27 MiB | 2.53 MiB/s remote: Total 6788 (delta 1875), reused 2116 (delta 1695), pack-reused 4338 Receiving objects: 99% (6721/6788), 1.27 MiB | 2.53 MiB/s Receiving objects: 100% (6788/6788), 1.27 MiB | 2.53 MiB/s Receiving objects: 100% (6788/6788), 2.21 MiB | 3.21 MiB/s, done. Resolving deltas: 0% (0/4218) Resolving deltas: 1% (44/4218) Resolving deltas: 2% (86/4218) Resolving deltas: 3% (127/4218) Resolving deltas: 4% (169/4218) Resolving deltas: 5% (212/4218) Resolving deltas: 6% (254/4218) Resolving deltas: 7% (296/4218) Resolving deltas: 8% (338/4218) Resolving deltas: 9% (380/4218) Resolving deltas: 10% (422/4218) Resolving deltas: 11% (464/4218) Resolving deltas: 12% (507/4218) Resolving deltas: 13% (549/4218) Resolving deltas: 14% (591/4218) Resolving deltas: 15% (633/4218) Resolving deltas: 16% (675/4218) Resolving deltas: 17% (718/4218) Resolving deltas: 18% (761/4218) Resolving deltas: 19% (802/4218) Resolving deltas: 20% (844/4218) Resolving deltas: 21% (886/4218) Resolving deltas: 22% (928/4218) Resolving deltas: 23% (971/4218) Resolving deltas: 24% (1014/4218) Resolving deltas: 25% (1056/4218) Resolving deltas: 26% (1097/4218) Resolving deltas: 27% (1139/4218) Resolving deltas: 28% (1182/4218) Resolving deltas: 29% (1224/4218) Resolving deltas: 30% (1266/4218) Resolving deltas: 31% (1308/4218) Resolving deltas: 32% (1351/4218) Resolving deltas: 33% (1393/4218) Resolving deltas: 34% (1436/4218) Resolving deltas: 35% (1477/4218) Resolving deltas: 36% (1520/4218) Resolving deltas: 37% (1561/4218) Resolving deltas: 38% (1603/4218) Resolving deltas: 39% (1646/4218) Resolving deltas: 40% (1688/4218) Resolving deltas: 41% (1730/4218) Resolving deltas: 42% (1772/4218) Resolving deltas: 43% (1814/4218) Resolving deltas: 44% (1857/4218) Resolving deltas: 45% (1899/4218) Resolving deltas: 46% (1941/4218) Resolving deltas: 47% (1983/4218) Resolving deltas: 48% (2025/4218) Resolving deltas: 49% (2068/4218) Resolving deltas: 50% (2109/4218) Resolving deltas: 51% (2152/4218) Resolving deltas: 52% (2194/4218) Resolving deltas: 53% (2236/4218) Resolving deltas: 54% (2278/4218) Resolving deltas: 55% (2321/4218) Resolving deltas: 56% (2363/4218) Resolving deltas: 57% (2405/4218) Resolving deltas: 58% (2447/4218) Resolving deltas: 59% (2491/4218) Resolving deltas: 60% (2531/4218) Resolving deltas: 61% (2573/4218) Resolving deltas: 62% (2617/4218) Resolving deltas: 63% (2658/4218) Resolving deltas: 64% (2700/4218) Resolving deltas: 65% (2742/4218) Resolving deltas: 66% (2784/4218) Resolving deltas: 67% (2827/4218) Resolving deltas: 68% (2870/4218) Resolving deltas: 69% (2911/4218) Resolving deltas: 70% (2954/4218) Resolving deltas: 71% (2995/4218) Resolving deltas: 72% (3037/4218) Resolving deltas: 73% (3081/4218) Resolving deltas: 74% (3122/4218) Resolving deltas: 75% (3164/4218) Resolving deltas: 76% (3206/4218) Resolving deltas: 77% (3249/4218) Resolving deltas: 78% (3291/4218) Resolving deltas: 79% (3334/4218) Resolving deltas: 80% (3375/4218) Resolving deltas: 81% (3421/4218) Resolving deltas: 82% (3459/4218) Resolving deltas: 83% (3503/4218) Resolving deltas: 84% (3544/4218) Resolving deltas: 85% (3587/4218) Resolving deltas: 86% (3628/4218) Resolving deltas: 87% (3670/4218) Resolving deltas: 88% (3712/4218) Resolving deltas: 89% (3755/4218) Resolving deltas: 90% (3797/4218) Resolving deltas: 91% (3839/4218) Resolving deltas: 92% (3881/4218) Resolving deltas: 93% (3924/4218) Resolving deltas: 94% (3965/4218) Resolving deltas: 95% (4008/4218) Resolving deltas: 96% (4050/4218) Resolving deltas: 97% (4092/4218) Resolving deltas: 98% (4134/4218) Resolving deltas: 99% (4176/4218) Resolving deltas: 100% (4218/4218) Resolving deltas: 100% (4218/4218), done. ==> Validating source files with sha512sums... pytest-xdist ... Passed ==> Making package: python-pytest-xdist 3.5.0-2 (Mon May 13 19:51:31 2024) ==> Checking runtime dependencies... ==> Installing missing dependencies... [?25lresolving dependencies... looking for conflicting packages... Package (5) New Version Net Change Download Size extra/python-iniconfig 2.0.0-5 0.04 MiB extra/python-packaging 23.2-3 0.50 MiB extra/python-pluggy 1.4.0-4 0.20 MiB extra/python-execnet 2.0.2-2 0.42 MiB 0.09 MiB extra/python-pytest 1:8.1.2-1 3.89 MiB Total Download Size: 0.09 MiB Total Installed Size: 5.04 MiB :: Proceed with installation? [Y/n] :: Retrieving packages... python-execnet-2.0.2-2-any downloading... checking keyring... checking package integrity... loading package files... checking for file conflicts... :: Processing package changes... installing python-execnet... installing python-iniconfig... installing python-packaging... installing python-pluggy... installing python-pytest... [?25h==> Checking buildtime dependencies... ==> Installing missing dependencies... [?25lresolving dependencies... looking for conflicting packages... Package (26) New Version Net Change Download Size extra/perl-error 0.17029-5 0.04 MiB extra/perl-mailtools 2.21-7 0.10 MiB extra/perl-timedate 2.33-5 0.08 MiB extra/python-autocommand 2.2.2-6 0.08 MiB extra/python-fastjsonschema 2.19.1-3 0.26 MiB extra/python-inflect 7.2.1-2 0.36 MiB extra/python-jaraco.context 4.3.0-4 0.03 MiB extra/python-jaraco.functools 4.0.0-3 0.07 MiB extra/python-jaraco.text 3.12.0-3 0.08 MiB extra/python-more-itertools 10.2.0-2 0.61 MiB extra/python-ordered-set 4.1.0-5 0.06 MiB extra/python-platformdirs 4.2.0-3 0.23 MiB extra/python-pyproject-hooks 1.1.0-1 0.10 MiB extra/python-setuptools 1:69.0.3-6 4.39 MiB extra/python-tomli 2.0.1-4 0.10 MiB extra/python-trove-classifiers 2024.4.10-1 0.12 MiB extra/python-typeguard 4.2.1-2 0.40 MiB extra/python-typing_extensions 4.11.0-1 0.38 MiB extra/python-validate-pyproject 0.16-1 0.31 MiB extra/git 2.44.0-1 25.03 MiB extra/python-build 1.2.1-3 0.19 MiB extra/python-filelock 3.13.3-2 0.08 MiB 0.02 MiB extra/python-installer 0.7.0-8 0.18 MiB extra/python-psutil 5.9.8-4 3.06 MiB extra/python-setuptools-scm 8.0.4-3 0.35 MiB extra/python-wheel 0.43.0-4 0.25 MiB Total Download Size: 0.02 MiB Total Installed Size: 36.95 MiB :: Proceed with installation? [Y/n] :: Retrieving packages... python-filelock-3.13.3-2-any downloading... checking keyring... checking package integrity... loading package files... checking for file conflicts... :: Processing package changes... installing perl-error... installing perl-timedate... installing perl-mailtools... installing git... Optional dependencies for git tk: gitk and git gui openssh: ssh transport and crypto perl-libwww: git svn perl-term-readkey: git svn and interactive.singlekey setting perl-io-socket-ssl: git send-email TLS support perl-authen-sasl: git send-email TLS support perl-mediawiki-api: git mediawiki support perl-datetime-format-iso8601: git mediawiki support perl-lwp-protocol-https: git mediawiki https support perl-cgi: gitweb (web interface) support python: git svn & git p4 [installed] subversion: git svn org.freedesktop.secrets: keyring credential helper libsecret: libsecret credential helper [installed] installing python-pyproject-hooks... installing python-build... Optional dependencies for python-build python-pip: to use as the Python package installer (default) python-uv: to use as the Python package installer python-virtualenv: to use virtualenv for build isolation installing python-installer... installing python-more-itertools... installing python-jaraco.functools... installing python-jaraco.context... installing python-autocommand... installing python-typing_extensions... installing python-typeguard... installing python-inflect... installing python-jaraco.text... installing python-ordered-set... installing python-platformdirs... installing python-tomli... installing python-fastjsonschema... installing python-trove-classifiers... installing python-validate-pyproject... installing python-setuptools... installing python-setuptools-scm... installing python-wheel... Optional dependencies for python-wheel python-keyring: for wheel.signatures python-xdg: for wheel.signatures installing python-filelock... installing python-psutil... :: Running post-transaction hooks... (1/1) Warn about old perl modules [?25h==> Retrieving sources... ==> WARNING: Skipping all source file integrity checks. ==> Extracting sources...  -> Creating working copy of pytest-xdist git repo... Cloning into 'pytest-xdist'... done. Switched to a new branch 'makepkg' ==> Starting build()... * Getting build dependencies for wheel... running egg_info creating src/pytest_xdist.egg-info writing src/pytest_xdist.egg-info/PKG-INFO writing dependency_links to src/pytest_xdist.egg-info/dependency_links.txt writing entry points to src/pytest_xdist.egg-info/entry_points.txt writing requirements to src/pytest_xdist.egg-info/requires.txt writing top-level names to src/pytest_xdist.egg-info/top_level.txt writing manifest file 'src/pytest_xdist.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no previously-included files found matching '.appveyor.yml' warning: no previously-included files found matching '.travis.yml' adding license file 'LICENSE' writing manifest file 'src/pytest_xdist.egg-info/SOURCES.txt' * Building wheel... running bdist_wheel running build running build_py creating build creating build/lib creating build/lib/xdist copying src/xdist/_path.py -> build/lib/xdist copying src/xdist/__init__.py -> build/lib/xdist copying src/xdist/_version.py -> build/lib/xdist copying src/xdist/report.py -> build/lib/xdist copying src/xdist/dsession.py -> build/lib/xdist copying src/xdist/workermanage.py -> build/lib/xdist copying src/xdist/plugin.py -> build/lib/xdist copying src/xdist/newhooks.py -> build/lib/xdist copying src/xdist/looponfail.py -> build/lib/xdist copying src/xdist/remote.py -> build/lib/xdist creating build/lib/xdist/scheduler copying src/xdist/scheduler/loadfile.py -> build/lib/xdist/scheduler copying src/xdist/scheduler/load.py -> build/lib/xdist/scheduler copying src/xdist/scheduler/loadscope.py -> build/lib/xdist/scheduler copying src/xdist/scheduler/__init__.py -> build/lib/xdist/scheduler copying src/xdist/scheduler/worksteal.py -> build/lib/xdist/scheduler copying src/xdist/scheduler/each.py -> build/lib/xdist/scheduler copying src/xdist/scheduler/loadgroup.py -> build/lib/xdist/scheduler installing to build/bdist.linux-riscv64/wheel running install running install_lib creating build/bdist.linux-riscv64 creating build/bdist.linux-riscv64/wheel creating build/bdist.linux-riscv64/wheel/xdist copying build/lib/xdist/_path.py -> build/bdist.linux-riscv64/wheel/xdist creating build/bdist.linux-riscv64/wheel/xdist/scheduler copying build/lib/xdist/scheduler/loadfile.py -> build/bdist.linux-riscv64/wheel/xdist/scheduler copying build/lib/xdist/scheduler/load.py -> build/bdist.linux-riscv64/wheel/xdist/scheduler copying build/lib/xdist/scheduler/loadscope.py -> build/bdist.linux-riscv64/wheel/xdist/scheduler copying build/lib/xdist/scheduler/__init__.py -> build/bdist.linux-riscv64/wheel/xdist/scheduler copying build/lib/xdist/scheduler/worksteal.py -> build/bdist.linux-riscv64/wheel/xdist/scheduler copying build/lib/xdist/scheduler/each.py -> build/bdist.linux-riscv64/wheel/xdist/scheduler copying build/lib/xdist/scheduler/loadgroup.py -> build/bdist.linux-riscv64/wheel/xdist/scheduler copying build/lib/xdist/__init__.py -> build/bdist.linux-riscv64/wheel/xdist copying build/lib/xdist/_version.py -> build/bdist.linux-riscv64/wheel/xdist copying build/lib/xdist/report.py -> build/bdist.linux-riscv64/wheel/xdist copying build/lib/xdist/dsession.py -> build/bdist.linux-riscv64/wheel/xdist copying build/lib/xdist/workermanage.py -> build/bdist.linux-riscv64/wheel/xdist copying build/lib/xdist/plugin.py -> build/bdist.linux-riscv64/wheel/xdist copying build/lib/xdist/newhooks.py -> build/bdist.linux-riscv64/wheel/xdist copying build/lib/xdist/looponfail.py -> build/bdist.linux-riscv64/wheel/xdist copying build/lib/xdist/remote.py -> build/bdist.linux-riscv64/wheel/xdist running install_egg_info running egg_info writing src/pytest_xdist.egg-info/PKG-INFO writing dependency_links to src/pytest_xdist.egg-info/dependency_links.txt writing entry points to src/pytest_xdist.egg-info/entry_points.txt writing requirements to src/pytest_xdist.egg-info/requires.txt writing top-level names to src/pytest_xdist.egg-info/top_level.txt reading manifest template 'MANIFEST.in' warning: no previously-included files found matching '.appveyor.yml' warning: no previously-included files found matching '.travis.yml' adding license file 'LICENSE' writing manifest file 'src/pytest_xdist.egg-info/SOURCES.txt' Copying src/pytest_xdist.egg-info to build/bdist.linux-riscv64/wheel/pytest_xdist-3.5.0-py3.12.egg-info running install_scripts creating build/bdist.linux-riscv64/wheel/pytest_xdist-3.5.0.dist-info/WHEEL creating '/build/python-pytest-xdist/src/pytest-xdist/dist/.tmp-e4nwovjf/pytest_xdist-3.5.0-py3-none-any.whl' and adding 'build/bdist.linux-riscv64/wheel' to it adding 'xdist/__init__.py' adding 'xdist/_path.py' adding 'xdist/_version.py' adding 'xdist/dsession.py' adding 'xdist/looponfail.py' adding 'xdist/newhooks.py' adding 'xdist/plugin.py' adding 'xdist/remote.py' adding 'xdist/report.py' adding 'xdist/workermanage.py' adding 'xdist/scheduler/__init__.py' adding 'xdist/scheduler/each.py' adding 'xdist/scheduler/load.py' adding 'xdist/scheduler/loadfile.py' adding 'xdist/scheduler/loadgroup.py' adding 'xdist/scheduler/loadscope.py' adding 'xdist/scheduler/worksteal.py' adding 'pytest_xdist-3.5.0.dist-info/LICENSE' adding 'pytest_xdist-3.5.0.dist-info/METADATA' adding 'pytest_xdist-3.5.0.dist-info/WHEEL' adding 'pytest_xdist-3.5.0.dist-info/entry_points.txt' adding 'pytest_xdist-3.5.0.dist-info/top_level.txt' adding 'pytest_xdist-3.5.0.dist-info/RECORD' removing build/bdist.linux-riscv64/wheel Successfully built pytest_xdist-3.5.0-py3-none-any.whl ==> Starting check()... ============================= test session starts ============================== platform linux -- Python 3.12.3, pytest-8.1.2, pluggy-1.4.0 rootdir: /build/python-pytest-xdist/src/pytest-xdist configfile: tox.ini testpaths: testing plugins: xdist-3.5.0, typeguard-4.2.1 collected 204 items testing/acceptance_test.py ..............s..x.......xx..............s... [ 22%] ......x....................F....................... [ 47%] testing/test_dsession.py .................x...x............ [ 63%] testing/test_looponfail.py ...........x.ss [ 71%] testing/test_newhooks.py .... [ 73%] testing/test_plugin.py ................... [ 82%] testing/test_remote.py x....x........ [ 89%] testing/test_workermanage.py ........x.......s...x. [100%] =================================== FAILURES =================================== _________________ TestLoadScope.test_workqueue_ordered_by_size _________________ self = pytester = def test_workqueue_ordered_by_size(self, pytester: pytest.Pytester) -> None: test_file = """ import pytest @pytest.mark.parametrize('i', range({})) def test(i): pass """ pytester.makepyfile(test_a=test_file.format(10), test_b=test_file.format(20)) result = pytester.runpytest("-n2", "--dist=loadscope", "-v") > assert get_workers_and_test_count_by_prefix( "test_a.py::test", result.outlines ) == {"gw1": 10} E AssertionError: assert {'gw0': 10} == {'gw1': 10} E E Left contains 1 more item: E {'gw0': 10} E Right contains 1 more item: E {'gw1': 10} E Use -v to get more diff /build/python-pytest-xdist/src/pytest-xdist/testing/acceptance_test.py:1244: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.12.3, pytest-8.1.2, pluggy-1.4.0 -- /usr/bin/python cachedir: .pytest_cache rootdir: /tmp/pytest-of-builduser/pytest-0/test_workqueue_ordered_by_size0 plugins: xdist-3.5.0, typeguard-4.2.1 created: 2/2 workers 2 workers [30 items] scheduling tests via LoadScopeScheduling test_b.py::test[0] [gw1] [ 3%] PASSED test_b.py::test[0] test_b.py::test[1] test_a.py::test[0] [gw1] [ 6%] PASSED test_b.py::test[1] test_b.py::test[2] [gw1] [ 10%] PASSED test_b.py::test[2] test_b.py::test[3] [gw1] [ 13%] PASSED test_b.py::test[3] [gw0] [ 16%] PASSED test_a.py::test[0] test_b.py::test[4] test_a.py::test[1] [gw1] [ 20%] PASSED test_b.py::test[4] test_b.py::test[5] [gw1] [ 23%] PASSED test_b.py::test[5] [gw0] [ 26%] PASSED test_a.py::test[1] test_b.py::test[6] test_a.py::test[2] [gw1] [ 30%] PASSED test_b.py::test[6] test_b.py::test[7] [gw1] [ 33%] PASSED test_b.py::test[7] [gw0] [ 36%] PASSED test_a.py::test[2] test_a.py::test[3] test_b.py::test[8] [gw1] [ 40%] PASSED test_b.py::test[8] test_b.py::test[9] [gw0] [ 43%] PASSED test_a.py::test[3] test_a.py::test[4] [gw0] [ 46%] PASSED test_a.py::test[4] [gw1] [ 50%] PASSED test_b.py::test[9] test_b.py::test[10] [gw1] [ 53%] PASSED test_b.py::test[10] test_a.py::test[5] [gw0] [ 56%] PASSED test_a.py::test[5] test_a.py::test[6] test_b.py::test[11] [gw1] [ 60%] PASSED test_b.py::test[11] test_b.py::test[12] [gw1] [ 63%] PASSED test_b.py::test[12] test_b.py::test[13] [gw1] [ 66%] PASSED test_b.py::test[13] test_b.py::test[14] [gw1] [ 70%] PASSED test_b.py::test[14] [gw0] [ 73%] PASSED test_a.py::test[6] test_a.py::test[7] [gw0] [ 76%] PASSED test_a.py::test[7] test_a.py::test[8] [gw0] [ 80%] PASSED test_a.py::test[8] test_b.py::test[15] [gw1] [ 83%] PASSED test_b.py::test[15] test_b.py::test[16] test_a.py::test[9] [gw0] [ 86%] PASSED test_a.py::test[9] [gw1] [ 90%] PASSED test_b.py::test[16] test_b.py::test[17] [gw1] [ 93%] PASSED test_b.py::test[17] test_b.py::test[18] [gw1] [ 96%] PASSED test_b.py::test[18] test_b.py::test[19] [gw1] [100%] PASSED test_b.py::test[19] ============================== 30 passed in 3.89s ============================== ================================== XFAILURES =================================== _____________________ TestDistEach.test_simple_diffoutput ______________________ cls = func = . at 0x3fae3ddf80> when = 'setup' reraise = (, ) @classmethod def from_call( cls, func: Callable[[], TResult], when: Literal["collect", "setup", "call", "teardown"], reraise: Optional[ Union[Type[BaseException], Tuple[Type[BaseException], ...]] ] = None, ) -> "CallInfo[TResult]": """Call func, wrapping the result in a CallInfo. :param func: The function to call. Called without arguments. :param when: The phase in which the function is called. :param reraise: Exception or exceptions that shall propagate if raised by the function, instead of being wrapped in the CallInfo. """ excinfo = None start = timing.time() precise_start = timing.perf_counter() try: > result: Optional[TResult] = func() /usr/lib/python3.12/site-packages/_pytest/runner.py:340: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/_pytest/runner.py:240: in lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise /usr/lib/python3.12/site-packages/pluggy/_hooks.py:501: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) /usr/lib/python3.12/site-packages/pluggy/_manager.py:119: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) /usr/lib/python3.12/site-packages/_pytest/unraisableexception.py:85: in pytest_runtest_setup yield from unraisable_exception_runtest_hook() /usr/lib/python3.12/site-packages/_pytest/unraisableexception.py:65: in unraisable_exception_runtest_hook yield /usr/lib/python3.12/site-packages/_pytest/logging.py:843: in pytest_runtest_setup yield from self._runtest_for(item, "setup") /usr/lib/python3.12/site-packages/_pytest/logging.py:832: in _runtest_for yield /usr/lib/python3.12/site-packages/_pytest/capture.py:878: in pytest_runtest_setup return (yield) /usr/lib/python3.12/site-packages/_pytest/threadexception.py:82: in pytest_runtest_setup yield from thread_exception_runtest_hook() /usr/lib/python3.12/site-packages/_pytest/threadexception.py:63: in thread_exception_runtest_hook yield _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ item = @hookimpl(tryfirst=True) def pytest_runtest_setup(item: Item) -> None: skipped = evaluate_skip_marks(item) if skipped: raise skip.Exception(skipped.reason, _use_item_location=True) item.stash[xfailed_key] = xfailed = evaluate_xfail_marks(item) if xfailed and not item.config.option.runxfail and not xfailed.run: > xfail("[NOTRUN] " + xfailed.reason) E _pytest.outcomes.XFailed: [NOTRUN] other python versions might not have pytest installed /usr/lib/python3.12/site-packages/_pytest/skipping.py:243: XFailed ________________________ test_terminate_on_hangingnode _________________________ pytester = @pytest.mark.xfail def test_terminate_on_hangingnode(pytester: pytest.Pytester) -> None: p = pytester.makeconftest( """ def pytest_sessionfinish(session): if session.nodeid == "my": # running on worker import time time.sleep(3) """ ) result = pytester.runpytest(p, "--dist=each", "--tx=popen//id=my") > assert result.duration < 2.0 E assert 3.2083399295806885 < 2.0 E + where 3.2083399295806885 = .duration /build/python-pytest-xdist/src/pytest-xdist/testing/acceptance_test.py:528: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.12.3, pytest-8.1.2, pluggy-1.4.0 rootdir: /tmp/pytest-of-builduser/pytest-0/test_terminate_on_hangingnode0 plugins: xdist-3.5.0, typeguard-4.2.1 created: 1/1 worker 1 worker [0 items] ============================ no tests ran in 3.03s ============================= ______________________________ test_session_hooks ______________________________ cls = func = . at 0x3fae49cfe0> when = 'setup' reraise = (, ) @classmethod def from_call( cls, func: Callable[[], TResult], when: Literal["collect", "setup", "call", "teardown"], reraise: Optional[ Union[Type[BaseException], Tuple[Type[BaseException], ...]] ] = None, ) -> "CallInfo[TResult]": """Call func, wrapping the result in a CallInfo. :param func: The function to call. Called without arguments. :param when: The phase in which the function is called. :param reraise: Exception or exceptions that shall propagate if raised by the function, instead of being wrapped in the CallInfo. """ excinfo = None start = timing.time() precise_start = timing.perf_counter() try: > result: Optional[TResult] = func() /usr/lib/python3.12/site-packages/_pytest/runner.py:340: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/_pytest/runner.py:240: in lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise /usr/lib/python3.12/site-packages/pluggy/_hooks.py:501: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) /usr/lib/python3.12/site-packages/pluggy/_manager.py:119: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) /usr/lib/python3.12/site-packages/_pytest/unraisableexception.py:85: in pytest_runtest_setup yield from unraisable_exception_runtest_hook() /usr/lib/python3.12/site-packages/_pytest/unraisableexception.py:65: in unraisable_exception_runtest_hook yield /usr/lib/python3.12/site-packages/_pytest/logging.py:843: in pytest_runtest_setup yield from self._runtest_for(item, "setup") /usr/lib/python3.12/site-packages/_pytest/logging.py:832: in _runtest_for yield /usr/lib/python3.12/site-packages/_pytest/capture.py:878: in pytest_runtest_setup return (yield) /usr/lib/python3.12/site-packages/_pytest/threadexception.py:82: in pytest_runtest_setup yield from thread_exception_runtest_hook() /usr/lib/python3.12/site-packages/_pytest/threadexception.py:63: in thread_exception_runtest_hook yield _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ item = @hookimpl(tryfirst=True) def pytest_runtest_setup(item: Item) -> None: skipped = evaluate_skip_marks(item) if skipped: raise skip.Exception(skipped.reason, _use_item_location=True) item.stash[xfailed_key] = xfailed = evaluate_xfail_marks(item) if xfailed and not item.config.option.runxfail and not xfailed.run: > xfail("[NOTRUN] " + xfailed.reason) E _pytest.outcomes.XFailed: [NOTRUN] works if run outside test suite /usr/lib/python3.12/site-packages/_pytest/skipping.py:243: XFailed ______________________ TestNodeFailure.test_each_multiple ______________________ self = pytester = @pytest.mark.xfail(reason="#20: xdist race condition on node restart") def test_each_multiple(self, pytester: pytest.Pytester) -> None: f = pytester.makepyfile( """ import os def test_a(): os._exit(1) def test_b(): pass """ ) res = pytester.runpytest(f, "--dist=each", "--tx=2*popen") > res.stdout.fnmatch_lines( [ "*Replacing crashed worker*", "*Worker*crashed while running*", "*2 failed*2 passed*", ] ) E Failed: nomatch: '*Replacing crashed worker*' E and: '============================= test session starts ==============================' E and: 'platform linux -- Python 3.12.3, pytest-8.1.2, pluggy-1.4.0' E and: 'rootdir: /tmp/pytest-of-builduser/pytest-0/test_each_multiple0' E and: 'plugins: xdist-3.5.0, typeguard-4.2.1' E and: 'created: 2/2 workers' E and: '2 workers [2 items]' E and: '' E and: '[gw1] node down: Not properly terminated' E and: 'F' E and: 'replacing crashed worker gw1' E and: '[gw0] node down: Not properly terminated' E and: 'F' E and: 'replacing crashed worker gw0' E and: 'INTERNALERROR> Traceback (most recent call last):' E and: 'INTERNALERROR> File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 285, in wrap_session' E and: 'INTERNALERROR> session.exitstatus = doit(config, session) or 0' E and: 'INTERNALERROR> ^^^^^^^^^^^^^^^^^^^^^' E and: 'INTERNALERROR> File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 339, in _main' E and: 'INTERNALERROR> config.hook.pytest_runtestloop(session=session)' E and: 'INTERNALERROR> File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 501, in __call__' E and: 'INTERNALERROR> return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)' E and: 'INTERNALERROR> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^' E and: 'INTERNALERROR> File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 119, in _hookexec' E and: 'INTERNALERROR> return self._inner_hookexec(hook_name, methods, kwargs, firstresult)' E and: 'INTERNALERROR> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^' E and: 'INTERNALERROR> File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 473, in traced_hookexec' E and: 'INTERNALERROR> return outcome.get_result()' E and: 'INTERNALERROR> ^^^^^^^^^^^^^^^^^^^^' E and: 'INTERNALERROR> File "/usr/lib/python3.12/site-packages/pluggy/_result.py", line 99, in get_result' E and: 'INTERNALERROR> raise exc.with_traceback(exc.__traceback__)' E and: 'INTERNALERROR> File "/usr/lib/python3.12/site-packages/pluggy/_result.py", line 61, in from_call' E and: 'INTERNALERROR> result = func()' E and: 'INTERNALERROR> ^^^^^^' E and: 'INTERNALERROR> File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 470, in ' E and: 'INTERNALERROR> lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult)' E and: 'INTERNALERROR> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^' E and: 'INTERNALERROR> File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 138, in _multicall' E and: 'INTERNALERROR> raise exception.with_traceback(exception.__traceback__)' E and: 'INTERNALERROR> File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 121, in _multicall' E and: 'INTERNALERROR> teardown.throw(exception) # type: ignore[union-attr]' E and: 'INTERNALERROR> ^^^^^^^^^^^^^^^^^^^^^^^^^' E and: 'INTERNALERROR> File "/usr/lib/python3.12/site-packages/_pytest/logging.py", line 806, in pytest_runtestloop' E and: 'INTERNALERROR> return (yield) # Run all the tests.' E and: 'INTERNALERROR> ^^^^^' E and: 'INTERNALERROR> File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 102, in _multicall' E and: 'INTERNALERROR> res = hook_impl.function(*args)' E and: 'INTERNALERROR> ^^^^^^^^^^^^^^^^^^^^^^^^^' E and: 'INTERNALERROR> File "/build/python-pytest-xdist/src/pytest-xdist/tmp_install/usr/lib/python3.12/site-packages/xdist/dsession.py", line 123, in pytest_runtestloop' E and: 'INTERNALERROR> self.loop_once()' E and: 'INTERNALERROR> File "/build/python-pytest-xdist/src/pytest-xdist/tmp_install/usr/lib/python3.12/site-packages/xdist/dsession.py", line 148, in loop_once' E and: 'INTERNALERROR> call(**kwargs)' E and: 'INTERNALERROR> File "/build/python-pytest-xdist/src/pytest-xdist/tmp_install/usr/lib/python3.12/site-packages/xdist/dsession.py", line 273, in worker_collectionfinish' E and: 'INTERNALERROR> self.sched.schedule()' E and: 'INTERNALERROR> File "/build/python-pytest-xdist/src/pytest-xdist/tmp_install/usr/lib/python3.12/site-packages/xdist/scheduler/each.py", line 134, in schedule' E and: 'INTERNALERROR> pending[:] = range(len(self.node2collection[node]))' E and: 'INTERNALERROR> ~~~~~~~~~~~~~~~~~~~~^^^^^^' E and: 'INTERNALERROR> KeyError: ' E and: '' E and: '============================== 2 failed in 4.14s ===============================' E remains unmatched: '*Replacing crashed worker*' /build/python-pytest-xdist/src/pytest-xdist/testing/acceptance_test.py:971: Failed ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.12.3, pytest-8.1.2, pluggy-1.4.0 rootdir: /tmp/pytest-of-builduser/pytest-0/test_each_multiple0 plugins: xdist-3.5.0, typeguard-4.2.1 created: 2/2 workers 2 workers [2 items] [gw1] node down: Not properly terminated F replacing crashed worker gw1 [gw0] node down: Not properly terminated F replacing crashed worker gw0 INTERNALERROR> Traceback (most recent call last): INTERNALERROR> File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 285, in wrap_session INTERNALERROR> session.exitstatus = doit(config, session) or 0 INTERNALERROR> ^^^^^^^^^^^^^^^^^^^^^ INTERNALERROR> File "/usr/lib/python3.12/site-packages/_pytest/main.py", line 339, in _main INTERNALERROR> config.hook.pytest_runtestloop(session=session) INTERNALERROR> File "/usr/lib/python3.12/site-packages/pluggy/_hooks.py", line 501, in __call__ INTERNALERROR> return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) INTERNALERROR> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ INTERNALERROR> File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 119, in _hookexec INTERNALERROR> return self._inner_hookexec(hook_name, methods, kwargs, firstresult) INTERNALERROR> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ INTERNALERROR> File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 473, in traced_hookexec INTERNALERROR> return outcome.get_result() INTERNALERROR> ^^^^^^^^^^^^^^^^^^^^ INTERNALERROR> File "/usr/lib/python3.12/site-packages/pluggy/_result.py", line 99, in get_result INTERNALERROR> raise exc.with_traceback(exc.__traceback__) INTERNALERROR> File "/usr/lib/python3.12/site-packages/pluggy/_result.py", line 61, in from_call INTERNALERROR> result = func() INTERNALERROR> ^^^^^^ INTERNALERROR> File "/usr/lib/python3.12/site-packages/pluggy/_manager.py", line 470, in INTERNALERROR> lambda: oldcall(hook_name, hook_impls, caller_kwargs, firstresult) INTERNALERROR> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ INTERNALERROR> File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 138, in _multicall INTERNALERROR> raise exception.with_traceback(exception.__traceback__) INTERNALERROR> File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 121, in _multicall INTERNALERROR> teardown.throw(exception) # type: ignore[union-attr] INTERNALERROR> ^^^^^^^^^^^^^^^^^^^^^^^^^ INTERNALERROR> File "/usr/lib/python3.12/site-packages/_pytest/logging.py", line 806, in pytest_runtestloop INTERNALERROR> return (yield) # Run all the tests. INTERNALERROR> ^^^^^ INTERNALERROR> File "/usr/lib/python3.12/site-packages/pluggy/_callers.py", line 102, in _multicall INTERNALERROR> res = hook_impl.function(*args) INTERNALERROR> ^^^^^^^^^^^^^^^^^^^^^^^^^ INTERNALERROR> File "/build/python-pytest-xdist/src/pytest-xdist/tmp_install/usr/lib/python3.12/site-packages/xdist/dsession.py", line 123, in pytest_runtestloop INTERNALERROR> self.loop_once() INTERNALERROR> File "/build/python-pytest-xdist/src/pytest-xdist/tmp_install/usr/lib/python3.12/site-packages/xdist/dsession.py", line 148, in loop_once INTERNALERROR> call(**kwargs) INTERNALERROR> File "/build/python-pytest-xdist/src/pytest-xdist/tmp_install/usr/lib/python3.12/site-packages/xdist/dsession.py", line 273, in worker_collectionfinish INTERNALERROR> self.sched.schedule() INTERNALERROR> File "/build/python-pytest-xdist/src/pytest-xdist/tmp_install/usr/lib/python3.12/site-packages/xdist/scheduler/each.py", line 134, in schedule INTERNALERROR> pending[:] = range(len(self.node2collection[node])) INTERNALERROR> ~~~~~~~~~~~~~~~~~~~~^^^^^^ INTERNALERROR> KeyError: ============================== 2 failed in 4.14s =============================== _____________________ TestDistReporter.test_rsync_printing _____________________ self = pytester = linecomp = <_pytest.pytester.LineComp object at 0x3fadf9c8c0> @pytest.mark.xfail def test_rsync_printing(self, pytester: pytest.Pytester, linecomp) -> None: config = pytester.parseconfig() > from _pytest.pytest_terminal import TerminalReporter E ModuleNotFoundError: No module named '_pytest.pytest_terminal' /build/python-pytest-xdist/src/pytest-xdist/testing/test_dsession.py:445: ModuleNotFoundError _____________________________ test_pytest_issue419 _____________________________ pytester = @pytest.mark.xfail(reason="duplicate test ids not supported yet") def test_pytest_issue419(pytester: pytest.Pytester) -> None: pytester.makepyfile( """ import pytest @pytest.mark.parametrize('birth_year', [1988, 1988, ]) def test_2011_table(birth_year): pass """ ) reprec = pytester.inline_run("-n1") reprec.assertoutcome(passed=2) > assert 0 E assert 0 /build/python-pytest-xdist/src/pytest-xdist/testing/test_dsession.py:535: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.12.3, pytest-8.1.2, pluggy-1.4.0 rootdir: /tmp/pytest-of-builduser/pytest-0/test_pytest_issue4190 plugins: xdist-3.5.0, typeguard-4.2.1 created: 1/1 worker 1 worker [2 items] .. [100%] ============================== 2 passed in 1.72s =============================== ________________ TestLooponFailing.test_looponfail_removed_test ________________ self = pytester = @pytest.mark.xfail(reason="broken by pytest 3.1+", strict=True) def test_looponfail_removed_test(self, pytester: pytest.Pytester) -> None: modcol = pytester.getmodulecol( textwrap.dedent( """ def test_one(): assert 0 def test_two(): assert 0 """ ) ) remotecontrol = RemoteControl(modcol.config) remotecontrol.loop_once() assert len(remotecontrol.failures) == 2 modcol.path.write_text( textwrap.dedent( """ def test_xxx(): # renamed test assert 0 def test_two(): assert 1 # pass now """ ) ) removepyc(modcol.path) remotecontrol.loop_once() > assert len(remotecontrol.failures) == 0 E AssertionError: assert 1 == 0 E + where 1 = len(['test_looponfail_removed_test.py::test_xxx']) E + where ['test_looponfail_removed_test.py::test_xxx'] = .failures /build/python-pytest-xdist/src/pytest-xdist/testing/test_looponfail.py:288: AssertionError ----------------------------- Captured stdout call ----------------------------- ============================= test session starts ============================== platform linux -- Python 3.12.3, pytest-8.1.2, pluggy-1.4.0 rootdir: /tmp/pytest-of-builduser/pytest-0/test_looponfail_removed_test0 plugins: xdist-3.5.0, typeguard-4.2.1 collected 0 items ============================ no tests ran in 0.02s ============================= ============================= test session starts ============================== platform linux -- Python 3.12.3, pytest-8.1.2, pluggy-1.4.0 rootdir: /tmp/pytest-of-builduser/pytest-0/test_looponfail_removed_test0 plugins: xdist-3.5.0, typeguard-4.2.1 collected 2 items collected 2 items test_looponfail_removed_test.py FF [100%] =================================== FAILURES =================================== ___________________________________ test_one ___________________________________ def test_one(): > assert 0 E assert 0 test_looponfail_removed_test.py:2: AssertionError ___________________________________ test_two ___________________________________ def test_two(): > assert 0 E assert 0 test_looponfail_removed_test.py:4: AssertionError =========================== short test summary info ============================ FAILED test_looponfail_removed_test.py::test_one - assert 0 FAILED test_looponfail_removed_test.py::test_two - assert 0 ============================== 2 failed in 0.12s =============================== ============================= test session starts ============================== platform linux -- Python 3.12.3, pytest-8.1.2, pluggy-1.4.0 rootdir: /tmp/pytest-of-builduser/pytest-0/test_looponfail_removed_test0 plugins: xdist-3.5.0, typeguard-4.2.1 collected 1 item collected 3 items collected 3 items test_looponfail_removed_test.py F. [100%] =================================== FAILURES =================================== ___________________________________ test_xxx ___________________________________ def test_xxx(): # renamed test > assert 0 E assert 0 test_looponfail_removed_test.py:3: AssertionError =========================== short test summary info ============================ FAILED test_looponfail_removed_test.py::test_xxx - assert 0 ========================= 1 failed, 1 passed in 0.14s ========================== ____________________________ test_remoteinitconfig _____________________________ pytester = @pytest.mark.xfail(reason="#59") def test_remoteinitconfig(pytester: pytest.Pytester) -> None: from xdist.remote import remote_initconfig config1 = pytester.parseconfig() config2 = remote_initconfig(config1.option.__dict__, config1.args) > assert config2.option.__dict__ == config1.option.__dict__ E AssertionError: assert {'assertmode'...w': None, ...} == {'assertmode'...w': None, ...} E E Omitting 97 identical items, use -vv to show E Differing items: E {'file_or_dir': ['/tmp/pytest-of-builduser/pytest-0/test_remoteinitconfig0']} != {'file_or_dir': []} E Use -v to get more diff /build/python-pytest-xdist/src/pytest-xdist/testing/test_remote.py:79: AssertionError _____________ TestWorkerInteractor.test_happy_run_events_converted _____________ self = pytester = worker = def test_happy_run_events_converted( self, pytester: pytest.Pytester, worker: WorkerSetup ) -> None: > pytest.xfail("implement a simple test for event production") E _pytest.outcomes.XFailed: implement a simple test for event production /build/python-pytest-xdist/src/pytest-xdist/testing/test_remote.py:187: XFailed __________________ TestNodeManager.test_rsync_roots_no_roots ___________________ cls = func = . at 0x3fad43bb00> when = 'setup' reraise = (, ) @classmethod def from_call( cls, func: Callable[[], TResult], when: Literal["collect", "setup", "call", "teardown"], reraise: Optional[ Union[Type[BaseException], Tuple[Type[BaseException], ...]] ] = None, ) -> "CallInfo[TResult]": """Call func, wrapping the result in a CallInfo. :param func: The function to call. Called without arguments. :param when: The phase in which the function is called. :param reraise: Exception or exceptions that shall propagate if raised by the function, instead of being wrapped in the CallInfo. """ excinfo = None start = timing.time() precise_start = timing.perf_counter() try: > result: Optional[TResult] = func() /usr/lib/python3.12/site-packages/_pytest/runner.py:340: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/_pytest/runner.py:240: in lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise /usr/lib/python3.12/site-packages/pluggy/_hooks.py:501: in __call__ return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) /usr/lib/python3.12/site-packages/pluggy/_manager.py:119: in _hookexec return self._inner_hookexec(hook_name, methods, kwargs, firstresult) /usr/lib/python3.12/site-packages/_pytest/unraisableexception.py:85: in pytest_runtest_setup yield from unraisable_exception_runtest_hook() /usr/lib/python3.12/site-packages/_pytest/unraisableexception.py:65: in unraisable_exception_runtest_hook yield /usr/lib/python3.12/site-packages/_pytest/logging.py:843: in pytest_runtest_setup yield from self._runtest_for(item, "setup") /usr/lib/python3.12/site-packages/_pytest/logging.py:832: in _runtest_for yield /usr/lib/python3.12/site-packages/_pytest/capture.py:878: in pytest_runtest_setup return (yield) /usr/lib/python3.12/site-packages/_pytest/threadexception.py:82: in pytest_runtest_setup yield from thread_exception_runtest_hook() /usr/lib/python3.12/site-packages/_pytest/threadexception.py:63: in thread_exception_runtest_hook yield _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ item = @hookimpl(tryfirst=True) def pytest_runtest_setup(item: Item) -> None: skipped = evaluate_skip_marks(item) if skipped: raise skip.Exception(skipped.reason, _use_item_location=True) item.stash[xfailed_key] = xfailed = evaluate_xfail_marks(item) if xfailed and not item.config.option.runxfail and not xfailed.run: > xfail("[NOTRUN] " + xfailed.reason) E _pytest.outcomes.XFailed: [NOTRUN] /usr/lib/python3.12/site-packages/_pytest/skipping.py:243: XFailed _____________________ test_unserialize_warning_msg[Nested] _____________________ w_cls = 'Nested' @pytest.mark.parametrize( "w_cls", [ UserWarning, MyWarning, "Imported", pytest.param( "Nested", marks=pytest.mark.xfail(reason="Nested warning classes are not supported."), ), ], ) def test_unserialize_warning_msg(w_cls): """Test that warning serialization process works well""" # Create a test warning message with pytest.warns(UserWarning) as w: if not isinstance(w_cls, str): warnings.warn("hello", w_cls) elif w_cls == "Imported": generate_warning() elif w_cls == "Nested": # dynamic creation class MyWarning2(UserWarning): pass warnings.warn("hello", MyWarning2) # Unpack assert len(w) == 1 w_msg = w[0] # Serialize and deserialize data = serialize_warning_message(w_msg) > w_msg2 = unserialize_warning_message(data) testing/test_workermanage.py:369: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ data = {'category_class_name': 'MyWarning2', 'category_module': 'test_workermanage', 'file': None, 'filename': '/build/python-pytest-xdist/src/pytest-xdist/testing/test_workermanage.py', ...} def unserialize_warning_message(data): import warnings import importlib if data["message_module"]: mod = importlib.import_module(data["message_module"]) > cls = getattr(mod, data["message_class_name"]) E AttributeError: module 'test_workermanage' has no attribute 'MyWarning2'. Did you mean: 'MyWarning'? tmp_install/usr/lib/python3.12/site-packages/xdist/workermanage.py:417: AttributeError =========================== short test summary info ============================ SKIPPED [3] ../../../../usr/lib/python3.12/site-packages/_pytest/pytester.py:1522: could not import 'pexpect': No module named 'pexpect' SKIPPED [1] testing/acceptance_test.py:809: pytest 8.1.2 does not have the pytest_warning_captured hook. SKIPPED [1] testing/test_workermanage.py:316: no 'gspecs' option found XFAIL testing/acceptance_test.py::TestDistEach::test_simple_diffoutput - reason: [NOTRUN] other python versions might not have pytest installed XFAIL testing/acceptance_test.py::test_terminate_on_hangingnode XFAIL testing/acceptance_test.py::test_session_hooks - reason: [NOTRUN] works if run outside test suite XFAIL testing/acceptance_test.py::TestNodeFailure::test_each_multiple - #20: xdist race condition on node restart XFAIL testing/test_dsession.py::TestDistReporter::test_rsync_printing XFAIL testing/test_dsession.py::test_pytest_issue419 - duplicate test ids not supported yet XFAIL testing/test_looponfail.py::TestLooponFailing::test_looponfail_removed_test - broken by pytest 3.1+ XFAIL testing/test_remote.py::test_remoteinitconfig - #59 XFAIL testing/test_remote.py::TestWorkerInteractor::test_happy_run_events_converted - reason: implement a simple test for event production XFAIL testing/test_workermanage.py::TestNodeManager::test_rsync_roots_no_roots - reason: [NOTRUN] XFAIL testing/test_workermanage.py::test_unserialize_warning_msg[Nested] - Nested warning classes are not supported. FAILED testing/acceptance_test.py::TestLoadScope::test_workqueue_ordered_by_size ======= 1 failed, 187 passed, 5 skipped, 11 xfailed in 410.82s (0:06:50) ======= ==> ERROR: A failure occurred in check().  Aborting... ==> ERROR: Build failed, check /var/lib/archbuild/extra-riscv64/felix61/build [?25h[?25hreceiving incremental file list python-pytest-xdist-3.5.0-2-riscv64-build.log python-pytest-xdist-3.5.0-2-riscv64-check.log sent 62 bytes received 7,081 bytes 4,762.00 bytes/sec total size is 42,505 speedup is 5.95