python3.14-nixbot-tests
checks.aarch64-darwin.nixbot-tests
· build #443
· raw
1tribuchet: building on mac022Sourcing python-remove-tests-dir-hook3Sourcing python-catch-conflicts-hook.sh4Sourcing python-remove-bin-bytecode-hook.sh5Sourcing pypa-build-hook6Using pypaBuildPhase7Sourcing python-runtime-deps-check-hook8Using pythonRuntimeDepsCheckHook9Sourcing pypa-install-hook10Using pypaInstallPhase11Sourcing python-imports-check-hook.sh12Using pythonImportsCheckPhase13Sourcing python-namespaces-hook14Sourcing python-catch-conflicts-hook.sh15Sourcing pytest-check-hook16Using pytestCheckPhase
unpackPhase
17unpacking source archive /nix/store/yjsbkbl4ml5mrbr7q74n108mh6hngwxi-nixbot18source root is nixbot19setting SOURCE_DATE_EPOCH to timestamp 315619200 of file "nixbot/pyproject.toml"configurePhase
20no configure script, doing nothingbuildPhase
21Executing pypaBuildPhase22Creating a wheel...23pypa build flags: --no-isolation --outdir dist/ --wheel24* Getting build dependencies for wheel...25* Building wheel...26Successfully built nixbot-0.0.1-py3-none-any.whl27Finished creating a wheel...28Finished executing pypaBuildPhasepythonRuntimeDepsCheckHook
29Executing pythonRuntimeDepsCheck30Checking runtime dependencies for nixbot-0.0.1-py3-none-any.whl31Finished executing pythonRuntimeDepsCheckinstallPhase
32Executing pypaInstallPhase33Successfully installed nixbot-0.0.1-py3-none-any.whl34Finished executing pypaInstallPhasepythonOutputDistPhase
35Executing pythonOutputDistPhase36Finished executing pythonOutputDistPhasefixupPhase
37checking for references to /private/var/tb/8/scratch/f2bf843273ae9986/build/ in /nix/store/k3bap8irlvf2izwy452bhiivhzg04f1w-python3.14-nixbot-tests...38patching script interpreter paths in /nix/store/k3bap8irlvf2izwy452bhiivhzg04f1w-python3.14-nixbot-tests39stripping (with command strip and flags -S) in /nix/store/k3bap8irlvf2izwy452bhiivhzg04f1w-python3.14-nixbot-tests/lib /nix/store/k3bap8irlvf2izwy452bhiivhzg04f1w-python3.14-nixbot-tests/bin40checking for references to /private/var/tb/8/scratch/f2bf843273ae9986/build/ in /nix/store/zn5lqx35qdzd4p874lcxp7yffav3iyc0-python3.14-nixbot-tests-dist...41patching script interpreter paths in /nix/store/zn5lqx35qdzd4p874lcxp7yffav3iyc0-python3.14-nixbot-tests-dist42Rewriting #!/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14 to #!/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.643wrapping `/nix/store/k3bap8irlvf2izwy452bhiivhzg04f1w-python3.14-nixbot-tests/bin/nixbot'...44Executing pythonRemoveTestsDir45Finished executing pythonRemoveTestsDirinstallCheckPhase
46no Makefile or custom installCheckPhase, doing nothingpythonImportsCheckPhase
47Executing pythonImportsCheckPhasepytestCheckPhase
48Executing pytestCheckPhase49pytest flags: -m pytest --numprocesses=2450/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.51 warner(PytestBenchmarkWarning(text))52/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.53 warner(PytestBenchmarkWarning(text))54/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.55 warner(PytestBenchmarkWarning(text))56/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.57 warner(PytestBenchmarkWarning(text))58/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.59 warner(PytestBenchmarkWarning(text))60/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.61 warner(PytestBenchmarkWarning(text))62/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.63 warner(PytestBenchmarkWarning(text))64/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.65 warner(PytestBenchmarkWarning(text))66/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.67 warner(PytestBenchmarkWarning(text))68/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.69 warner(PytestBenchmarkWarning(text))70/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.71 warner(PytestBenchmarkWarning(text))72/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.73 warner(PytestBenchmarkWarning(text))74/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.75 warner(PytestBenchmarkWarning(text))76/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.77 warner(PytestBenchmarkWarning(text))78/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.79 warner(PytestBenchmarkWarning(text))80/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.81 warner(PytestBenchmarkWarning(text))82/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.83 warner(PytestBenchmarkWarning(text))84/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.85 warner(PytestBenchmarkWarning(text))86/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.87 warner(PytestBenchmarkWarning(text))88/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.89 warner(PytestBenchmarkWarning(text))90/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.91 warner(PytestBenchmarkWarning(text))92/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.93 warner(PytestBenchmarkWarning(text))94/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.95 warner(PytestBenchmarkWarning(text))96/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.97 warner(PytestBenchmarkWarning(text))98/nix/store/kfbmrm2rads9m3za8am89kll1xmzlbra-python3.14-pytest-benchmark-5.2.3/lib/python3.14/site-packages/pytest_benchmark/logger.py:44: PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.99 warner(PytestBenchmarkWarning(text))100============================= test session starts ==============================101platform darwin -- Python 3.14.6, pytest-9.1.1, pluggy-1.6.0102benchmark: 5.2.3 (defaults: timer=time.perf_counter disable_gc=False min_rounds=5 min_time=0.000005 max_time=1.0 calibration_precision=10 warmup=False warmup_iterations=100000)103rootdir: /private/var/tb/8/scratch/f2bf843273ae9986/build/nixbot104configfile: pyproject.toml105plugins: asyncio-1.4.0, timeout-2.4.0, xdist-3.8.0, benchmark-5.2.3, anyio-4.14.2106asyncio: mode=Mode.AUTO, debug=False, asyncio_default_fixture_loop_scope=None, asyncio_default_test_loop_scope=function107timeout: 60.0s108timeout method: signal109timeout func_only: False110created: 24/24 workers11124 workers [869 items]112113...................ss............s.sssss..................sssssssssss... [ 8%]114.............................s.......................................... [ 16%]115................s....................................................... [ 24%]116........................................................................ [ 33%]117....................ssss..........................................s..... [ 41%]118........................................................................ [ 49%]119.............................s.EEEEEE...EEEEEEEEEEEE.....EEEE.EEE....E.E [ 57%]120EEEEE.EEE.EEEEEEEEEEEEE.EEEEEEEE.EEEEEEEEEEEEEEEEEEEEEEEEEEEEEE.EEEEEEEE [ 66%]121EEEEEEEEEEEEE.EEEEEEEE..EEE.EEEEE..E.E.sEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE [ 74%]122EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEsE.EEEEEEEEE.EEEEEEEEE [ 82%]123EEEEEEEEEEEEE.E..EEEE.E.......EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE [ 91%]124EEEEEEEEEEEEEEEEEEEEEEEEEEE.EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE [ 99%]125EEEEE [100%]126==================================== ERRORS ====================================127_________________ ERROR at setup of test_repo_list_and_toggle __________________128[gw14] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14129130fixturedef = <FixtureDef argname='postgres_dsn' scope='module' baseid='nixbot/tests'>131request = <SubRequest 'postgres_dsn' for <Function test_repo_list_and_toggle>>132133 @pytest.hookimpl(wrapper=True)134 def pytest_fixture_setup(fixturedef: FixtureDef, request) -> object | None:135 if (136 fixturedef.argname == "event_loop_policy"137 and fixturedef.func.__module__ != __name__138 ):139 warnings.warn(140 PytestDeprecationWarning(_EVENT_LOOP_POLICY_FIXTURE_DEPRECATION_WARNING),141 )142 asyncio_mode = _get_asyncio_mode(request.config)143 if not _is_asyncio_fixture_function(fixturedef.func):144 if asyncio_mode == Mode.STRICT:145 # Ignore async fixtures without explicit asyncio mark in strict mode146 # This applies to pytest_trio fixtures, for example147 return (yield)148 if not _is_coroutine_or_asyncgen(fixturedef.func):149> return (yield)150 ^^^^^151152/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:926: 153_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 154nixbot/tests/conftest.py:33: in postgres_dsn155 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:156 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^157/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__158 return next(self.gen)159 ^^^^^^^^^^^^^^160_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 161162tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...tch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw14'), _retention_count=3, _retention_policy='all')163dbname = 'cli'164165 @contextlib.contextmanager166 def ephemeral_postgres(167 tmp_path_factory: pytest.TempPathFactory, dbname: str168 ) -> Iterator[str]:169 """Throwaway Postgres on a unix socket with migrations applied."""170 datadir = tmp_path_factory.mktemp("pgdata")171 sockdir = tmp_path_factory.mktemp("pgsock")172 subprocess.run( # noqa: S603173 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],174 check=True,175 capture_output=True,176 )177 proc = subprocess.Popen( # noqa: S603178 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],179 stdout=subprocess.DEVNULL,180 stderr=subprocess.DEVNULL,181 )182 try:183 deadline = time.monotonic() + 30184 while (185 subprocess.run( # noqa: S603186 ["pg_isready", "-h", str(sockdir), "-U", "test"],187 check=False,188 capture_output=True,189 ).returncode190 != 0191 ):192 # The socket appears before recovery finishes; createdb would193 # fail with "the database system is starting up".194 if time.monotonic() > deadline:195 msg = "postgres did not start"196> raise RuntimeError(msg)197E RuntimeError: postgres did not start198199nixbot/tests/support.py:319: RuntimeError200__________________ ERROR at setup of test_build_list_and_view __________________201[gw14] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14202203request = <SubRequest 'postgres_dsn' for <Function test_repo_list_and_toggle>>204tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...tch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw14'), _retention_count=3, _retention_policy='all')205206 @pytest.fixture(scope="module")207 def postgres_dsn(208 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory209 ) -> Iterator[str]:210 if shutil.which("initdb") is None:211 pytest.skip("postgresql not available")212 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")213> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:214 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^215216nixbot/tests/conftest.py:33: 217_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 218/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__219 return next(self.gen)220 ^^^^^^^^^^^^^^221_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 222223tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...tch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw14'), _retention_count=3, _retention_policy='all')224dbname = 'cli'225226 @contextlib.contextmanager227 def ephemeral_postgres(228 tmp_path_factory: pytest.TempPathFactory, dbname: str229 ) -> Iterator[str]:230 """Throwaway Postgres on a unix socket with migrations applied."""231 datadir = tmp_path_factory.mktemp("pgdata")232 sockdir = tmp_path_factory.mktemp("pgsock")233 subprocess.run( # noqa: S603234 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],235 check=True,236 capture_output=True,237 )238 proc = subprocess.Popen( # noqa: S603239 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],240 stdout=subprocess.DEVNULL,241 stderr=subprocess.DEVNULL,242 )243 try:244 deadline = time.monotonic() + 30245 while (246 subprocess.run( # noqa: S603247 ["pg_isready", "-h", str(sockdir), "-U", "test"],248 check=False,249 capture_output=True,250 ).returncode251 != 0252 ):253 # The socket appears before recovery finishes; createdb would254 # fail with "the database system is starting up".255 if time.monotonic() > deadline:256 msg = "postgres did not start"257> raise RuntimeError(msg)258E RuntimeError: postgres did not start259260nixbot/tests/support.py:319: RuntimeError261_________________ ERROR at setup of test_build_restart_cancel __________________262[gw14] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14263264request = <SubRequest 'postgres_dsn' for <Function test_repo_list_and_toggle>>265tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...tch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw14'), _retention_count=3, _retention_policy='all')266267 @pytest.fixture(scope="module")268 def postgres_dsn(269 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory270 ) -> Iterator[str]:271 if shutil.which("initdb") is None:272 pytest.skip("postgresql not available")273 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")274> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:275 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^276277nixbot/tests/conftest.py:33: 278_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 279/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__280 return next(self.gen)281 ^^^^^^^^^^^^^^282_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 283284tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...tch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw14'), _retention_count=3, _retention_policy='all')285dbname = 'cli'286287 @contextlib.contextmanager288 def ephemeral_postgres(289 tmp_path_factory: pytest.TempPathFactory, dbname: str290 ) -> Iterator[str]:291 """Throwaway Postgres on a unix socket with migrations applied."""292 datadir = tmp_path_factory.mktemp("pgdata")293 sockdir = tmp_path_factory.mktemp("pgsock")294 subprocess.run( # noqa: S603295 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],296 check=True,297 capture_output=True,298 )299 proc = subprocess.Popen( # noqa: S603300 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],301 stdout=subprocess.DEVNULL,302 stderr=subprocess.DEVNULL,303 )304 try:305 deadline = time.monotonic() + 30306 while (307 subprocess.run( # noqa: S603308 ["pg_isready", "-h", str(sockdir), "-U", "test"],309 check=False,310 capture_output=True,311 ).returncode312 != 0313 ):314 # The socket appears before recovery finishes; createdb would315 # fail with "the database system is starting up".316 if time.monotonic() > deadline:317 msg = "postgres did not start"318> raise RuntimeError(msg)319E RuntimeError: postgres did not start320321nixbot/tests/support.py:319: RuntimeError322_______________ ERROR at setup of test_log_summary_attr_and_drv ________________323[gw14] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14324325request = <SubRequest 'postgres_dsn' for <Function test_repo_list_and_toggle>>326tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...tch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw14'), _retention_count=3, _retention_policy='all')327328 @pytest.fixture(scope="module")329 def postgres_dsn(330 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory331 ) -> Iterator[str]:332 if shutil.which("initdb") is None:333 pytest.skip("postgresql not available")334 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")335> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:336 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^337338nixbot/tests/conftest.py:33: 339_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 340/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__341 return next(self.gen)342 ^^^^^^^^^^^^^^343_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 344345tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...tch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw14'), _retention_count=3, _retention_policy='all')346dbname = 'cli'347348 @contextlib.contextmanager349 def ephemeral_postgres(350 tmp_path_factory: pytest.TempPathFactory, dbname: str351 ) -> Iterator[str]:352 """Throwaway Postgres on a unix socket with migrations applied."""353 datadir = tmp_path_factory.mktemp("pgdata")354 sockdir = tmp_path_factory.mktemp("pgsock")355 subprocess.run( # noqa: S603356 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],357 check=True,358 capture_output=True,359 )360 proc = subprocess.Popen( # noqa: S603361 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],362 stdout=subprocess.DEVNULL,363 stderr=subprocess.DEVNULL,364 )365 try:366 deadline = time.monotonic() + 30367 while (368 subprocess.run( # noqa: S603369 ["pg_isready", "-h", str(sockdir), "-U", "test"],370 check=False,371 capture_output=True,372 ).returncode373 != 0374 ):375 # The socket appears before recovery finishes; createdb would376 # fail with "the database system is starting up".377 if time.monotonic() > deadline:378 msg = "postgres did not start"379> raise RuntimeError(msg)380E RuntimeError: postgres did not start381382nixbot/tests/support.py:319: RuntimeError383_______________ ERROR at setup of test_repo_and_build_inference ________________384[gw14] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14385386request = <SubRequest 'postgres_dsn' for <Function test_repo_list_and_toggle>>387tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...tch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw14'), _retention_count=3, _retention_policy='all')388389 @pytest.fixture(scope="module")390 def postgres_dsn(391 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory392 ) -> Iterator[str]:393 if shutil.which("initdb") is None:394 pytest.skip("postgresql not available")395 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")396> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:397 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^398399nixbot/tests/conftest.py:33: 400_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 401/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__402 return next(self.gen)403 ^^^^^^^^^^^^^^404_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 405406tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...tch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw14'), _retention_count=3, _retention_policy='all')407dbname = 'cli'408409 @contextlib.contextmanager410 def ephemeral_postgres(411 tmp_path_factory: pytest.TempPathFactory, dbname: str412 ) -> Iterator[str]:413 """Throwaway Postgres on a unix socket with migrations applied."""414 datadir = tmp_path_factory.mktemp("pgdata")415 sockdir = tmp_path_factory.mktemp("pgsock")416 subprocess.run( # noqa: S603417 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],418 check=True,419 capture_output=True,420 )421 proc = subprocess.Popen( # noqa: S603422 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],423 stdout=subprocess.DEVNULL,424 stderr=subprocess.DEVNULL,425 )426 try:427 deadline = time.monotonic() + 30428 while (429 subprocess.run( # noqa: S603430 ["pg_isready", "-h", str(sockdir), "-U", "test"],431 check=False,432 capture_output=True,433 ).returncode434 != 0435 ):436 # The socket appears before recovery finishes; createdb would437 # fail with "the database system is starting up".438 if time.monotonic() > deadline:439 msg = "postgres did not start"440> raise RuntimeError(msg)441E RuntimeError: postgres did not start442443nixbot/tests/support.py:319: RuntimeError444______________________ ERROR at setup of test_auth_status ______________________445[gw14] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14446447request = <SubRequest 'postgres_dsn' for <Function test_repo_list_and_toggle>>448tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...tch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw14'), _retention_count=3, _retention_policy='all')449450 @pytest.fixture(scope="module")451 def postgres_dsn(452 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory453 ) -> Iterator[str]:454 if shutil.which("initdb") is None:455 pytest.skip("postgresql not available")456 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")457> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:458 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^459460nixbot/tests/conftest.py:33: 461_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 462/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__463 return next(self.gen)464 ^^^^^^^^^^^^^^465_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 466467tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...tch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw14'), _retention_count=3, _retention_policy='all')468dbname = 'cli'469470 @contextlib.contextmanager471 def ephemeral_postgres(472 tmp_path_factory: pytest.TempPathFactory, dbname: str473 ) -> Iterator[str]:474 """Throwaway Postgres on a unix socket with migrations applied."""475 datadir = tmp_path_factory.mktemp("pgdata")476 sockdir = tmp_path_factory.mktemp("pgsock")477 subprocess.run( # noqa: S603478 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],479 check=True,480 capture_output=True,481 )482 proc = subprocess.Popen( # noqa: S603483 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],484 stdout=subprocess.DEVNULL,485 stderr=subprocess.DEVNULL,486 )487 try:488 deadline = time.monotonic() + 30489 while (490 subprocess.run( # noqa: S603491 ["pg_isready", "-h", str(sockdir), "-U", "test"],492 check=False,493 capture_output=True,494 ).returncode495 != 0496 ):497 # The socket appears before recovery finishes; createdb would498 # fail with "the database system is starting up".499 if time.monotonic() > deadline:500 msg = "postgres did not start"501> raise RuntimeError(msg)502E RuntimeError: postgres did not start503504nixbot/tests/support.py:319: RuntimeError505____________________ ERROR at setup of test_full_lifecycle _____________________506[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14507508self = <Coroutine test_full_lifecycle>509510 def setup(self) -> None:511 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"512 if runner_fixture_id not in self.fixturenames:513 self.fixturenames.append(runner_fixture_id)514 # When loop factories are configured, resolve the loop factory515 # fixture early so that a factory variant change cascades cache516 # invalidation before any async fixture checks its cache.517 hook_caller = self.config.hook.pytest_asyncio_loop_factories518 if hook_caller.get_hookimpls():519 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)520> return super().setup()521 ^^^^^^^^^^^^^^^522523/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 524_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 525/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:926: in pytest_fixture_setup526 return (yield)527 ^^^^^528nixbot/tests/conftest.py:33: in postgres_dsn529 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:530 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^531/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__532 return next(self.gen)533 ^^^^^^^^^^^^^^534_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 535536tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...atch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')537dbname = 'orchestrator'538539 @contextlib.contextmanager540 def ephemeral_postgres(541 tmp_path_factory: pytest.TempPathFactory, dbname: str542 ) -> Iterator[str]:543 """Throwaway Postgres on a unix socket with migrations applied."""544 datadir = tmp_path_factory.mktemp("pgdata")545 sockdir = tmp_path_factory.mktemp("pgsock")546 subprocess.run( # noqa: S603547 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],548 check=True,549 capture_output=True,550 )551 proc = subprocess.Popen( # noqa: S603552 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],553 stdout=subprocess.DEVNULL,554 stderr=subprocess.DEVNULL,555 )556 try:557 deadline = time.monotonic() + 30558 while (559 subprocess.run( # noqa: S603560 ["pg_isready", "-h", str(sockdir), "-U", "test"],561 check=False,562 capture_output=True,563 ).returncode564 != 0565 ):566 # The socket appears before recovery finishes; createdb would567 # fail with "the database system is starting up".568 if time.monotonic() > deadline:569 msg = "postgres did not start"570> raise RuntimeError(msg)571E RuntimeError: postgres did not start572573nixbot/tests/support.py:319: RuntimeError574__________________ ERROR at setup of test_failure_aggregation __________________575[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14576577self = <Coroutine test_failure_aggregation>578579 def setup(self) -> None:580 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"581 if runner_fixture_id not in self.fixturenames:582 self.fixturenames.append(runner_fixture_id)583 # When loop factories are configured, resolve the loop factory584 # fixture early so that a factory variant change cascades cache585 # invalidation before any async fixture checks its cache.586 hook_caller = self.config.hook.pytest_asyncio_loop_factories587 if hook_caller.get_hookimpls():588 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)589> return super().setup()590 ^^^^^^^^^^^^^^^591592/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 593_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 594nixbot/tests/conftest.py:33: in postgres_dsn595 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:596 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^597/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__598 return next(self.gen)599 ^^^^^^^^^^^^^^600_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 601602tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...atch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')603dbname = 'orchestrator'604605 @contextlib.contextmanager606 def ephemeral_postgres(607 tmp_path_factory: pytest.TempPathFactory, dbname: str608 ) -> Iterator[str]:609 """Throwaway Postgres on a unix socket with migrations applied."""610 datadir = tmp_path_factory.mktemp("pgdata")611 sockdir = tmp_path_factory.mktemp("pgsock")612 subprocess.run( # noqa: S603613 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],614 check=True,615 capture_output=True,616 )617 proc = subprocess.Popen( # noqa: S603618 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],619 stdout=subprocess.DEVNULL,620 stderr=subprocess.DEVNULL,621 )622 try:623 deadline = time.monotonic() + 30624 while (625 subprocess.run( # noqa: S603626 ["pg_isready", "-h", str(sockdir), "-U", "test"],627 check=False,628 capture_output=True,629 ).returncode630 != 0631 ):632 # The socket appears before recovery finishes; createdb would633 # fail with "the database system is starting up".634 if time.monotonic() > deadline:635 msg = "postgres did not start"636> raise RuntimeError(msg)637E RuntimeError: postgres did not start638639nixbot/tests/support.py:319: RuntimeError640___________ ERROR at setup of test_resume_skips_terminal_attributes ____________641[gw20] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14642643self = <Coroutine test_resume_skips_terminal_attributes>644645 def setup(self) -> None:646 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"647 if runner_fixture_id not in self.fixturenames:648 self.fixturenames.append(runner_fixture_id)649 # When loop factories are configured, resolve the loop factory650 # fixture early so that a factory variant change cascades cache651 # invalidation before any async fixture checks its cache.652 hook_caller = self.config.hook.pytest_asyncio_loop_factories653 if hook_caller.get_hookimpls():654 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)655> return super().setup()656 ^^^^^^^^^^^^^^^657658/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 659_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 660/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:926: in pytest_fixture_setup661 return (yield)662 ^^^^^663nixbot/tests/conftest.py:33: in postgres_dsn664 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:665 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^666/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__667 return next(self.gen)668 ^^^^^^^^^^^^^^669_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 670671tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...tch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw20'), _retention_count=3, _retention_policy='all')672dbname = 'recovery'673674 @contextlib.contextmanager675 def ephemeral_postgres(676 tmp_path_factory: pytest.TempPathFactory, dbname: str677 ) -> Iterator[str]:678 """Throwaway Postgres on a unix socket with migrations applied."""679 datadir = tmp_path_factory.mktemp("pgdata")680 sockdir = tmp_path_factory.mktemp("pgsock")681 subprocess.run( # noqa: S603682 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],683 check=True,684 capture_output=True,685 )686 proc = subprocess.Popen( # noqa: S603687 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],688 stdout=subprocess.DEVNULL,689 stderr=subprocess.DEVNULL,690 )691 try:692 deadline = time.monotonic() + 30693 while (694 subprocess.run( # noqa: S603695 ["pg_isready", "-h", str(sockdir), "-U", "test"],696 check=False,697 capture_output=True,698 ).returncode699 != 0700 ):701 # The socket appears before recovery finishes; createdb would702 # fail with "the database system is starting up".703 if time.monotonic() > deadline:704 msg = "postgres did not start"705> raise RuntimeError(msg)706E RuntimeError: postgres did not start707708nixbot/tests/support.py:319: RuntimeError709____________________ ERROR at setup of test_tree_hash_reuse ____________________710[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14711712self = <Coroutine test_tree_hash_reuse>713714 def setup(self) -> None:715 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"716 if runner_fixture_id not in self.fixturenames:717 self.fixturenames.append(runner_fixture_id)718 # When loop factories are configured, resolve the loop factory719 # fixture early so that a factory variant change cascades cache720 # invalidation before any async fixture checks its cache.721 hook_caller = self.config.hook.pytest_asyncio_loop_factories722 if hook_caller.get_hookimpls():723 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)724> return super().setup()725 ^^^^^^^^^^^^^^^726727/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 728_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 729nixbot/tests/conftest.py:33: in postgres_dsn730 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:731 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^732/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__733 return next(self.gen)734 ^^^^^^^^^^^^^^735_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 736737tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...atch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')738dbname = 'orchestrator'739740 @contextlib.contextmanager741 def ephemeral_postgres(742 tmp_path_factory: pytest.TempPathFactory, dbname: str743 ) -> Iterator[str]:744 """Throwaway Postgres on a unix socket with migrations applied."""745 datadir = tmp_path_factory.mktemp("pgdata")746 sockdir = tmp_path_factory.mktemp("pgsock")747 subprocess.run( # noqa: S603748 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],749 check=True,750 capture_output=True,751 )752 proc = subprocess.Popen( # noqa: S603753 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],754 stdout=subprocess.DEVNULL,755 stderr=subprocess.DEVNULL,756 )757 try:758 deadline = time.monotonic() + 30759 while (760 subprocess.run( # noqa: S603761 ["pg_isready", "-h", str(sockdir), "-U", "test"],762 check=False,763 capture_output=True,764 ).returncode765 != 0766 ):767 # The socket appears before recovery finishes; createdb would768 # fail with "the database system is starting up".769 if time.monotonic() > deadline:770 msg = "postgres did not start"771> raise RuntimeError(msg)772E RuntimeError: postgres did not start773774nixbot/tests/support.py:319: RuntimeError775____________ ERROR at setup of test_eval_reuse_from_cancelled_build ____________776[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14777778self = <Coroutine test_eval_reuse_from_cancelled_build>779780 def setup(self) -> None:781 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"782 if runner_fixture_id not in self.fixturenames:783 self.fixturenames.append(runner_fixture_id)784 # When loop factories are configured, resolve the loop factory785 # fixture early so that a factory variant change cascades cache786 # invalidation before any async fixture checks its cache.787 hook_caller = self.config.hook.pytest_asyncio_loop_factories788 if hook_caller.get_hookimpls():789 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)790> return super().setup()791 ^^^^^^^^^^^^^^^792793/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 794_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 795nixbot/tests/conftest.py:33: in postgres_dsn796 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:797 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^798/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__799 return next(self.gen)800 ^^^^^^^^^^^^^^801_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 802803tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...atch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')804dbname = 'orchestrator'805806 @contextlib.contextmanager807 def ephemeral_postgres(808 tmp_path_factory: pytest.TempPathFactory, dbname: str809 ) -> Iterator[str]:810 """Throwaway Postgres on a unix socket with migrations applied."""811 datadir = tmp_path_factory.mktemp("pgdata")812 sockdir = tmp_path_factory.mktemp("pgsock")813 subprocess.run( # noqa: S603814 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],815 check=True,816 capture_output=True,817 )818 proc = subprocess.Popen( # noqa: S603819 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],820 stdout=subprocess.DEVNULL,821 stderr=subprocess.DEVNULL,822 )823 try:824 deadline = time.monotonic() + 30825 while (826 subprocess.run( # noqa: S603827 ["pg_isready", "-h", str(sockdir), "-U", "test"],828 check=False,829 capture_output=True,830 ).returncode831 != 0832 ):833 # The socket appears before recovery finishes; createdb would834 # fail with "the database system is starting up".835 if time.monotonic() > deadline:836 msg = "postgres did not start"837> raise RuntimeError(msg)838E RuntimeError: postgres did not start839840nixbot/tests/support.py:319: RuntimeError841__________________ ERROR at setup of test_match_skip_and_run ___________________842[gw16] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14843844self = <Coroutine test_match_skip_and_run>845846 def setup(self) -> None:847 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"848 if runner_fixture_id not in self.fixturenames:849 self.fixturenames.append(runner_fixture_id)850 # When loop factories are configured, resolve the loop factory851 # fixture early so that a factory variant change cascades cache852 # invalidation before any async fixture checks its cache.853 hook_caller = self.config.hook.pytest_asyncio_loop_factories854 if hook_caller.get_hookimpls():855 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)856> return super().setup()857 ^^^^^^^^^^^^^^^858859/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 860_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 861/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:926: in pytest_fixture_setup862 return (yield)863 ^^^^^864nixbot/tests/conftest.py:33: in postgres_dsn865 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:866 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^867/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__868 return next(self.gen)869 ^^^^^^^^^^^^^^870_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 871872tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...tch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw16'), _retention_count=3, _retention_policy='all')873dbname = 'deliver'874875 @contextlib.contextmanager876 def ephemeral_postgres(877 tmp_path_factory: pytest.TempPathFactory, dbname: str878 ) -> Iterator[str]:879 """Throwaway Postgres on a unix socket with migrations applied."""880 datadir = tmp_path_factory.mktemp("pgdata")881 sockdir = tmp_path_factory.mktemp("pgsock")882 subprocess.run( # noqa: S603883 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],884 check=True,885 capture_output=True,886 )887 proc = subprocess.Popen( # noqa: S603888 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],889 stdout=subprocess.DEVNULL,890 stderr=subprocess.DEVNULL,891 )892 try:893 deadline = time.monotonic() + 30894 while (895 subprocess.run( # noqa: S603896 ["pg_isready", "-h", str(sockdir), "-U", "test"],897 check=False,898 capture_output=True,899 ).returncode900 != 0901 ):902 # The socket appears before recovery finishes; createdb would903 # fail with "the database system is starting up".904 if time.monotonic() > deadline:905 msg = "postgres did not start"906> raise RuntimeError(msg)907E RuntimeError: postgres did not start908909nixbot/tests/support.py:319: RuntimeError910___________ ERROR at setup of test_eval_reuse_skipped_when_drvs_gone ___________911[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14912913self = <Coroutine test_eval_reuse_skipped_when_drvs_gone>914915 def setup(self) -> None:916 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"917 if runner_fixture_id not in self.fixturenames:918 self.fixturenames.append(runner_fixture_id)919 # When loop factories are configured, resolve the loop factory920 # fixture early so that a factory variant change cascades cache921 # invalidation before any async fixture checks its cache.922 hook_caller = self.config.hook.pytest_asyncio_loop_factories923 if hook_caller.get_hookimpls():924 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)925> return super().setup()926 ^^^^^^^^^^^^^^^927928/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 929_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 930nixbot/tests/conftest.py:33: in postgres_dsn931 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:932 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^933/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__934 return next(self.gen)935 ^^^^^^^^^^^^^^936_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 937938tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...atch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')939dbname = 'orchestrator'940941 @contextlib.contextmanager942 def ephemeral_postgres(943 tmp_path_factory: pytest.TempPathFactory, dbname: str944 ) -> Iterator[str]:945 """Throwaway Postgres on a unix socket with migrations applied."""946 datadir = tmp_path_factory.mktemp("pgdata")947 sockdir = tmp_path_factory.mktemp("pgsock")948 subprocess.run( # noqa: S603949 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],950 check=True,951 capture_output=True,952 )953 proc = subprocess.Popen( # noqa: S603954 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],955 stdout=subprocess.DEVNULL,956 stderr=subprocess.DEVNULL,957 )958 try:959 deadline = time.monotonic() + 30960 while (961 subprocess.run( # noqa: S603962 ["pg_isready", "-h", str(sockdir), "-U", "test"],963 check=False,964 capture_output=True,965 ).returncode966 != 0967 ):968 # The socket appears before recovery finishes; createdb would969 # fail with "the database system is starting up".970 if time.monotonic() > deadline:971 msg = "postgres did not start"972> raise RuntimeError(msg)973E RuntimeError: postgres did not start974975nixbot/tests/support.py:319: RuntimeError976_________________ ERROR at setup of test_settle_already_built __________________977[gw20] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14978979self = <Coroutine test_settle_already_built>980981 def setup(self) -> None:982 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"983 if runner_fixture_id not in self.fixturenames:984 self.fixturenames.append(runner_fixture_id)985 # When loop factories are configured, resolve the loop factory986 # fixture early so that a factory variant change cascades cache987 # invalidation before any async fixture checks its cache.988 hook_caller = self.config.hook.pytest_asyncio_loop_factories989 if hook_caller.get_hookimpls():990 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)991> return super().setup()992 ^^^^^^^^^^^^^^^993994/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 995_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 996nixbot/tests/conftest.py:33: in postgres_dsn997 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:998 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^999/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1000 return next(self.gen)1001 ^^^^^^^^^^^^^^1002_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10031004tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...tch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw20'), _retention_count=3, _retention_policy='all')1005dbname = 'recovery'10061007 @contextlib.contextmanager1008 def ephemeral_postgres(1009 tmp_path_factory: pytest.TempPathFactory, dbname: str1010 ) -> Iterator[str]:1011 """Throwaway Postgres on a unix socket with migrations applied."""1012 datadir = tmp_path_factory.mktemp("pgdata")1013 sockdir = tmp_path_factory.mktemp("pgsock")1014 subprocess.run( # noqa: S6031015 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1016 check=True,1017 capture_output=True,1018 )1019 proc = subprocess.Popen( # noqa: S6031020 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1021 stdout=subprocess.DEVNULL,1022 stderr=subprocess.DEVNULL,1023 )1024 try:1025 deadline = time.monotonic() + 301026 while (1027 subprocess.run( # noqa: S6031028 ["pg_isready", "-h", str(sockdir), "-U", "test"],1029 check=False,1030 capture_output=True,1031 ).returncode1032 != 01033 ):1034 # The socket appears before recovery finishes; createdb would1035 # fail with "the database system is starting up".1036 if time.monotonic() > deadline:1037 msg = "postgres did not start"1038> raise RuntimeError(msg)1039E RuntimeError: postgres did not start10401041nixbot/tests/support.py:319: RuntimeError1042___________ ERROR at setup of test_permission_denied_records_reason ____________1043[gw16] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1410441045self = <Coroutine test_permission_denied_records_reason>10461047 def setup(self) -> None:1048 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1049 if runner_fixture_id not in self.fixturenames:1050 self.fixturenames.append(runner_fixture_id)1051 # When loop factories are configured, resolve the loop factory1052 # fixture early so that a factory variant change cascades cache1053 # invalidation before any async fixture checks its cache.1054 hook_caller = self.config.hook.pytest_asyncio_loop_factories1055 if hook_caller.get_hookimpls():1056 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1057> return super().setup()1058 ^^^^^^^^^^^^^^^10591060/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1061_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1062nixbot/tests/conftest.py:33: in postgres_dsn1063 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1064 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1065/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1066 return next(self.gen)1067 ^^^^^^^^^^^^^^1068_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10691070tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...tch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw16'), _retention_count=3, _retention_policy='all')1071dbname = 'deliver'10721073 @contextlib.contextmanager1074 def ephemeral_postgres(1075 tmp_path_factory: pytest.TempPathFactory, dbname: str1076 ) -> Iterator[str]:1077 """Throwaway Postgres on a unix socket with migrations applied."""1078 datadir = tmp_path_factory.mktemp("pgdata")1079 sockdir = tmp_path_factory.mktemp("pgsock")1080 subprocess.run( # noqa: S6031081 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1082 check=True,1083 capture_output=True,1084 )1085 proc = subprocess.Popen( # noqa: S6031086 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1087 stdout=subprocess.DEVNULL,1088 stderr=subprocess.DEVNULL,1089 )1090 try:1091 deadline = time.monotonic() + 301092 while (1093 subprocess.run( # noqa: S6031094 ["pg_isready", "-h", str(sockdir), "-U", "test"],1095 check=False,1096 capture_output=True,1097 ).returncode1098 != 01099 ):1100 # The socket appears before recovery finishes; createdb would1101 # fail with "the database system is starting up".1102 if time.monotonic() > deadline:1103 msg = "postgres did not start"1104> raise RuntimeError(msg)1105E RuntimeError: postgres did not start11061107nixbot/tests/support.py:319: RuntimeError1108__________ ERROR at setup of test_main_push_promotes_reused_pr_build ___________1109[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1411101111self = <Coroutine test_main_push_promotes_reused_pr_build>11121113 def setup(self) -> None:1114 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1115 if runner_fixture_id not in self.fixturenames:1116 self.fixturenames.append(runner_fixture_id)1117 # When loop factories are configured, resolve the loop factory1118 # fixture early so that a factory variant change cascades cache1119 # invalidation before any async fixture checks its cache.1120 hook_caller = self.config.hook.pytest_asyncio_loop_factories1121 if hook_caller.get_hookimpls():1122 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1123> return super().setup()1124 ^^^^^^^^^^^^^^^11251126/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1127_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1128nixbot/tests/conftest.py:33: in postgres_dsn1129 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1130 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1131/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1132 return next(self.gen)1133 ^^^^^^^^^^^^^^1134_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 11351136tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...atch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')1137dbname = 'orchestrator'11381139 @contextlib.contextmanager1140 def ephemeral_postgres(1141 tmp_path_factory: pytest.TempPathFactory, dbname: str1142 ) -> Iterator[str]:1143 """Throwaway Postgres on a unix socket with migrations applied."""1144 datadir = tmp_path_factory.mktemp("pgdata")1145 sockdir = tmp_path_factory.mktemp("pgsock")1146 subprocess.run( # noqa: S6031147 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1148 check=True,1149 capture_output=True,1150 )1151 proc = subprocess.Popen( # noqa: S6031152 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1153 stdout=subprocess.DEVNULL,1154 stderr=subprocess.DEVNULL,1155 )1156 try:1157 deadline = time.monotonic() + 301158 while (1159 subprocess.run( # noqa: S6031160 ["pg_isready", "-h", str(sockdir), "-U", "test"],1161 check=False,1162 capture_output=True,1163 ).returncode1164 != 01165 ):1166 # The socket appears before recovery finishes; createdb would1167 # fail with "the database system is starting up".1168 if time.monotonic() > deadline:1169 msg = "postgres did not start"1170> raise RuntimeError(msg)1171E RuntimeError: postgres did not start11721173nixbot/tests/support.py:319: RuntimeError1174___________________ ERROR at setup of test_retention_cleanup ___________________1175[gw20] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1411761177self = <Coroutine test_retention_cleanup>11781179 def setup(self) -> None:1180 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1181 if runner_fixture_id not in self.fixturenames:1182 self.fixturenames.append(runner_fixture_id)1183 # When loop factories are configured, resolve the loop factory1184 # fixture early so that a factory variant change cascades cache1185 # invalidation before any async fixture checks its cache.1186 hook_caller = self.config.hook.pytest_asyncio_loop_factories1187 if hook_caller.get_hookimpls():1188 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1189> return super().setup()1190 ^^^^^^^^^^^^^^^11911192/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1193_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1194nixbot/tests/conftest.py:33: in postgres_dsn1195 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1196 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1197/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1198 return next(self.gen)1199 ^^^^^^^^^^^^^^1200_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 12011202tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...tch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw20'), _retention_count=3, _retention_policy='all')1203dbname = 'recovery'12041205 @contextlib.contextmanager1206 def ephemeral_postgres(1207 tmp_path_factory: pytest.TempPathFactory, dbname: str1208 ) -> Iterator[str]:1209 """Throwaway Postgres on a unix socket with migrations applied."""1210 datadir = tmp_path_factory.mktemp("pgdata")1211 sockdir = tmp_path_factory.mktemp("pgsock")1212 subprocess.run( # noqa: S6031213 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1214 check=True,1215 capture_output=True,1216 )1217 proc = subprocess.Popen( # noqa: S6031218 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1219 stdout=subprocess.DEVNULL,1220 stderr=subprocess.DEVNULL,1221 )1222 try:1223 deadline = time.monotonic() + 301224 while (1225 subprocess.run( # noqa: S6031226 ["pg_isready", "-h", str(sockdir), "-U", "test"],1227 check=False,1228 capture_output=True,1229 ).returncode1230 != 01231 ):1232 # The socket appears before recovery finishes; createdb would1233 # fail with "the database system is starting up".1234 if time.monotonic() > deadline:1235 msg = "postgres did not start"1236> raise RuntimeError(msg)1237E RuntimeError: postgres did not start12381239nixbot/tests/support.py:319: RuntimeError1240__________________ ERROR at setup of test_modified_files_gate __________________1241[gw16] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1412421243self = <Coroutine test_modified_files_gate>12441245 def setup(self) -> None:1246 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1247 if runner_fixture_id not in self.fixturenames:1248 self.fixturenames.append(runner_fixture_id)1249 # When loop factories are configured, resolve the loop factory1250 # fixture early so that a factory variant change cascades cache1251 # invalidation before any async fixture checks its cache.1252 hook_caller = self.config.hook.pytest_asyncio_loop_factories1253 if hook_caller.get_hookimpls():1254 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1255> return super().setup()1256 ^^^^^^^^^^^^^^^12571258/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1259_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1260nixbot/tests/conftest.py:33: in postgres_dsn1261 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1262 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1263/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1264 return next(self.gen)1265 ^^^^^^^^^^^^^^1266_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 12671268tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...tch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw16'), _retention_count=3, _retention_policy='all')1269dbname = 'deliver'12701271 @contextlib.contextmanager1272 def ephemeral_postgres(1273 tmp_path_factory: pytest.TempPathFactory, dbname: str1274 ) -> Iterator[str]:1275 """Throwaway Postgres on a unix socket with migrations applied."""1276 datadir = tmp_path_factory.mktemp("pgdata")1277 sockdir = tmp_path_factory.mktemp("pgsock")1278 subprocess.run( # noqa: S6031279 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1280 check=True,1281 capture_output=True,1282 )1283 proc = subprocess.Popen( # noqa: S6031284 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1285 stdout=subprocess.DEVNULL,1286 stderr=subprocess.DEVNULL,1287 )1288 try:1289 deadline = time.monotonic() + 301290 while (1291 subprocess.run( # noqa: S6031292 ["pg_isready", "-h", str(sockdir), "-U", "test"],1293 check=False,1294 capture_output=True,1295 ).returncode1296 != 01297 ):1298 # The socket appears before recovery finishes; createdb would1299 # fail with "the database system is starting up".1300 if time.monotonic() > deadline:1301 msg = "postgres did not start"1302> raise RuntimeError(msg)1303E RuntimeError: postgres did not start13041305nixbot/tests/support.py:319: RuntimeError1306______________ ERROR at setup of test_merge_conflict_fails_build _______________1307[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1413081309self = <Coroutine test_merge_conflict_fails_build>13101311 def setup(self) -> None:1312 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1313 if runner_fixture_id not in self.fixturenames:1314 self.fixturenames.append(runner_fixture_id)1315 # When loop factories are configured, resolve the loop factory1316 # fixture early so that a factory variant change cascades cache1317 # invalidation before any async fixture checks its cache.1318 hook_caller = self.config.hook.pytest_asyncio_loop_factories1319 if hook_caller.get_hookimpls():1320 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1321> return super().setup()1322 ^^^^^^^^^^^^^^^13231324/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1325_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1326nixbot/tests/conftest.py:33: in postgres_dsn1327 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1328 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1329/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1330 return next(self.gen)1331 ^^^^^^^^^^^^^^1332_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 13331334tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...atch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')1335dbname = 'orchestrator'13361337 @contextlib.contextmanager1338 def ephemeral_postgres(1339 tmp_path_factory: pytest.TempPathFactory, dbname: str1340 ) -> Iterator[str]:1341 """Throwaway Postgres on a unix socket with migrations applied."""1342 datadir = tmp_path_factory.mktemp("pgdata")1343 sockdir = tmp_path_factory.mktemp("pgsock")1344 subprocess.run( # noqa: S6031345 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1346 check=True,1347 capture_output=True,1348 )1349 proc = subprocess.Popen( # noqa: S6031350 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1351 stdout=subprocess.DEVNULL,1352 stderr=subprocess.DEVNULL,1353 )1354 try:1355 deadline = time.monotonic() + 301356 while (1357 subprocess.run( # noqa: S6031358 ["pg_isready", "-h", str(sockdir), "-U", "test"],1359 check=False,1360 capture_output=True,1361 ).returncode1362 != 01363 ):1364 # The socket appears before recovery finishes; createdb would1365 # fail with "the database system is starting up".1366 if time.monotonic() > deadline:1367 msg = "postgres did not start"1368> raise RuntimeError(msg)1369E RuntimeError: postgres did not start13701371nixbot/tests/support.py:319: RuntimeError1372________________ ERROR at setup of test_forge_outage_is_retried ________________1373[gw16] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1413741375self = <Coroutine test_forge_outage_is_retried>13761377 def setup(self) -> None:1378 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1379 if runner_fixture_id not in self.fixturenames:1380 self.fixturenames.append(runner_fixture_id)1381 # When loop factories are configured, resolve the loop factory1382 # fixture early so that a factory variant change cascades cache1383 # invalidation before any async fixture checks its cache.1384 hook_caller = self.config.hook.pytest_asyncio_loop_factories1385 if hook_caller.get_hookimpls():1386 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1387> return super().setup()1388 ^^^^^^^^^^^^^^^13891390/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1391_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1392nixbot/tests/conftest.py:33: in postgres_dsn1393 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1394 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1395/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1396 return next(self.gen)1397 ^^^^^^^^^^^^^^1398_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 13991400tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...tch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw16'), _retention_count=3, _retention_policy='all')1401dbname = 'deliver'14021403 @contextlib.contextmanager1404 def ephemeral_postgres(1405 tmp_path_factory: pytest.TempPathFactory, dbname: str1406 ) -> Iterator[str]:1407 """Throwaway Postgres on a unix socket with migrations applied."""1408 datadir = tmp_path_factory.mktemp("pgdata")1409 sockdir = tmp_path_factory.mktemp("pgsock")1410 subprocess.run( # noqa: S6031411 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1412 check=True,1413 capture_output=True,1414 )1415 proc = subprocess.Popen( # noqa: S6031416 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1417 stdout=subprocess.DEVNULL,1418 stderr=subprocess.DEVNULL,1419 )1420 try:1421 deadline = time.monotonic() + 301422 while (1423 subprocess.run( # noqa: S6031424 ["pg_isready", "-h", str(sockdir), "-U", "test"],1425 check=False,1426 capture_output=True,1427 ).returncode1428 != 01429 ):1430 # The socket appears before recovery finishes; createdb would1431 # fail with "the database system is starting up".1432 if time.monotonic() > deadline:1433 msg = "postgres did not start"1434> raise RuntimeError(msg)1435E RuntimeError: postgres did not start14361437nixbot/tests/support.py:319: RuntimeError1438____ ERROR at setup of test_resume_includes_interrupted_building_attributes ____1439[gw20] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1414401441self = <Coroutine test_resume_includes_interrupted_building_attributes>14421443 def setup(self) -> None:1444 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1445 if runner_fixture_id not in self.fixturenames:1446 self.fixturenames.append(runner_fixture_id)1447 # When loop factories are configured, resolve the loop factory1448 # fixture early so that a factory variant change cascades cache1449 # invalidation before any async fixture checks its cache.1450 hook_caller = self.config.hook.pytest_asyncio_loop_factories1451 if hook_caller.get_hookimpls():1452 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1453> return super().setup()1454 ^^^^^^^^^^^^^^^14551456/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1457_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1458nixbot/tests/conftest.py:33: in postgres_dsn1459 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1460 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1461/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1462 return next(self.gen)1463 ^^^^^^^^^^^^^^1464_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 14651466tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...tch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw20'), _retention_count=3, _retention_policy='all')1467dbname = 'recovery'14681469 @contextlib.contextmanager1470 def ephemeral_postgres(1471 tmp_path_factory: pytest.TempPathFactory, dbname: str1472 ) -> Iterator[str]:1473 """Throwaway Postgres on a unix socket with migrations applied."""1474 datadir = tmp_path_factory.mktemp("pgdata")1475 sockdir = tmp_path_factory.mktemp("pgsock")1476 subprocess.run( # noqa: S6031477 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1478 check=True,1479 capture_output=True,1480 )1481 proc = subprocess.Popen( # noqa: S6031482 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1483 stdout=subprocess.DEVNULL,1484 stderr=subprocess.DEVNULL,1485 )1486 try:1487 deadline = time.monotonic() + 301488 while (1489 subprocess.run( # noqa: S6031490 ["pg_isready", "-h", str(sockdir), "-U", "test"],1491 check=False,1492 capture_output=True,1493 ).returncode1494 != 01495 ):1496 # The socket appears before recovery finishes; createdb would1497 # fail with "the database system is starting up".1498 if time.monotonic() > deadline:1499 msg = "postgres did not start"1500> raise RuntimeError(msg)1501E RuntimeError: postgres did not start15021503nixbot/tests/support.py:319: RuntimeError1504_____ ERROR at setup of test_build_reuse_clears_pr_author_in_other_context _____1505[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1415061507self = <Coroutine test_build_reuse_clears_pr_author_in_other_context>15081509 def setup(self) -> None:1510 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1511 if runner_fixture_id not in self.fixturenames:1512 self.fixturenames.append(runner_fixture_id)1513 # When loop factories are configured, resolve the loop factory1514 # fixture early so that a factory variant change cascades cache1515 # invalidation before any async fixture checks its cache.1516 hook_caller = self.config.hook.pytest_asyncio_loop_factories1517 if hook_caller.get_hookimpls():1518 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1519> return super().setup()1520 ^^^^^^^^^^^^^^^15211522/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1523_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1524nixbot/tests/conftest.py:33: in postgres_dsn1525 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1526 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1527/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1528 return next(self.gen)1529 ^^^^^^^^^^^^^^1530_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 15311532tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...atch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')1533dbname = 'orchestrator'15341535 @contextlib.contextmanager1536 def ephemeral_postgres(1537 tmp_path_factory: pytest.TempPathFactory, dbname: str1538 ) -> Iterator[str]:1539 """Throwaway Postgres on a unix socket with migrations applied."""1540 datadir = tmp_path_factory.mktemp("pgdata")1541 sockdir = tmp_path_factory.mktemp("pgsock")1542 subprocess.run( # noqa: S6031543 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1544 check=True,1545 capture_output=True,1546 )1547 proc = subprocess.Popen( # noqa: S6031548 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1549 stdout=subprocess.DEVNULL,1550 stderr=subprocess.DEVNULL,1551 )1552 try:1553 deadline = time.monotonic() + 301554 while (1555 subprocess.run( # noqa: S6031556 ["pg_isready", "-h", str(sockdir), "-U", "test"],1557 check=False,1558 capture_output=True,1559 ).returncode1560 != 01561 ):1562 # The socket appears before recovery finishes; createdb would1563 # fail with "the database system is starting up".1564 if time.monotonic() > deadline:1565 msg = "postgres did not start"1566> raise RuntimeError(msg)1567E RuntimeError: postgres did not start15681569nixbot/tests/support.py:319: RuntimeError1570_________________ ERROR at setup of test_forge_outage_gives_up _________________1571[gw16] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1415721573self = <Coroutine test_forge_outage_gives_up>15741575 def setup(self) -> None:1576 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1577 if runner_fixture_id not in self.fixturenames:1578 self.fixturenames.append(runner_fixture_id)1579 # When loop factories are configured, resolve the loop factory1580 # fixture early so that a factory variant change cascades cache1581 # invalidation before any async fixture checks its cache.1582 hook_caller = self.config.hook.pytest_asyncio_loop_factories1583 if hook_caller.get_hookimpls():1584 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1585> return super().setup()1586 ^^^^^^^^^^^^^^^15871588/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1589_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1590nixbot/tests/conftest.py:33: in postgres_dsn1591 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1592 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1593/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1594 return next(self.gen)1595 ^^^^^^^^^^^^^^1596_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 15971598tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...tch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw16'), _retention_count=3, _retention_policy='all')1599dbname = 'deliver'16001601 @contextlib.contextmanager1602 def ephemeral_postgres(1603 tmp_path_factory: pytest.TempPathFactory, dbname: str1604 ) -> Iterator[str]:1605 """Throwaway Postgres on a unix socket with migrations applied."""1606 datadir = tmp_path_factory.mktemp("pgdata")1607 sockdir = tmp_path_factory.mktemp("pgsock")1608 subprocess.run( # noqa: S6031609 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1610 check=True,1611 capture_output=True,1612 )1613 proc = subprocess.Popen( # noqa: S6031614 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1615 stdout=subprocess.DEVNULL,1616 stderr=subprocess.DEVNULL,1617 )1618 try:1619 deadline = time.monotonic() + 301620 while (1621 subprocess.run( # noqa: S6031622 ["pg_isready", "-h", str(sockdir), "-U", "test"],1623 check=False,1624 capture_output=True,1625 ).returncode1626 != 01627 ):1628 # The socket appears before recovery finishes; createdb would1629 # fail with "the database system is starting up".1630 if time.monotonic() > deadline:1631 msg = "postgres did not start"1632> raise RuntimeError(msg)1633E RuntimeError: postgres did not start16341635nixbot/tests/support.py:319: RuntimeError1636___________ ERROR at setup of test_retention_skips_restarted_builds ____________1637[gw20] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1416381639self = <Coroutine test_retention_skips_restarted_builds>16401641 def setup(self) -> None:1642 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1643 if runner_fixture_id not in self.fixturenames:1644 self.fixturenames.append(runner_fixture_id)1645 # When loop factories are configured, resolve the loop factory1646 # fixture early so that a factory variant change cascades cache1647 # invalidation before any async fixture checks its cache.1648 hook_caller = self.config.hook.pytest_asyncio_loop_factories1649 if hook_caller.get_hookimpls():1650 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1651> return super().setup()1652 ^^^^^^^^^^^^^^^16531654/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1655_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1656nixbot/tests/conftest.py:33: in postgres_dsn1657 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1658 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1659/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1660 return next(self.gen)1661 ^^^^^^^^^^^^^^1662_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 16631664tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...tch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw20'), _retention_count=3, _retention_policy='all')1665dbname = 'recovery'16661667 @contextlib.contextmanager1668 def ephemeral_postgres(1669 tmp_path_factory: pytest.TempPathFactory, dbname: str1670 ) -> Iterator[str]:1671 """Throwaway Postgres on a unix socket with migrations applied."""1672 datadir = tmp_path_factory.mktemp("pgdata")1673 sockdir = tmp_path_factory.mktemp("pgsock")1674 subprocess.run( # noqa: S6031675 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1676 check=True,1677 capture_output=True,1678 )1679 proc = subprocess.Popen( # noqa: S6031680 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1681 stdout=subprocess.DEVNULL,1682 stderr=subprocess.DEVNULL,1683 )1684 try:1685 deadline = time.monotonic() + 301686 while (1687 subprocess.run( # noqa: S6031688 ["pg_isready", "-h", str(sockdir), "-U", "test"],1689 check=False,1690 capture_output=True,1691 ).returncode1692 != 01693 ):1694 # The socket appears before recovery finishes; createdb would1695 # fail with "the database system is starting up".1696 if time.monotonic() > deadline:1697 msg = "postgres did not start"1698> raise RuntimeError(msg)1699E RuntimeError: postgres did not start17001701nixbot/tests/support.py:319: RuntimeError1702___ ERROR at setup of test_log_follow_finished_attr_falls_back_to_stored_log ___1703[gw14] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1417041705request = <SubRequest 'postgres_dsn' for <Function test_repo_list_and_toggle>>1706tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...tch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw14'), _retention_count=3, _retention_policy='all')17071708 @pytest.fixture(scope="module")1709 def postgres_dsn(1710 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory1711 ) -> Iterator[str]:1712 if shutil.which("initdb") is None:1713 pytest.skip("postgresql not available")1714 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")1715> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1716 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^17171718nixbot/tests/conftest.py:33: 1719_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1720/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1721 return next(self.gen)1722 ^^^^^^^^^^^^^^1723_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 17241725tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...tch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw14'), _retention_count=3, _retention_policy='all')1726dbname = 'cli'17271728 @contextlib.contextmanager1729 def ephemeral_postgres(1730 tmp_path_factory: pytest.TempPathFactory, dbname: str1731 ) -> Iterator[str]:1732 """Throwaway Postgres on a unix socket with migrations applied."""1733 datadir = tmp_path_factory.mktemp("pgdata")1734 sockdir = tmp_path_factory.mktemp("pgsock")1735 subprocess.run( # noqa: S6031736 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1737 check=True,1738 capture_output=True,1739 )1740 proc = subprocess.Popen( # noqa: S6031741 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1742 stdout=subprocess.DEVNULL,1743 stderr=subprocess.DEVNULL,1744 )1745 try:1746 deadline = time.monotonic() + 301747 while (1748 subprocess.run( # noqa: S6031749 ["pg_isready", "-h", str(sockdir), "-U", "test"],1750 check=False,1751 capture_output=True,1752 ).returncode1753 != 01754 ):1755 # The socket appears before recovery finishes; createdb would1756 # fail with "the database system is starting up".1757 if time.monotonic() > deadline:1758 msg = "postgres did not start"1759> raise RuntimeError(msg)1760E RuntimeError: postgres did not start17611762nixbot/tests/support.py:319: RuntimeError1763_________________ ERROR at setup of test_effects_started_flag __________________1764[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1417651766self = <Coroutine test_effects_started_flag>17671768 def setup(self) -> None:1769 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1770 if runner_fixture_id not in self.fixturenames:1771 self.fixturenames.append(runner_fixture_id)1772 # When loop factories are configured, resolve the loop factory1773 # fixture early so that a factory variant change cascades cache1774 # invalidation before any async fixture checks its cache.1775 hook_caller = self.config.hook.pytest_asyncio_loop_factories1776 if hook_caller.get_hookimpls():1777 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1778> return super().setup()1779 ^^^^^^^^^^^^^^^17801781/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1782_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1783nixbot/tests/conftest.py:33: in postgres_dsn1784 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1785 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1786/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1787 return next(self.gen)1788 ^^^^^^^^^^^^^^1789_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 17901791tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...atch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')1792dbname = 'orchestrator'17931794 @contextlib.contextmanager1795 def ephemeral_postgres(1796 tmp_path_factory: pytest.TempPathFactory, dbname: str1797 ) -> Iterator[str]:1798 """Throwaway Postgres on a unix socket with migrations applied."""1799 datadir = tmp_path_factory.mktemp("pgdata")1800 sockdir = tmp_path_factory.mktemp("pgsock")1801 subprocess.run( # noqa: S6031802 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1803 check=True,1804 capture_output=True,1805 )1806 proc = subprocess.Popen( # noqa: S6031807 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1808 stdout=subprocess.DEVNULL,1809 stderr=subprocess.DEVNULL,1810 )1811 try:1812 deadline = time.monotonic() + 301813 while (1814 subprocess.run( # noqa: S6031815 ["pg_isready", "-h", str(sockdir), "-U", "test"],1816 check=False,1817 capture_output=True,1818 ).returncode1819 != 01820 ):1821 # The socket appears before recovery finishes; createdb would1822 # fail with "the database system is starting up".1823 if time.monotonic() > deadline:1824 msg = "postgres did not start"1825> raise RuntimeError(msg)1826E RuntimeError: postgres did not start18271828nixbot/tests/support.py:319: RuntimeError1829_____ ERROR at setup of test_lock_shared_with_push_effect_and_supersession _____1830[gw16] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1418311832self = <Coroutine test_lock_shared_with_push_effect_and_supersession>18331834 def setup(self) -> None:1835 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1836 if runner_fixture_id not in self.fixturenames:1837 self.fixturenames.append(runner_fixture_id)1838 # When loop factories are configured, resolve the loop factory1839 # fixture early so that a factory variant change cascades cache1840 # invalidation before any async fixture checks its cache.1841 hook_caller = self.config.hook.pytest_asyncio_loop_factories1842 if hook_caller.get_hookimpls():1843 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1844> return super().setup()1845 ^^^^^^^^^^^^^^^18461847/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1848_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1849nixbot/tests/conftest.py:33: in postgres_dsn1850 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1851 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1852/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1853 return next(self.gen)1854 ^^^^^^^^^^^^^^1855_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 18561857tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...tch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw16'), _retention_count=3, _retention_policy='all')1858dbname = 'deliver'18591860 @contextlib.contextmanager1861 def ephemeral_postgres(1862 tmp_path_factory: pytest.TempPathFactory, dbname: str1863 ) -> Iterator[str]:1864 """Throwaway Postgres on a unix socket with migrations applied."""1865 datadir = tmp_path_factory.mktemp("pgdata")1866 sockdir = tmp_path_factory.mktemp("pgsock")1867 subprocess.run( # noqa: S6031868 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1869 check=True,1870 capture_output=True,1871 )1872 proc = subprocess.Popen( # noqa: S6031873 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1874 stdout=subprocess.DEVNULL,1875 stderr=subprocess.DEVNULL,1876 )1877 try:1878 deadline = time.monotonic() + 301879 while (1880 subprocess.run( # noqa: S6031881 ["pg_isready", "-h", str(sockdir), "-U", "test"],1882 check=False,1883 capture_output=True,1884 ).returncode1885 != 01886 ):1887 # The socket appears before recovery finishes; createdb would1888 # fail with "the database system is starting up".1889 if time.monotonic() > deadline:1890 msg = "postgres did not start"1891> raise RuntimeError(msg)1892E RuntimeError: postgres did not start18931894nixbot/tests/support.py:319: RuntimeError1895_ ERROR at setup of test_replace_schedules_preserves_last_run_for_unchanged_spec _1896[gw17] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1418971898self = <Coroutine test_replace_schedules_preserves_last_run_for_unchanged_spec>18991900 def setup(self) -> None:1901 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1902 if runner_fixture_id not in self.fixturenames:1903 self.fixturenames.append(runner_fixture_id)1904 # When loop factories are configured, resolve the loop factory1905 # fixture early so that a factory variant change cascades cache1906 # invalidation before any async fixture checks its cache.1907 hook_caller = self.config.hook.pytest_asyncio_loop_factories1908 if hook_caller.get_hookimpls():1909 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1910> return super().setup()1911 ^^^^^^^^^^^^^^^19121913/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1914_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1915/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:926: in pytest_fixture_setup1916 return (yield)1917 ^^^^^1918nixbot/tests/conftest.py:33: in postgres_dsn1919 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1920 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1921/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1922 return next(self.gen)1923 ^^^^^^^^^^^^^^1924_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 19251926tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...tch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw17'), _retention_count=3, _retention_policy='all')1927dbname = 'schedules'19281929 @contextlib.contextmanager1930 def ephemeral_postgres(1931 tmp_path_factory: pytest.TempPathFactory, dbname: str1932 ) -> Iterator[str]:1933 """Throwaway Postgres on a unix socket with migrations applied."""1934 datadir = tmp_path_factory.mktemp("pgdata")1935 sockdir = tmp_path_factory.mktemp("pgsock")1936 subprocess.run( # noqa: S6031937 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1938 check=True,1939 capture_output=True,1940 )1941 proc = subprocess.Popen( # noqa: S6031942 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1943 stdout=subprocess.DEVNULL,1944 stderr=subprocess.DEVNULL,1945 )1946 try:1947 deadline = time.monotonic() + 301948 while (1949 subprocess.run( # noqa: S6031950 ["pg_isready", "-h", str(sockdir), "-U", "test"],1951 check=False,1952 capture_output=True,1953 ).returncode1954 != 01955 ):1956 # The socket appears before recovery finishes; createdb would1957 # fail with "the database system is starting up".1958 if time.monotonic() > deadline:1959 msg = "postgres did not start"1960> raise RuntimeError(msg)1961E RuntimeError: postgres did not start19621963nixbot/tests/support.py:319: RuntimeError1964______________ ERROR at setup of test_anonymous_sees_public_only _______________1965[gw13] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1419661967fixturedef = <FixtureDef argname='postgres_dsn' scope='module' baseid='nixbot/tests'>1968request = <SubRequest 'postgres_dsn' for <Function test_anonymous_sees_public_only>>19691970 @pytest.hookimpl(wrapper=True)1971 def pytest_fixture_setup(fixturedef: FixtureDef, request) -> object | None:1972 if (1973 fixturedef.argname == "event_loop_policy"1974 and fixturedef.func.__module__ != __name__1975 ):1976 warnings.warn(1977 PytestDeprecationWarning(_EVENT_LOOP_POLICY_FIXTURE_DEPRECATION_WARNING),1978 )1979 asyncio_mode = _get_asyncio_mode(request.config)1980 if not _is_asyncio_fixture_function(fixturedef.func):1981 if asyncio_mode == Mode.STRICT:1982 # Ignore async fixtures without explicit asyncio mark in strict mode1983 # This applies to pytest_trio fixtures, for example1984 return (yield)1985 if not _is_coroutine_or_asyncgen(fixturedef.func):1986> return (yield)1987 ^^^^^19881989/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:926: 1990_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1991nixbot/tests/conftest.py:33: in postgres_dsn1992 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1993 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1994/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1995 return next(self.gen)1996 ^^^^^^^^^^^^^^1997_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 19981999tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...tch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw13'), _retention_count=3, _retention_policy='all')2000dbname = 'visibility'loading 18,787 hidden lines…
20788 sockdir = tmp_path_factory.mktemp("pgsock")20789 subprocess.run( # noqa: S60320790 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],20791 check=True,20792 capture_output=True,20793 )20794 proc = subprocess.Popen( # noqa: S60320795 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],20796 stdout=subprocess.DEVNULL,20797 stderr=subprocess.DEVNULL,20798 )20799 try:20800 deadline = time.monotonic() + 3020801 while (20802 subprocess.run( # noqa: S60320803 ["pg_isready", "-h", str(sockdir), "-U", "test"],20804 check=False,20805 capture_output=True,20806 ).returncode20807 != 020808 ):20809 # The socket appears before recovery finishes; createdb would20810 # fail with "the database system is starting up".20811 if time.monotonic() > deadline:20812 msg = "postgres did not start"20813> raise RuntimeError(msg)20814E RuntimeError: postgres did not start2081520816nixbot/tests/support.py:319: RuntimeError20817_________ ERROR at setup of test_failed_effect_reports_failure_status __________20818[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142081920820self = <Coroutine test_failed_effect_reports_failure_status>2082120822 def setup(self) -> None:20823 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"20824 if runner_fixture_id not in self.fixturenames:20825 self.fixturenames.append(runner_fixture_id)20826 # When loop factories are configured, resolve the loop factory20827 # fixture early so that a factory variant change cascades cache20828 # invalidation before any async fixture checks its cache.20829 hook_caller = self.config.hook.pytest_asyncio_loop_factories20830 if hook_caller.get_hookimpls():20831 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)20832> return super().setup()20833 ^^^^^^^^^^^^^^^2083420835/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 20836_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20837nixbot/tests/conftest.py:33: in postgres_dsn20838 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:20839 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^20840/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__20841 return next(self.gen)20842 ^^^^^^^^^^^^^^20843_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2084420845tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...atch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')20846dbname = 'orchestrator'2084720848 @contextlib.contextmanager20849 def ephemeral_postgres(20850 tmp_path_factory: pytest.TempPathFactory, dbname: str20851 ) -> Iterator[str]:20852 """Throwaway Postgres on a unix socket with migrations applied."""20853 datadir = tmp_path_factory.mktemp("pgdata")20854 sockdir = tmp_path_factory.mktemp("pgsock")20855 subprocess.run( # noqa: S60320856 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],20857 check=True,20858 capture_output=True,20859 )20860 proc = subprocess.Popen( # noqa: S60320861 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],20862 stdout=subprocess.DEVNULL,20863 stderr=subprocess.DEVNULL,20864 )20865 try:20866 deadline = time.monotonic() + 3020867 while (20868 subprocess.run( # noqa: S60320869 ["pg_isready", "-h", str(sockdir), "-U", "test"],20870 check=False,20871 capture_output=True,20872 ).returncode20873 != 020874 ):20875 # The socket appears before recovery finishes; createdb would20876 # fail with "the database system is starting up".20877 if time.monotonic() > deadline:20878 msg = "postgres did not start"20879> raise RuntimeError(msg)20880E RuntimeError: postgres did not start2088120882nixbot/tests/support.py:319: RuntimeError20883________ ERROR at setup of test_post_process_error_does_not_wedge_build ________20884[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142088520886self = <Coroutine test_post_process_error_does_not_wedge_build>2088720888 def setup(self) -> None:20889 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"20890 if runner_fixture_id not in self.fixturenames:20891 self.fixturenames.append(runner_fixture_id)20892 # When loop factories are configured, resolve the loop factory20893 # fixture early so that a factory variant change cascades cache20894 # invalidation before any async fixture checks its cache.20895 hook_caller = self.config.hook.pytest_asyncio_loop_factories20896 if hook_caller.get_hookimpls():20897 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)20898> return super().setup()20899 ^^^^^^^^^^^^^^^2090020901/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 20902_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20903nixbot/tests/conftest.py:33: in postgres_dsn20904 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:20905 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^20906/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__20907 return next(self.gen)20908 ^^^^^^^^^^^^^^20909_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2091020911tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...atch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')20912dbname = 'orchestrator'2091320914 @contextlib.contextmanager20915 def ephemeral_postgres(20916 tmp_path_factory: pytest.TempPathFactory, dbname: str20917 ) -> Iterator[str]:20918 """Throwaway Postgres on a unix socket with migrations applied."""20919 datadir = tmp_path_factory.mktemp("pgdata")20920 sockdir = tmp_path_factory.mktemp("pgsock")20921 subprocess.run( # noqa: S60320922 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],20923 check=True,20924 capture_output=True,20925 )20926 proc = subprocess.Popen( # noqa: S60320927 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],20928 stdout=subprocess.DEVNULL,20929 stderr=subprocess.DEVNULL,20930 )20931 try:20932 deadline = time.monotonic() + 3020933 while (20934 subprocess.run( # noqa: S60320935 ["pg_isready", "-h", str(sockdir), "-U", "test"],20936 check=False,20937 capture_output=True,20938 ).returncode20939 != 020940 ):20941 # The socket appears before recovery finishes; createdb would20942 # fail with "the database system is starting up".20943 if time.monotonic() > deadline:20944 msg = "postgres did not start"20945> raise RuntimeError(msg)20946E RuntimeError: postgres did not start2094720948nixbot/tests/support.py:319: RuntimeError20949__________ ERROR at setup of test_effect_changes_notify_build_events ___________20950[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142095120952request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>20953tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...atch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2095420955 @pytest.fixture(scope="module")20956 def postgres_dsn(20957 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory20958 ) -> Iterator[str]:20959 if shutil.which("initdb") is None:20960 pytest.skip("postgresql not available")20961 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")20962> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:20963 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2096420965nixbot/tests/conftest.py:33: 20966_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20967/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__20968 return next(self.gen)20969 ^^^^^^^^^^^^^^20970_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2097120972tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...atch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')20973dbname = 'web'2097420975 @contextlib.contextmanager20976 def ephemeral_postgres(20977 tmp_path_factory: pytest.TempPathFactory, dbname: str20978 ) -> Iterator[str]:20979 """Throwaway Postgres on a unix socket with migrations applied."""20980 datadir = tmp_path_factory.mktemp("pgdata")20981 sockdir = tmp_path_factory.mktemp("pgsock")20982 subprocess.run( # noqa: S60320983 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],20984 check=True,20985 capture_output=True,20986 )20987 proc = subprocess.Popen( # noqa: S60320988 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],20989 stdout=subprocess.DEVNULL,20990 stderr=subprocess.DEVNULL,20991 )20992 try:20993 deadline = time.monotonic() + 3020994 while (20995 subprocess.run( # noqa: S60320996 ["pg_isready", "-h", str(sockdir), "-U", "test"],20997 check=False,20998 capture_output=True,20999 ).returncode21000 != 021001 ):21002 # The socket appears before recovery finishes; createdb would21003 # fail with "the database system is starting up".21004 if time.monotonic() > deadline:21005 msg = "postgres did not start"21006> raise RuntimeError(msg)21007E RuntimeError: postgres did not start2100821009nixbot/tests/support.py:319: RuntimeError21010___________________ ERROR at setup of test_effects_state_api ___________________21011[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142101221013request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>21014tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...atch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2101521016 @pytest.fixture(scope="module")21017 def postgres_dsn(21018 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory21019 ) -> Iterator[str]:21020 if shutil.which("initdb") is None:21021 pytest.skip("postgresql not available")21022 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")21023> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21024 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2102521026nixbot/tests/conftest.py:33: 21027_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21028/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21029 return next(self.gen)21030 ^^^^^^^^^^^^^^21031_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2103221033tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...atch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')21034dbname = 'web'2103521036 @contextlib.contextmanager21037 def ephemeral_postgres(21038 tmp_path_factory: pytest.TempPathFactory, dbname: str21039 ) -> Iterator[str]:21040 """Throwaway Postgres on a unix socket with migrations applied."""21041 datadir = tmp_path_factory.mktemp("pgdata")21042 sockdir = tmp_path_factory.mktemp("pgsock")21043 subprocess.run( # noqa: S60321044 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21045 check=True,21046 capture_output=True,21047 )21048 proc = subprocess.Popen( # noqa: S60321049 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21050 stdout=subprocess.DEVNULL,21051 stderr=subprocess.DEVNULL,21052 )21053 try:21054 deadline = time.monotonic() + 3021055 while (21056 subprocess.run( # noqa: S60321057 ["pg_isready", "-h", str(sockdir), "-U", "test"],21058 check=False,21059 capture_output=True,21060 ).returncode21061 != 021062 ):21063 # The socket appears before recovery finishes; createdb would21064 # fail with "the database system is starting up".21065 if time.monotonic() > deadline:21066 msg = "postgres did not start"21067> raise RuntimeError(msg)21068E RuntimeError: postgres did not start2106921070nixbot/tests/support.py:319: RuntimeError21071_______ ERROR at setup of test_unexpected_eval_path_error_settles_build ________21072[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142107321074self = <Coroutine test_unexpected_eval_path_error_settles_build>2107521076 def setup(self) -> None:21077 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21078 if runner_fixture_id not in self.fixturenames:21079 self.fixturenames.append(runner_fixture_id)21080 # When loop factories are configured, resolve the loop factory21081 # fixture early so that a factory variant change cascades cache21082 # invalidation before any async fixture checks its cache.21083 hook_caller = self.config.hook.pytest_asyncio_loop_factories21084 if hook_caller.get_hookimpls():21085 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21086> return super().setup()21087 ^^^^^^^^^^^^^^^2108821089/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21090_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21091nixbot/tests/conftest.py:33: in postgres_dsn21092 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21093 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21094/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21095 return next(self.gen)21096 ^^^^^^^^^^^^^^21097_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2109821099tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...atch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21100dbname = 'orchestrator'2110121102 @contextlib.contextmanager21103 def ephemeral_postgres(21104 tmp_path_factory: pytest.TempPathFactory, dbname: str21105 ) -> Iterator[str]:21106 """Throwaway Postgres on a unix socket with migrations applied."""21107 datadir = tmp_path_factory.mktemp("pgdata")21108 sockdir = tmp_path_factory.mktemp("pgsock")21109 subprocess.run( # noqa: S60321110 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21111 check=True,21112 capture_output=True,21113 )21114 proc = subprocess.Popen( # noqa: S60321115 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21116 stdout=subprocess.DEVNULL,21117 stderr=subprocess.DEVNULL,21118 )21119 try:21120 deadline = time.monotonic() + 3021121 while (21122 subprocess.run( # noqa: S60321123 ["pg_isready", "-h", str(sockdir), "-U", "test"],21124 check=False,21125 capture_output=True,21126 ).returncode21127 != 021128 ):21129 # The socket appears before recovery finishes; createdb would21130 # fail with "the database system is starting up".21131 if time.monotonic() > deadline:21132 msg = "postgres did not start"21133> raise RuntimeError(msg)21134E RuntimeError: postgres did not start2113521136nixbot/tests/support.py:319: RuntimeError21137____________________ ERROR at setup of test_pr_comment_api _____________________21138[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142113921140request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>21141tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...atch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2114221143 @pytest.fixture(scope="module")21144 def postgres_dsn(21145 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory21146 ) -> Iterator[str]:21147 if shutil.which("initdb") is None:21148 pytest.skip("postgresql not available")21149 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")21150> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21151 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2115221153nixbot/tests/conftest.py:33: 21154_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21155/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21156 return next(self.gen)21157 ^^^^^^^^^^^^^^21158_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2115921160tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...atch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')21161dbname = 'web'2116221163 @contextlib.contextmanager21164 def ephemeral_postgres(21165 tmp_path_factory: pytest.TempPathFactory, dbname: str21166 ) -> Iterator[str]:21167 """Throwaway Postgres on a unix socket with migrations applied."""21168 datadir = tmp_path_factory.mktemp("pgdata")21169 sockdir = tmp_path_factory.mktemp("pgsock")21170 subprocess.run( # noqa: S60321171 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21172 check=True,21173 capture_output=True,21174 )21175 proc = subprocess.Popen( # noqa: S60321176 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21177 stdout=subprocess.DEVNULL,21178 stderr=subprocess.DEVNULL,21179 )21180 try:21181 deadline = time.monotonic() + 3021182 while (21183 subprocess.run( # noqa: S60321184 ["pg_isready", "-h", str(sockdir), "-U", "test"],21185 check=False,21186 capture_output=True,21187 ).returncode21188 != 021189 ):21190 # The socket appears before recovery finishes; createdb would21191 # fail with "the database system is starting up".21192 if time.monotonic() > deadline:21193 msg = "postgres did not start"21194> raise RuntimeError(msg)21195E RuntimeError: postgres did not start2119621197nixbot/tests/support.py:319: RuntimeError21198_________________ ERROR at setup of test_workload_identity_api _________________21199[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142120021201request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>21202tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...atch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2120321204 @pytest.fixture(scope="module")21205 def postgres_dsn(21206 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory21207 ) -> Iterator[str]:21208 if shutil.which("initdb") is None:21209 pytest.skip("postgresql not available")21210 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")21211> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21212 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2121321214nixbot/tests/conftest.py:33: 21215_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21216/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21217 return next(self.gen)21218 ^^^^^^^^^^^^^^21219_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2122021221tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...atch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')21222dbname = 'web'2122321224 @contextlib.contextmanager21225 def ephemeral_postgres(21226 tmp_path_factory: pytest.TempPathFactory, dbname: str21227 ) -> Iterator[str]:21228 """Throwaway Postgres on a unix socket with migrations applied."""21229 datadir = tmp_path_factory.mktemp("pgdata")21230 sockdir = tmp_path_factory.mktemp("pgsock")21231 subprocess.run( # noqa: S60321232 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21233 check=True,21234 capture_output=True,21235 )21236 proc = subprocess.Popen( # noqa: S60321237 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21238 stdout=subprocess.DEVNULL,21239 stderr=subprocess.DEVNULL,21240 )21241 try:21242 deadline = time.monotonic() + 3021243 while (21244 subprocess.run( # noqa: S60321245 ["pg_isready", "-h", str(sockdir), "-U", "test"],21246 check=False,21247 capture_output=True,21248 ).returncode21249 != 021250 ):21251 # The socket appears before recovery finishes; createdb would21252 # fail with "the database system is starting up".21253 if time.monotonic() > deadline:21254 msg = "postgres did not start"21255> raise RuntimeError(msg)21256E RuntimeError: postgres did not start2125721258nixbot/tests/support.py:319: RuntimeError21259____ ERROR at setup of test_reuse_empty_succeeded_build_posts_eval_success _____21260[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142126121262self = <Coroutine test_reuse_empty_succeeded_build_posts_eval_success>2126321264 def setup(self) -> None:21265 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21266 if runner_fixture_id not in self.fixturenames:21267 self.fixturenames.append(runner_fixture_id)21268 # When loop factories are configured, resolve the loop factory21269 # fixture early so that a factory variant change cascades cache21270 # invalidation before any async fixture checks its cache.21271 hook_caller = self.config.hook.pytest_asyncio_loop_factories21272 if hook_caller.get_hookimpls():21273 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21274> return super().setup()21275 ^^^^^^^^^^^^^^^2127621277/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21278_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21279nixbot/tests/conftest.py:33: in postgres_dsn21280 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21281 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21282/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21283 return next(self.gen)21284 ^^^^^^^^^^^^^^21285_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2128621287tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...atch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21288dbname = 'orchestrator'2128921290 @contextlib.contextmanager21291 def ephemeral_postgres(21292 tmp_path_factory: pytest.TempPathFactory, dbname: str21293 ) -> Iterator[str]:21294 """Throwaway Postgres on a unix socket with migrations applied."""21295 datadir = tmp_path_factory.mktemp("pgdata")21296 sockdir = tmp_path_factory.mktemp("pgsock")21297 subprocess.run( # noqa: S60321298 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21299 check=True,21300 capture_output=True,21301 )21302 proc = subprocess.Popen( # noqa: S60321303 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21304 stdout=subprocess.DEVNULL,21305 stderr=subprocess.DEVNULL,21306 )21307 try:21308 deadline = time.monotonic() + 3021309 while (21310 subprocess.run( # noqa: S60321311 ["pg_isready", "-h", str(sockdir), "-U", "test"],21312 check=False,21313 capture_output=True,21314 ).returncode21315 != 021316 ):21317 # The socket appears before recovery finishes; createdb would21318 # fail with "the database system is starting up".21319 if time.monotonic() > deadline:21320 msg = "postgres did not start"21321> raise RuntimeError(msg)21322E RuntimeError: postgres did not start2132321324nixbot/tests/support.py:319: RuntimeError21325_____________ ERROR at setup of test_logout_revokes_session_cookie _____________21326[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142132721328request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>21329tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...atch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2133021331 @pytest.fixture(scope="module")21332 def postgres_dsn(21333 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory21334 ) -> Iterator[str]:21335 if shutil.which("initdb") is None:21336 pytest.skip("postgresql not available")21337 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")21338> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21339 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2134021341nixbot/tests/conftest.py:33: 21342_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21343/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21344 return next(self.gen)21345 ^^^^^^^^^^^^^^21346_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2134721348tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...atch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')21349dbname = 'web'2135021351 @contextlib.contextmanager21352 def ephemeral_postgres(21353 tmp_path_factory: pytest.TempPathFactory, dbname: str21354 ) -> Iterator[str]:21355 """Throwaway Postgres on a unix socket with migrations applied."""21356 datadir = tmp_path_factory.mktemp("pgdata")21357 sockdir = tmp_path_factory.mktemp("pgsock")21358 subprocess.run( # noqa: S60321359 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21360 check=True,21361 capture_output=True,21362 )21363 proc = subprocess.Popen( # noqa: S60321364 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21365 stdout=subprocess.DEVNULL,21366 stderr=subprocess.DEVNULL,21367 )21368 try:21369 deadline = time.monotonic() + 3021370 while (21371 subprocess.run( # noqa: S60321372 ["pg_isready", "-h", str(sockdir), "-U", "test"],21373 check=False,21374 capture_output=True,21375 ).returncode21376 != 021377 ):21378 # The socket appears before recovery finishes; createdb would21379 # fail with "the database system is starting up".21380 if time.monotonic() > deadline:21381 msg = "postgres did not start"21382> raise RuntimeError(msg)21383E RuntimeError: postgres did not start2138421385nixbot/tests/support.py:319: RuntimeError21386__ ERROR at setup of test_stale_event_reusing_old_build_does_not_cancel_newer __21387[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142138821389self = <Coroutine test_stale_event_reusing_old_build_does_not_cancel_newer>2139021391 def setup(self) -> None:21392 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21393 if runner_fixture_id not in self.fixturenames:21394 self.fixturenames.append(runner_fixture_id)21395 # When loop factories are configured, resolve the loop factory21396 # fixture early so that a factory variant change cascades cache21397 # invalidation before any async fixture checks its cache.21398 hook_caller = self.config.hook.pytest_asyncio_loop_factories21399 if hook_caller.get_hookimpls():21400 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21401> return super().setup()21402 ^^^^^^^^^^^^^^^2140321404/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21405_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21406nixbot/tests/conftest.py:33: in postgres_dsn21407 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21408 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21409/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21410 return next(self.gen)21411 ^^^^^^^^^^^^^^21412_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2141321414tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...atch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21415dbname = 'orchestrator'2141621417 @contextlib.contextmanager21418 def ephemeral_postgres(21419 tmp_path_factory: pytest.TempPathFactory, dbname: str21420 ) -> Iterator[str]:21421 """Throwaway Postgres on a unix socket with migrations applied."""21422 datadir = tmp_path_factory.mktemp("pgdata")21423 sockdir = tmp_path_factory.mktemp("pgsock")21424 subprocess.run( # noqa: S60321425 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21426 check=True,21427 capture_output=True,21428 )21429 proc = subprocess.Popen( # noqa: S60321430 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21431 stdout=subprocess.DEVNULL,21432 stderr=subprocess.DEVNULL,21433 )21434 try:21435 deadline = time.monotonic() + 3021436 while (21437 subprocess.run( # noqa: S60321438 ["pg_isready", "-h", str(sockdir), "-U", "test"],21439 check=False,21440 capture_output=True,21441 ).returncode21442 != 021443 ):21444 # The socket appears before recovery finishes; createdb would21445 # fail with "the database system is starting up".21446 if time.monotonic() > deadline:21447 msg = "postgres did not start"21448> raise RuntimeError(msg)21449E RuntimeError: postgres did not start2145021451nixbot/tests/support.py:319: RuntimeError21452______________ ERROR at setup of test_gitlab_nested_group_routes _______________21453[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142145421455request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>21456tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...atch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2145721458 @pytest.fixture(scope="module")21459 def postgres_dsn(21460 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory21461 ) -> Iterator[str]:21462 if shutil.which("initdb") is None:21463 pytest.skip("postgresql not available")21464 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")21465> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21466 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2146721468nixbot/tests/conftest.py:33: 21469_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21470/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21471 return next(self.gen)21472 ^^^^^^^^^^^^^^21473_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2147421475tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...atch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')21476dbname = 'web'2147721478 @contextlib.contextmanager21479 def ephemeral_postgres(21480 tmp_path_factory: pytest.TempPathFactory, dbname: str21481 ) -> Iterator[str]:21482 """Throwaway Postgres on a unix socket with migrations applied."""21483 datadir = tmp_path_factory.mktemp("pgdata")21484 sockdir = tmp_path_factory.mktemp("pgsock")21485 subprocess.run( # noqa: S60321486 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21487 check=True,21488 capture_output=True,21489 )21490 proc = subprocess.Popen( # noqa: S60321491 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21492 stdout=subprocess.DEVNULL,21493 stderr=subprocess.DEVNULL,21494 )21495 try:21496 deadline = time.monotonic() + 3021497 while (21498 subprocess.run( # noqa: S60321499 ["pg_isready", "-h", str(sockdir), "-U", "test"],21500 check=False,21501 capture_output=True,21502 ).returncode21503 != 021504 ):21505 # The socket appears before recovery finishes; createdb would21506 # fail with "the database system is starting up".21507 if time.monotonic() > deadline:21508 msg = "postgres did not start"21509> raise RuntimeError(msg)21510E RuntimeError: postgres did not start2151121512nixbot/tests/support.py:319: RuntimeError21513___________ ERROR at setup of test_scheduled_run_viewer_renders_ansi ___________21514[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142151521516request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>21517tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...atch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2151821519 @pytest.fixture(scope="module")21520 def postgres_dsn(21521 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory21522 ) -> Iterator[str]:21523 if shutil.which("initdb") is None:21524 pytest.skip("postgresql not available")21525 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")21526> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21527 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2152821529nixbot/tests/conftest.py:33: 21530_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21531/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21532 return next(self.gen)21533 ^^^^^^^^^^^^^^21534_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2153521536tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...atch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')21537dbname = 'web'2153821539 @contextlib.contextmanager21540 def ephemeral_postgres(21541 tmp_path_factory: pytest.TempPathFactory, dbname: str21542 ) -> Iterator[str]:21543 """Throwaway Postgres on a unix socket with migrations applied."""21544 datadir = tmp_path_factory.mktemp("pgdata")21545 sockdir = tmp_path_factory.mktemp("pgsock")21546 subprocess.run( # noqa: S60321547 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21548 check=True,21549 capture_output=True,21550 )21551 proc = subprocess.Popen( # noqa: S60321552 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21553 stdout=subprocess.DEVNULL,21554 stderr=subprocess.DEVNULL,21555 )21556 try:21557 deadline = time.monotonic() + 3021558 while (21559 subprocess.run( # noqa: S60321560 ["pg_isready", "-h", str(sockdir), "-U", "test"],21561 check=False,21562 capture_output=True,21563 ).returncode21564 != 021565 ):21566 # The socket appears before recovery finishes; createdb would21567 # fail with "the database system is starting up".21568 if time.monotonic() > deadline:21569 msg = "postgres did not start"21570> raise RuntimeError(msg)21571E RuntimeError: postgres did not start2157221573nixbot/tests/support.py:319: RuntimeError21574______ ERROR at setup of test_reuse_for_default_branch_push_runs_effects _______21575[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142157621577self = <Coroutine test_reuse_for_default_branch_push_runs_effects>2157821579 def setup(self) -> None:21580 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21581 if runner_fixture_id not in self.fixturenames:21582 self.fixturenames.append(runner_fixture_id)21583 # When loop factories are configured, resolve the loop factory21584 # fixture early so that a factory variant change cascades cache21585 # invalidation before any async fixture checks its cache.21586 hook_caller = self.config.hook.pytest_asyncio_loop_factories21587 if hook_caller.get_hookimpls():21588 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21589> return super().setup()21590 ^^^^^^^^^^^^^^^2159121592/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21593_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21594nixbot/tests/conftest.py:33: in postgres_dsn21595 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21596 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21597/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21598 return next(self.gen)21599 ^^^^^^^^^^^^^^21600_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2160121602tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...atch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21603dbname = 'orchestrator'2160421605 @contextlib.contextmanager21606 def ephemeral_postgres(21607 tmp_path_factory: pytest.TempPathFactory, dbname: str21608 ) -> Iterator[str]:21609 """Throwaway Postgres on a unix socket with migrations applied."""21610 datadir = tmp_path_factory.mktemp("pgdata")21611 sockdir = tmp_path_factory.mktemp("pgsock")21612 subprocess.run( # noqa: S60321613 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21614 check=True,21615 capture_output=True,21616 )21617 proc = subprocess.Popen( # noqa: S60321618 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21619 stdout=subprocess.DEVNULL,21620 stderr=subprocess.DEVNULL,21621 )21622 try:21623 deadline = time.monotonic() + 3021624 while (21625 subprocess.run( # noqa: S60321626 ["pg_isready", "-h", str(sockdir), "-U", "test"],21627 check=False,21628 capture_output=True,21629 ).returncode21630 != 021631 ):21632 # The socket appears before recovery finishes; createdb would21633 # fail with "the database system is starting up".21634 if time.monotonic() > deadline:21635 msg = "postgres did not start"21636> raise RuntimeError(msg)21637E RuntimeError: postgres did not start2163821639nixbot/tests/support.py:319: RuntimeError21640________ ERROR at setup of test_scheduled_run_viewer_cross_project_404 _________21641[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142164221643request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>21644tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...atch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2164521646 @pytest.fixture(scope="module")21647 def postgres_dsn(21648 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory21649 ) -> Iterator[str]:21650 if shutil.which("initdb") is None:21651 pytest.skip("postgresql not available")21652 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")21653> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21654 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2165521656nixbot/tests/conftest.py:33: 21657_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21658/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21659 return next(self.gen)21660 ^^^^^^^^^^^^^^21661_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2166221663tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...atch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')21664dbname = 'web'2166521666 @contextlib.contextmanager21667 def ephemeral_postgres(21668 tmp_path_factory: pytest.TempPathFactory, dbname: str21669 ) -> Iterator[str]:21670 """Throwaway Postgres on a unix socket with migrations applied."""21671 datadir = tmp_path_factory.mktemp("pgdata")21672 sockdir = tmp_path_factory.mktemp("pgsock")21673 subprocess.run( # noqa: S60321674 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21675 check=True,21676 capture_output=True,21677 )21678 proc = subprocess.Popen( # noqa: S60321679 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21680 stdout=subprocess.DEVNULL,21681 stderr=subprocess.DEVNULL,21682 )21683 try:21684 deadline = time.monotonic() + 3021685 while (21686 subprocess.run( # noqa: S60321687 ["pg_isready", "-h", str(sockdir), "-U", "test"],21688 check=False,21689 capture_output=True,21690 ).returncode21691 != 021692 ):21693 # The socket appears before recovery finishes; createdb would21694 # fail with "the database system is starting up".21695 if time.monotonic() > deadline:21696 msg = "postgres did not start"21697> raise RuntimeError(msg)21698E RuntimeError: postgres did not start2169921700nixbot/tests/support.py:319: RuntimeError21701__ ERROR at setup of test_tag_reusing_deployed_build_delivers_its_own_effects __21702[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142170321704self = <Coroutine test_tag_reusing_deployed_build_delivers_its_own_effects>2170521706 def setup(self) -> None:21707 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21708 if runner_fixture_id not in self.fixturenames:21709 self.fixturenames.append(runner_fixture_id)21710 # When loop factories are configured, resolve the loop factory21711 # fixture early so that a factory variant change cascades cache21712 # invalidation before any async fixture checks its cache.21713 hook_caller = self.config.hook.pytest_asyncio_loop_factories21714 if hook_caller.get_hookimpls():21715 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21716> return super().setup()21717 ^^^^^^^^^^^^^^^2171821719/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21720_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21721nixbot/tests/conftest.py:33: in postgres_dsn21722 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21723 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21724/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21725 return next(self.gen)21726 ^^^^^^^^^^^^^^21727_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2172821729tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...atch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21730dbname = 'orchestrator'2173121732 @contextlib.contextmanager21733 def ephemeral_postgres(21734 tmp_path_factory: pytest.TempPathFactory, dbname: str21735 ) -> Iterator[str]:21736 """Throwaway Postgres on a unix socket with migrations applied."""21737 datadir = tmp_path_factory.mktemp("pgdata")21738 sockdir = tmp_path_factory.mktemp("pgsock")21739 subprocess.run( # noqa: S60321740 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21741 check=True,21742 capture_output=True,21743 )21744 proc = subprocess.Popen( # noqa: S60321745 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21746 stdout=subprocess.DEVNULL,21747 stderr=subprocess.DEVNULL,21748 )21749 try:21750 deadline = time.monotonic() + 3021751 while (21752 subprocess.run( # noqa: S60321753 ["pg_isready", "-h", str(sockdir), "-U", "test"],21754 check=False,21755 capture_output=True,21756 ).returncode21757 != 021758 ):21759 # The socket appears before recovery finishes; createdb would21760 # fail with "the database system is starting up".21761 if time.monotonic() > deadline:21762 msg = "postgres did not start"21763> raise RuntimeError(msg)21764E RuntimeError: postgres did not start2176521766nixbot/tests/support.py:319: RuntimeError21767_______ ERROR at setup of test_scheduled_run_log_unavailable_placeholder _______21768[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142176921770request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>21771tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...atch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2177221773 @pytest.fixture(scope="module")21774 def postgres_dsn(21775 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory21776 ) -> Iterator[str]:21777 if shutil.which("initdb") is None:21778 pytest.skip("postgresql not available")21779 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")21780> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21781 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2178221783nixbot/tests/conftest.py:33: 21784_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21785/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21786 return next(self.gen)21787 ^^^^^^^^^^^^^^21788_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2178921790tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...atch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')21791dbname = 'web'2179221793 @contextlib.contextmanager21794 def ephemeral_postgres(21795 tmp_path_factory: pytest.TempPathFactory, dbname: str21796 ) -> Iterator[str]:21797 """Throwaway Postgres on a unix socket with migrations applied."""21798 datadir = tmp_path_factory.mktemp("pgdata")21799 sockdir = tmp_path_factory.mktemp("pgsock")21800 subprocess.run( # noqa: S60321801 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21802 check=True,21803 capture_output=True,21804 )21805 proc = subprocess.Popen( # noqa: S60321806 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21807 stdout=subprocess.DEVNULL,21808 stderr=subprocess.DEVNULL,21809 )21810 try:21811 deadline = time.monotonic() + 3021812 while (21813 subprocess.run( # noqa: S60321814 ["pg_isready", "-h", str(sockdir), "-U", "test"],21815 check=False,21816 capture_output=True,21817 ).returncode21818 != 021819 ):21820 # The socket appears before recovery finishes; createdb would21821 # fail with "the database system is starting up".21822 if time.monotonic() > deadline:21823 msg = "postgres did not start"21824> raise RuntimeError(msg)21825E RuntimeError: postgres did not start2182621827nixbot/tests/support.py:319: RuntimeError21828________ ERROR at setup of test_scheduled_run_viewer_waiting_before_log ________21829[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142183021831request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>21832tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...atch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2183321834 @pytest.fixture(scope="module")21835 def postgres_dsn(21836 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory21837 ) -> Iterator[str]:21838 if shutil.which("initdb") is None:21839 pytest.skip("postgresql not available")21840 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")21841> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21842 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2184321844nixbot/tests/conftest.py:33: 21845_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21846/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21847 return next(self.gen)21848 ^^^^^^^^^^^^^^21849_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2185021851tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...atch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')21852dbname = 'web'2185321854 @contextlib.contextmanager21855 def ephemeral_postgres(21856 tmp_path_factory: pytest.TempPathFactory, dbname: str21857 ) -> Iterator[str]:21858 """Throwaway Postgres on a unix socket with migrations applied."""21859 datadir = tmp_path_factory.mktemp("pgdata")21860 sockdir = tmp_path_factory.mktemp("pgsock")21861 subprocess.run( # noqa: S60321862 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21863 check=True,21864 capture_output=True,21865 )21866 proc = subprocess.Popen( # noqa: S60321867 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21868 stdout=subprocess.DEVNULL,21869 stderr=subprocess.DEVNULL,21870 )21871 try:21872 deadline = time.monotonic() + 3021873 while (21874 subprocess.run( # noqa: S60321875 ["pg_isready", "-h", str(sockdir), "-U", "test"],21876 check=False,21877 capture_output=True,21878 ).returncode21879 != 021880 ):21881 # The socket appears before recovery finishes; createdb would21882 # fail with "the database system is starting up".21883 if time.monotonic() > deadline:21884 msg = "postgres did not start"21885> raise RuntimeError(msg)21886E RuntimeError: postgres did not start2188721888nixbot/tests/support.py:319: RuntimeError21889__ ERROR at setup of test_tag_attached_to_in_flight_build_delivers_on_success __21890[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142189121892self = <Coroutine test_tag_attached_to_in_flight_build_delivers_on_success>2189321894 def setup(self) -> None:21895 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21896 if runner_fixture_id not in self.fixturenames:21897 self.fixturenames.append(runner_fixture_id)21898 # When loop factories are configured, resolve the loop factory21899 # fixture early so that a factory variant change cascades cache21900 # invalidation before any async fixture checks its cache.21901 hook_caller = self.config.hook.pytest_asyncio_loop_factories21902 if hook_caller.get_hookimpls():21903 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21904> return super().setup()21905 ^^^^^^^^^^^^^^^2190621907/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21908_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21909nixbot/tests/conftest.py:33: in postgres_dsn21910 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21911 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21912/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21913 return next(self.gen)21914 ^^^^^^^^^^^^^^21915_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2191621917tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...atch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21918dbname = 'orchestrator'2191921920 @contextlib.contextmanager21921 def ephemeral_postgres(21922 tmp_path_factory: pytest.TempPathFactory, dbname: str21923 ) -> Iterator[str]:21924 """Throwaway Postgres on a unix socket with migrations applied."""21925 datadir = tmp_path_factory.mktemp("pgdata")21926 sockdir = tmp_path_factory.mktemp("pgsock")21927 subprocess.run( # noqa: S60321928 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21929 check=True,21930 capture_output=True,21931 )21932 proc = subprocess.Popen( # noqa: S60321933 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21934 stdout=subprocess.DEVNULL,21935 stderr=subprocess.DEVNULL,21936 )21937 try:21938 deadline = time.monotonic() + 3021939 while (21940 subprocess.run( # noqa: S60321941 ["pg_isready", "-h", str(sockdir), "-U", "test"],21942 check=False,21943 capture_output=True,21944 ).returncode21945 != 021946 ):21947 # The socket appears before recovery finishes; createdb would21948 # fail with "the database system is starting up".21949 if time.monotonic() > deadline:21950 msg = "postgres did not start"21951> raise RuntimeError(msg)21952E RuntimeError: postgres did not start2195321954nixbot/tests/support.py:319: RuntimeError21955_________ ERROR at setup of test_project_tabs_link_builds_and_effects __________21956[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142195721958request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>21959tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...atch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2196021961 @pytest.fixture(scope="module")21962 def postgres_dsn(21963 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory21964 ) -> Iterator[str]:21965 if shutil.which("initdb") is None:21966 pytest.skip("postgresql not available")21967 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")21968> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21969 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2197021971nixbot/tests/conftest.py:33: 21972_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21973/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21974 return next(self.gen)21975 ^^^^^^^^^^^^^^21976_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2197721978tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...atch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')21979dbname = 'web'2198021981 @contextlib.contextmanager21982 def ephemeral_postgres(21983 tmp_path_factory: pytest.TempPathFactory, dbname: str21984 ) -> Iterator[str]:21985 """Throwaway Postgres on a unix socket with migrations applied."""21986 datadir = tmp_path_factory.mktemp("pgdata")21987 sockdir = tmp_path_factory.mktemp("pgsock")21988 subprocess.run( # noqa: S60321989 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21990 check=True,21991 capture_output=True,21992 )21993 proc = subprocess.Popen( # noqa: S60321994 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21995 stdout=subprocess.DEVNULL,21996 stderr=subprocess.DEVNULL,21997 )21998 try:21999 deadline = time.monotonic() + 3022000 while (22001 subprocess.run( # noqa: S60322002 ["pg_isready", "-h", str(sockdir), "-U", "test"],22003 check=False,22004 capture_output=True,22005 ).returncode22006 != 022007 ):22008 # The socket appears before recovery finishes; createdb would22009 # fail with "the database system is starting up".22010 if time.monotonic() > deadline:22011 msg = "postgres did not start"22012> raise RuntimeError(msg)22013E RuntimeError: postgres did not start2201422015nixbot/tests/support.py:319: RuntimeError22016_ ERROR at setup of test_failing_badge_counts_effects_whose_latest_run_failed __22017[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142201822019request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>22020tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...atch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2202122022 @pytest.fixture(scope="module")22023 def postgres_dsn(22024 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory22025 ) -> Iterator[str]:22026 if shutil.which("initdb") is None:22027 pytest.skip("postgresql not available")22028 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")22029> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22030 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2203122032nixbot/tests/conftest.py:33: 22033_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22034/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22035 return next(self.gen)22036 ^^^^^^^^^^^^^^22037_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2203822039tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...atch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')22040dbname = 'web'2204122042 @contextlib.contextmanager22043 def ephemeral_postgres(22044 tmp_path_factory: pytest.TempPathFactory, dbname: str22045 ) -> Iterator[str]:22046 """Throwaway Postgres on a unix socket with migrations applied."""22047 datadir = tmp_path_factory.mktemp("pgdata")22048 sockdir = tmp_path_factory.mktemp("pgsock")22049 subprocess.run( # noqa: S60322050 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22051 check=True,22052 capture_output=True,22053 )22054 proc = subprocess.Popen( # noqa: S60322055 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22056 stdout=subprocess.DEVNULL,22057 stderr=subprocess.DEVNULL,22058 )22059 try:22060 deadline = time.monotonic() + 3022061 while (22062 subprocess.run( # noqa: S60322063 ["pg_isready", "-h", str(sockdir), "-U", "test"],22064 check=False,22065 capture_output=True,22066 ).returncode22067 != 022068 ):22069 # The socket appears before recovery finishes; createdb would22070 # fail with "the database system is starting up".22071 if time.monotonic() > deadline:22072 msg = "postgres did not start"22073> raise RuntimeError(msg)22074E RuntimeError: postgres did not start2207522076nixbot/tests/support.py:319: RuntimeError22077______ ERROR at setup of test_restart_of_gated_build_settles_effect_rows _______22078[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142207922080self = <Coroutine test_restart_of_gated_build_settles_effect_rows>2208122082 def setup(self) -> None:22083 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22084 if runner_fixture_id not in self.fixturenames:22085 self.fixturenames.append(runner_fixture_id)22086 # When loop factories are configured, resolve the loop factory22087 # fixture early so that a factory variant change cascades cache22088 # invalidation before any async fixture checks its cache.22089 hook_caller = self.config.hook.pytest_asyncio_loop_factories22090 if hook_caller.get_hookimpls():22091 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22092> return super().setup()22093 ^^^^^^^^^^^^^^^2209422095/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22096_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22097nixbot/tests/conftest.py:33: in postgres_dsn22098 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22099 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22100/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22101 return next(self.gen)22102 ^^^^^^^^^^^^^^22103_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2210422105tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...atch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22106dbname = 'orchestrator'2210722108 @contextlib.contextmanager22109 def ephemeral_postgres(22110 tmp_path_factory: pytest.TempPathFactory, dbname: str22111 ) -> Iterator[str]:22112 """Throwaway Postgres on a unix socket with migrations applied."""22113 datadir = tmp_path_factory.mktemp("pgdata")22114 sockdir = tmp_path_factory.mktemp("pgsock")22115 subprocess.run( # noqa: S60322116 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22117 check=True,22118 capture_output=True,22119 )22120 proc = subprocess.Popen( # noqa: S60322121 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22122 stdout=subprocess.DEVNULL,22123 stderr=subprocess.DEVNULL,22124 )22125 try:22126 deadline = time.monotonic() + 3022127 while (22128 subprocess.run( # noqa: S60322129 ["pg_isready", "-h", str(sockdir), "-U", "test"],22130 check=False,22131 capture_output=True,22132 ).returncode22133 != 022134 ):22135 # The socket appears before recovery finishes; createdb would22136 # fail with "the database system is starting up".22137 if time.monotonic() > deadline:22138 msg = "postgres did not start"22139> raise RuntimeError(msg)22140E RuntimeError: postgres did not start2214122142nixbot/tests/support.py:319: RuntimeError22143__________ ERROR at setup of test_old_schedule_history_url_redirects ___________22144[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142214522146request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>22147tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...atch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2214822149 @pytest.fixture(scope="module")22150 def postgres_dsn(22151 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory22152 ) -> Iterator[str]:22153 if shutil.which("initdb") is None:22154 pytest.skip("postgresql not available")22155 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")22156> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22157 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2215822159nixbot/tests/conftest.py:33: 22160_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22161/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22162 return next(self.gen)22163 ^^^^^^^^^^^^^^22164_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2216522166tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...atch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')22167dbname = 'web'2216822169 @contextlib.contextmanager22170 def ephemeral_postgres(22171 tmp_path_factory: pytest.TempPathFactory, dbname: str22172 ) -> Iterator[str]:22173 """Throwaway Postgres on a unix socket with migrations applied."""22174 datadir = tmp_path_factory.mktemp("pgdata")22175 sockdir = tmp_path_factory.mktemp("pgsock")22176 subprocess.run( # noqa: S60322177 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22178 check=True,22179 capture_output=True,22180 )22181 proc = subprocess.Popen( # noqa: S60322182 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22183 stdout=subprocess.DEVNULL,22184 stderr=subprocess.DEVNULL,22185 )22186 try:22187 deadline = time.monotonic() + 3022188 while (22189 subprocess.run( # noqa: S60322190 ["pg_isready", "-h", str(sockdir), "-U", "test"],22191 check=False,22192 capture_output=True,22193 ).returncode22194 != 022195 ):22196 # The socket appears before recovery finishes; createdb would22197 # fail with "the database system is starting up".22198 if time.monotonic() > deadline:22199 msg = "postgres did not start"22200> raise RuntimeError(msg)22201E RuntimeError: postgres did not start2220222203nixbot/tests/support.py:319: RuntimeError22204__________ ERROR at setup of test_project_effects_filter_and_paginate __________22205[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142220622207request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>22208tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...atch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2220922210 @pytest.fixture(scope="module")22211 def postgres_dsn(22212 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory22213 ) -> Iterator[str]:22214 if shutil.which("initdb") is None:22215 pytest.skip("postgresql not available")22216 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")22217> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22218 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2221922220nixbot/tests/conftest.py:33: 22221_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22222/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22223 return next(self.gen)22224 ^^^^^^^^^^^^^^22225_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2222622227tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...atch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')22228dbname = 'web'2222922230 @contextlib.contextmanager22231 def ephemeral_postgres(22232 tmp_path_factory: pytest.TempPathFactory, dbname: str22233 ) -> Iterator[str]:22234 """Throwaway Postgres on a unix socket with migrations applied."""22235 datadir = tmp_path_factory.mktemp("pgdata")22236 sockdir = tmp_path_factory.mktemp("pgsock")22237 subprocess.run( # noqa: S60322238 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22239 check=True,22240 capture_output=True,22241 )22242 proc = subprocess.Popen( # noqa: S60322243 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22244 stdout=subprocess.DEVNULL,22245 stderr=subprocess.DEVNULL,22246 )22247 try:22248 deadline = time.monotonic() + 3022249 while (22250 subprocess.run( # noqa: S60322251 ["pg_isready", "-h", str(sockdir), "-U", "test"],22252 check=False,22253 capture_output=True,22254 ).returncode22255 != 022256 ):22257 # The socket appears before recovery finishes; createdb would22258 # fail with "the database system is starting up".22259 if time.monotonic() > deadline:22260 msg = "postgres did not start"22261> raise RuntimeError(msg)22262E RuntimeError: postgres did not start2226322264nixbot/tests/support.py:319: RuntimeError22265________ ERROR at setup of test_restart_build_drops_queued_effect_items ________22266[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142226722268self = <Coroutine test_restart_build_drops_queued_effect_items>2226922270 def setup(self) -> None:22271 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22272 if runner_fixture_id not in self.fixturenames:22273 self.fixturenames.append(runner_fixture_id)22274 # When loop factories are configured, resolve the loop factory22275 # fixture early so that a factory variant change cascades cache22276 # invalidation before any async fixture checks its cache.22277 hook_caller = self.config.hook.pytest_asyncio_loop_factories22278 if hook_caller.get_hookimpls():22279 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22280> return super().setup()22281 ^^^^^^^^^^^^^^^2228222283/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22284_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22285nixbot/tests/conftest.py:33: in postgres_dsn22286 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22287 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22288/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22289 return next(self.gen)22290 ^^^^^^^^^^^^^^22291_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2229222293tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...atch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22294dbname = 'orchestrator'2229522296 @contextlib.contextmanager22297 def ephemeral_postgres(22298 tmp_path_factory: pytest.TempPathFactory, dbname: str22299 ) -> Iterator[str]:22300 """Throwaway Postgres on a unix socket with migrations applied."""22301 datadir = tmp_path_factory.mktemp("pgdata")22302 sockdir = tmp_path_factory.mktemp("pgsock")22303 subprocess.run( # noqa: S60322304 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22305 check=True,22306 capture_output=True,22307 )22308 proc = subprocess.Popen( # noqa: S60322309 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22310 stdout=subprocess.DEVNULL,22311 stderr=subprocess.DEVNULL,22312 )22313 try:22314 deadline = time.monotonic() + 3022315 while (22316 subprocess.run( # noqa: S60322317 ["pg_isready", "-h", str(sockdir), "-U", "test"],22318 check=False,22319 capture_output=True,22320 ).returncode22321 != 022322 ):22323 # The socket appears before recovery finishes; createdb would22324 # fail with "the database system is starting up".22325 if time.monotonic() > deadline:22326 msg = "postgres did not start"22327> raise RuntimeError(msg)22328E RuntimeError: postgres did not start2232922330nixbot/tests/support.py:319: RuntimeError22331_________ ERROR at setup of test_scheduled_run_stream_replays_history __________22332[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142233322334request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>22335tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...atch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2233622337 @pytest.fixture(scope="module")22338 def postgres_dsn(22339 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory22340 ) -> Iterator[str]:22341 if shutil.which("initdb") is None:22342 pytest.skip("postgresql not available")22343 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")22344> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22345 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2234622347nixbot/tests/conftest.py:33: 22348_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22349/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22350 return next(self.gen)22351 ^^^^^^^^^^^^^^22352_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2235322354tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...atch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')22355dbname = 'web'2235622357 @contextlib.contextmanager22358 def ephemeral_postgres(22359 tmp_path_factory: pytest.TempPathFactory, dbname: str22360 ) -> Iterator[str]:22361 """Throwaway Postgres on a unix socket with migrations applied."""22362 datadir = tmp_path_factory.mktemp("pgdata")22363 sockdir = tmp_path_factory.mktemp("pgsock")22364 subprocess.run( # noqa: S60322365 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22366 check=True,22367 capture_output=True,22368 )22369 proc = subprocess.Popen( # noqa: S60322370 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22371 stdout=subprocess.DEVNULL,22372 stderr=subprocess.DEVNULL,22373 )22374 try:22375 deadline = time.monotonic() + 3022376 while (22377 subprocess.run( # noqa: S60322378 ["pg_isready", "-h", str(sockdir), "-U", "test"],22379 check=False,22380 capture_output=True,22381 ).returncode22382 != 022383 ):22384 # The socket appears before recovery finishes; createdb would22385 # fail with "the database system is starting up".22386 if time.monotonic() > deadline:22387 msg = "postgres did not start"22388> raise RuntimeError(msg)22389E RuntimeError: postgres did not start2239022391nixbot/tests/support.py:319: RuntimeError22392___ ERROR at setup of test_restart_effects_after_pr_attach_keeps_effects_ref ___22393[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142239422395self = <Coroutine test_restart_effects_after_pr_attach_keeps_effects_ref>2239622397 def setup(self) -> None:22398 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22399 if runner_fixture_id not in self.fixturenames:22400 self.fixturenames.append(runner_fixture_id)22401 # When loop factories are configured, resolve the loop factory22402 # fixture early so that a factory variant change cascades cache22403 # invalidation before any async fixture checks its cache.22404 hook_caller = self.config.hook.pytest_asyncio_loop_factories22405 if hook_caller.get_hookimpls():22406 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22407> return super().setup()22408 ^^^^^^^^^^^^^^^2240922410/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22411_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22412nixbot/tests/conftest.py:33: in postgres_dsn22413 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22414 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22415/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22416 return next(self.gen)22417 ^^^^^^^^^^^^^^22418_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2241922420tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...atch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22421dbname = 'orchestrator'2242222423 @contextlib.contextmanager22424 def ephemeral_postgres(22425 tmp_path_factory: pytest.TempPathFactory, dbname: str22426 ) -> Iterator[str]:22427 """Throwaway Postgres on a unix socket with migrations applied."""22428 datadir = tmp_path_factory.mktemp("pgdata")22429 sockdir = tmp_path_factory.mktemp("pgsock")22430 subprocess.run( # noqa: S60322431 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22432 check=True,22433 capture_output=True,22434 )22435 proc = subprocess.Popen( # noqa: S60322436 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22437 stdout=subprocess.DEVNULL,22438 stderr=subprocess.DEVNULL,22439 )22440 try:22441 deadline = time.monotonic() + 3022442 while (22443 subprocess.run( # noqa: S60322444 ["pg_isready", "-h", str(sockdir), "-U", "test"],22445 check=False,22446 capture_output=True,22447 ).returncode22448 != 022449 ):22450 # The socket appears before recovery finishes; createdb would22451 # fail with "the database system is starting up".22452 if time.monotonic() > deadline:22453 msg = "postgres did not start"22454> raise RuntimeError(msg)22455E RuntimeError: postgres did not start2245622457nixbot/tests/support.py:319: RuntimeError22458___________ ERROR at setup of test_scheduled_run_notify_build_events ___________22459[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142246022461request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>22462tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...atch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2246322464 @pytest.fixture(scope="module")22465 def postgres_dsn(22466 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory22467 ) -> Iterator[str]:22468 if shutil.which("initdb") is None:22469 pytest.skip("postgresql not available")22470 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")22471> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22472 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2247322474nixbot/tests/conftest.py:33: 22475_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22476/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22477 return next(self.gen)22478 ^^^^^^^^^^^^^^22479_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2248022481tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...atch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')22482dbname = 'web'2248322484 @contextlib.contextmanager22485 def ephemeral_postgres(22486 tmp_path_factory: pytest.TempPathFactory, dbname: str22487 ) -> Iterator[str]:22488 """Throwaway Postgres on a unix socket with migrations applied."""22489 datadir = tmp_path_factory.mktemp("pgdata")22490 sockdir = tmp_path_factory.mktemp("pgsock")22491 subprocess.run( # noqa: S60322492 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22493 check=True,22494 capture_output=True,22495 )22496 proc = subprocess.Popen( # noqa: S60322497 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22498 stdout=subprocess.DEVNULL,22499 stderr=subprocess.DEVNULL,22500 )22501 try:22502 deadline = time.monotonic() + 3022503 while (22504 subprocess.run( # noqa: S60322505 ["pg_isready", "-h", str(sockdir), "-U", "test"],22506 check=False,22507 capture_output=True,22508 ).returncode22509 != 022510 ):22511 # The socket appears before recovery finishes; createdb would22512 # fail with "the database system is starting up".22513 if time.monotonic() > deadline:22514 msg = "postgres did not start"22515> raise RuntimeError(msg)22516E RuntimeError: postgres did not start2251722518nixbot/tests/support.py:319: RuntimeError22519_________________ ERROR at setup of test_api_log_toc_and_text __________________22520[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142252122522request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>22523tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...atch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2252422525 @pytest.fixture(scope="module")22526 def postgres_dsn(22527 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory22528 ) -> Iterator[str]:22529 if shutil.which("initdb") is None:22530 pytest.skip("postgresql not available")22531 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")22532> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22533 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2253422535nixbot/tests/conftest.py:33: 22536_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22537/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22538 return next(self.gen)22539 ^^^^^^^^^^^^^^22540_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2254122542tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...atch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')22543dbname = 'web'2254422545 @contextlib.contextmanager22546 def ephemeral_postgres(22547 tmp_path_factory: pytest.TempPathFactory, dbname: str22548 ) -> Iterator[str]:22549 """Throwaway Postgres on a unix socket with migrations applied."""22550 datadir = tmp_path_factory.mktemp("pgdata")22551 sockdir = tmp_path_factory.mktemp("pgsock")22552 subprocess.run( # noqa: S60322553 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22554 check=True,22555 capture_output=True,22556 )22557 proc = subprocess.Popen( # noqa: S60322558 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22559 stdout=subprocess.DEVNULL,22560 stderr=subprocess.DEVNULL,22561 )22562 try:22563 deadline = time.monotonic() + 3022564 while (22565 subprocess.run( # noqa: S60322566 ["pg_isready", "-h", str(sockdir), "-U", "test"],22567 check=False,22568 capture_output=True,22569 ).returncode22570 != 022571 ):22572 # The socket appears before recovery finishes; createdb would22573 # fail with "the database system is starting up".22574 if time.monotonic() > deadline:22575 msg = "postgres did not start"22576> raise RuntimeError(msg)22577E RuntimeError: postgres did not start2257822579nixbot/tests/support.py:319: RuntimeError22580_______ ERROR at setup of test_gated_restart_then_allowed_reuse_deploys ________22581[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142258222583self = <Coroutine test_gated_restart_then_allowed_reuse_deploys>2258422585 def setup(self) -> None:22586 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22587 if runner_fixture_id not in self.fixturenames:22588 self.fixturenames.append(runner_fixture_id)22589 # When loop factories are configured, resolve the loop factory22590 # fixture early so that a factory variant change cascades cache22591 # invalidation before any async fixture checks its cache.22592 hook_caller = self.config.hook.pytest_asyncio_loop_factories22593 if hook_caller.get_hookimpls():22594 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22595> return super().setup()22596 ^^^^^^^^^^^^^^^2259722598/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22599_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22600nixbot/tests/conftest.py:33: in postgres_dsn22601 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22602 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22603/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22604 return next(self.gen)22605 ^^^^^^^^^^^^^^22606_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2260722608tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...atch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22609dbname = 'orchestrator'2261022611 @contextlib.contextmanager22612 def ephemeral_postgres(22613 tmp_path_factory: pytest.TempPathFactory, dbname: str22614 ) -> Iterator[str]:22615 """Throwaway Postgres on a unix socket with migrations applied."""22616 datadir = tmp_path_factory.mktemp("pgdata")22617 sockdir = tmp_path_factory.mktemp("pgsock")22618 subprocess.run( # noqa: S60322619 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22620 check=True,22621 capture_output=True,22622 )22623 proc = subprocess.Popen( # noqa: S60322624 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22625 stdout=subprocess.DEVNULL,22626 stderr=subprocess.DEVNULL,22627 )22628 try:22629 deadline = time.monotonic() + 3022630 while (22631 subprocess.run( # noqa: S60322632 ["pg_isready", "-h", str(sockdir), "-U", "test"],22633 check=False,22634 capture_output=True,22635 ).returncode22636 != 022637 ):22638 # The socket appears before recovery finishes; createdb would22639 # fail with "the database system is starting up".22640 if time.monotonic() > deadline:22641 msg = "postgres did not start"22642> raise RuntimeError(msg)22643E RuntimeError: postgres did not start2264422645nixbot/tests/support.py:319: RuntimeError22646_____________ ERROR at setup of test_api_log_toc_flat_log_fallback _____________22647[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142264822649request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>22650tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...atch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2265122652 @pytest.fixture(scope="module")22653 def postgres_dsn(22654 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory22655 ) -> Iterator[str]:22656 if shutil.which("initdb") is None:22657 pytest.skip("postgresql not available")22658 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")22659> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22660 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2266122662nixbot/tests/conftest.py:33: 22663_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22664/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22665 return next(self.gen)22666 ^^^^^^^^^^^^^^22667_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2266822669tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...atch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')22670dbname = 'web'2267122672 @contextlib.contextmanager22673 def ephemeral_postgres(22674 tmp_path_factory: pytest.TempPathFactory, dbname: str22675 ) -> Iterator[str]:22676 """Throwaway Postgres on a unix socket with migrations applied."""22677 datadir = tmp_path_factory.mktemp("pgdata")22678 sockdir = tmp_path_factory.mktemp("pgsock")22679 subprocess.run( # noqa: S60322680 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22681 check=True,22682 capture_output=True,22683 )22684 proc = subprocess.Popen( # noqa: S60322685 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22686 stdout=subprocess.DEVNULL,22687 stderr=subprocess.DEVNULL,22688 )22689 try:22690 deadline = time.monotonic() + 3022691 while (22692 subprocess.run( # noqa: S60322693 ["pg_isready", "-h", str(sockdir), "-U", "test"],22694 check=False,22695 capture_output=True,22696 ).returncode22697 != 022698 ):22699 # The socket appears before recovery finishes; createdb would22700 # fail with "the database system is starting up".22701 if time.monotonic() > deadline:22702 msg = "postgres did not start"22703> raise RuntimeError(msg)22704E RuntimeError: postgres did not start2270522706nixbot/tests/support.py:319: RuntimeError22707__________________ ERROR at setup of test_api_log_stream_json __________________22708[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142270922710request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>22711tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...atch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2271222713 @pytest.fixture(scope="module")22714 def postgres_dsn(22715 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory22716 ) -> Iterator[str]:22717 if shutil.which("initdb") is None:22718 pytest.skip("postgresql not available")22719 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")22720> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22721 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2272222723nixbot/tests/conftest.py:33: 22724_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22725/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22726 return next(self.gen)22727 ^^^^^^^^^^^^^^22728_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2272922730tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...atch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')22731dbname = 'web'2273222733 @contextlib.contextmanager22734 def ephemeral_postgres(22735 tmp_path_factory: pytest.TempPathFactory, dbname: str22736 ) -> Iterator[str]:22737 """Throwaway Postgres on a unix socket with migrations applied."""22738 datadir = tmp_path_factory.mktemp("pgdata")22739 sockdir = tmp_path_factory.mktemp("pgsock")22740 subprocess.run( # noqa: S60322741 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22742 check=True,22743 capture_output=True,22744 )22745 proc = subprocess.Popen( # noqa: S60322746 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22747 stdout=subprocess.DEVNULL,22748 stderr=subprocess.DEVNULL,22749 )22750 try:22751 deadline = time.monotonic() + 3022752 while (22753 subprocess.run( # noqa: S60322754 ["pg_isready", "-h", str(sockdir), "-U", "test"],22755 check=False,22756 capture_output=True,22757 ).returncode22758 != 022759 ):22760 # The socket appears before recovery finishes; createdb would22761 # fail with "the database system is starting up".22762 if time.monotonic() > deadline:22763 msg = "postgres did not start"22764> raise RuntimeError(msg)22765E RuntimeError: postgres did not start2276622767nixbot/tests/support.py:319: RuntimeError22768_____ ERROR at setup of test_rerun_single_effect_takes_pending_dependents ______22769[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142277022771self = <Coroutine test_rerun_single_effect_takes_pending_dependents>2277222773 def setup(self) -> None:22774 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22775 if runner_fixture_id not in self.fixturenames:22776 self.fixturenames.append(runner_fixture_id)22777 # When loop factories are configured, resolve the loop factory22778 # fixture early so that a factory variant change cascades cache22779 # invalidation before any async fixture checks its cache.22780 hook_caller = self.config.hook.pytest_asyncio_loop_factories22781 if hook_caller.get_hookimpls():22782 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22783> return super().setup()22784 ^^^^^^^^^^^^^^^2278522786/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22787_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22788nixbot/tests/conftest.py:33: in postgres_dsn22789 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22790 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22791/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22792 return next(self.gen)22793 ^^^^^^^^^^^^^^22794_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2279522796tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...atch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22797dbname = 'orchestrator'2279822799 @contextlib.contextmanager22800 def ephemeral_postgres(22801 tmp_path_factory: pytest.TempPathFactory, dbname: str22802 ) -> Iterator[str]:22803 """Throwaway Postgres on a unix socket with migrations applied."""22804 datadir = tmp_path_factory.mktemp("pgdata")22805 sockdir = tmp_path_factory.mktemp("pgsock")22806 subprocess.run( # noqa: S60322807 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22808 check=True,22809 capture_output=True,22810 )22811 proc = subprocess.Popen( # noqa: S60322812 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22813 stdout=subprocess.DEVNULL,22814 stderr=subprocess.DEVNULL,22815 )22816 try:22817 deadline = time.monotonic() + 3022818 while (22819 subprocess.run( # noqa: S60322820 ["pg_isready", "-h", str(sockdir), "-U", "test"],22821 check=False,22822 capture_output=True,22823 ).returncode22824 != 022825 ):22826 # The socket appears before recovery finishes; createdb would22827 # fail with "the database system is starting up".22828 if time.monotonic() > deadline:22829 msg = "postgres did not start"22830> raise RuntimeError(msg)22831E RuntimeError: postgres did not start2283222833nixbot/tests/support.py:319: RuntimeError22834_______________ ERROR at setup of test_build_eval_stats_surface ________________22835[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142283622837request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>22838tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...atch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2283922840 @pytest.fixture(scope="module")22841 def postgres_dsn(22842 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory22843 ) -> Iterator[str]:22844 if shutil.which("initdb") is None:22845 pytest.skip("postgresql not available")22846 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")22847> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22848 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2284922850nixbot/tests/conftest.py:33: 22851_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22852/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22853 return next(self.gen)22854 ^^^^^^^^^^^^^^22855_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2285622857tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...atch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')22858dbname = 'web'2285922860 @contextlib.contextmanager22861 def ephemeral_postgres(22862 tmp_path_factory: pytest.TempPathFactory, dbname: str22863 ) -> Iterator[str]:22864 """Throwaway Postgres on a unix socket with migrations applied."""22865 datadir = tmp_path_factory.mktemp("pgdata")22866 sockdir = tmp_path_factory.mktemp("pgsock")22867 subprocess.run( # noqa: S60322868 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22869 check=True,22870 capture_output=True,22871 )22872 proc = subprocess.Popen( # noqa: S60322873 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22874 stdout=subprocess.DEVNULL,22875 stderr=subprocess.DEVNULL,22876 )22877 try:22878 deadline = time.monotonic() + 3022879 while (22880 subprocess.run( # noqa: S60322881 ["pg_isready", "-h", str(sockdir), "-U", "test"],22882 check=False,22883 capture_output=True,22884 ).returncode22885 != 022886 ):22887 # The socket appears before recovery finishes; createdb would22888 # fail with "the database system is starting up".22889 if time.monotonic() > deadline:22890 msg = "postgres did not start"22891> raise RuntimeError(msg)22892E RuntimeError: postgres did not start2289322894nixbot/tests/support.py:319: RuntimeError22895______ ERROR at setup of test_reuse_replays_effect_statuses_to_new_commit ______22896[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142289722898self = <Coroutine test_reuse_replays_effect_statuses_to_new_commit>2289922900 def setup(self) -> None:22901 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22902 if runner_fixture_id not in self.fixturenames:22903 self.fixturenames.append(runner_fixture_id)22904 # When loop factories are configured, resolve the loop factory22905 # fixture early so that a factory variant change cascades cache22906 # invalidation before any async fixture checks its cache.22907 hook_caller = self.config.hook.pytest_asyncio_loop_factories22908 if hook_caller.get_hookimpls():22909 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22910> return super().setup()22911 ^^^^^^^^^^^^^^^2291222913/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22914_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22915nixbot/tests/conftest.py:33: in postgres_dsn22916 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22917 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22918/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22919 return next(self.gen)22920 ^^^^^^^^^^^^^^22921_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2292222923tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...atch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22924dbname = 'orchestrator'2292522926 @contextlib.contextmanager22927 def ephemeral_postgres(22928 tmp_path_factory: pytest.TempPathFactory, dbname: str22929 ) -> Iterator[str]:22930 """Throwaway Postgres on a unix socket with migrations applied."""22931 datadir = tmp_path_factory.mktemp("pgdata")22932 sockdir = tmp_path_factory.mktemp("pgsock")22933 subprocess.run( # noqa: S60322934 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22935 check=True,22936 capture_output=True,22937 )22938 proc = subprocess.Popen( # noqa: S60322939 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22940 stdout=subprocess.DEVNULL,22941 stderr=subprocess.DEVNULL,22942 )22943 try:22944 deadline = time.monotonic() + 3022945 while (22946 subprocess.run( # noqa: S60322947 ["pg_isready", "-h", str(sockdir), "-U", "test"],22948 check=False,22949 capture_output=True,22950 ).returncode22951 != 022952 ):22953 # The socket appears before recovery finishes; createdb would22954 # fail with "the database system is starting up".22955 if time.monotonic() > deadline:22956 msg = "postgres did not start"22957> raise RuntimeError(msg)22958E RuntimeError: postgres did not start2295922960nixbot/tests/support.py:319: RuntimeError22961____ ERROR at setup of test_attach_to_already_terminal_build_replays_status ____22962[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142296322964self = <Coroutine test_attach_to_already_terminal_build_replays_status>2296522966 def setup(self) -> None:22967 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22968 if runner_fixture_id not in self.fixturenames:22969 self.fixturenames.append(runner_fixture_id)22970 # When loop factories are configured, resolve the loop factory22971 # fixture early so that a factory variant change cascades cache22972 # invalidation before any async fixture checks its cache.22973 hook_caller = self.config.hook.pytest_asyncio_loop_factories22974 if hook_caller.get_hookimpls():22975 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22976> return super().setup()22977 ^^^^^^^^^^^^^^^2297822979/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22980_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22981nixbot/tests/conftest.py:33: in postgres_dsn22982 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22983 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22984/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22985 return next(self.gen)22986 ^^^^^^^^^^^^^^22987_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2298822989tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...atch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22990dbname = 'orchestrator'2299122992 @contextlib.contextmanager22993 def ephemeral_postgres(22994 tmp_path_factory: pytest.TempPathFactory, dbname: str22995 ) -> Iterator[str]:22996 """Throwaway Postgres on a unix socket with migrations applied."""22997 datadir = tmp_path_factory.mktemp("pgdata")22998 sockdir = tmp_path_factory.mktemp("pgsock")22999 subprocess.run( # noqa: S60323000 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],23001 check=True,23002 capture_output=True,23003 )23004 proc = subprocess.Popen( # noqa: S60323005 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],23006 stdout=subprocess.DEVNULL,23007 stderr=subprocess.DEVNULL,23008 )23009 try:23010 deadline = time.monotonic() + 3023011 while (23012 subprocess.run( # noqa: S60323013 ["pg_isready", "-h", str(sockdir), "-U", "test"],23014 check=False,23015 capture_output=True,23016 ).returncode23017 != 023018 ):23019 # The socket appears before recovery finishes; createdb would23020 # fail with "the database system is starting up".23021 if time.monotonic() > deadline:23022 msg = "postgres did not start"23023> raise RuntimeError(msg)23024E RuntimeError: postgres did not start2302523026nixbot/tests/support.py:319: RuntimeError23027___ ERROR at setup of test_cancel_during_eval_resolves_linked_eval_contexts ____23028[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142302923030self = <Coroutine test_cancel_during_eval_resolves_linked_eval_contexts>2303123032 def setup(self) -> None:23033 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"23034 if runner_fixture_id not in self.fixturenames:23035 self.fixturenames.append(runner_fixture_id)23036 # When loop factories are configured, resolve the loop factory23037 # fixture early so that a factory variant change cascades cache23038 # invalidation before any async fixture checks its cache.23039 hook_caller = self.config.hook.pytest_asyncio_loop_factories23040 if hook_caller.get_hookimpls():23041 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)23042> return super().setup()23043 ^^^^^^^^^^^^^^^2304423045/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 23046_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 23047nixbot/tests/conftest.py:33: in postgres_dsn23048 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:23049 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^23050/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__23051 return next(self.gen)23052 ^^^^^^^^^^^^^^23053_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2305423055tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...atch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')23056dbname = 'orchestrator'2305723058 @contextlib.contextmanager23059 def ephemeral_postgres(23060 tmp_path_factory: pytest.TempPathFactory, dbname: str23061 ) -> Iterator[str]:23062 """Throwaway Postgres on a unix socket with migrations applied."""23063 datadir = tmp_path_factory.mktemp("pgdata")23064 sockdir = tmp_path_factory.mktemp("pgsock")23065 subprocess.run( # noqa: S60323066 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],23067 check=True,23068 capture_output=True,23069 )23070 proc = subprocess.Popen( # noqa: S60323071 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],23072 stdout=subprocess.DEVNULL,23073 stderr=subprocess.DEVNULL,23074 )23075 try:23076 deadline = time.monotonic() + 3023077 while (23078 subprocess.run( # noqa: S60323079 ["pg_isready", "-h", str(sockdir), "-U", "test"],23080 check=False,23081 capture_output=True,23082 ).returncode23083 != 023084 ):23085 # The socket appears before recovery finishes; createdb would23086 # fail with "the database system is starting up".23087 if time.monotonic() > deadline:23088 msg = "postgres did not start"23089> raise RuntimeError(msg)23090E RuntimeError: postgres did not start2309123092nixbot/tests/support.py:319: RuntimeError23093____ ERROR at setup of test_effect_log_does_not_collide_with_attribute_log _____23094[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142309523096self = <Coroutine test_effect_log_does_not_collide_with_attribute_log>2309723098 def setup(self) -> None:23099 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"23100 if runner_fixture_id not in self.fixturenames:23101 self.fixturenames.append(runner_fixture_id)23102 # When loop factories are configured, resolve the loop factory23103 # fixture early so that a factory variant change cascades cache23104 # invalidation before any async fixture checks its cache.23105 hook_caller = self.config.hook.pytest_asyncio_loop_factories23106 if hook_caller.get_hookimpls():23107 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)23108> return super().setup()23109 ^^^^^^^^^^^^^^^2311023111/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 23112_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 23113nixbot/tests/conftest.py:33: in postgres_dsn23114 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:23115 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^23116/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__23117 return next(self.gen)23118 ^^^^^^^^^^^^^^23119_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2312023121tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...atch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')23122dbname = 'orchestrator'2312323124 @contextlib.contextmanager23125 def ephemeral_postgres(23126 tmp_path_factory: pytest.TempPathFactory, dbname: str23127 ) -> Iterator[str]:23128 """Throwaway Postgres on a unix socket with migrations applied."""23129 datadir = tmp_path_factory.mktemp("pgdata")23130 sockdir = tmp_path_factory.mktemp("pgsock")23131 subprocess.run( # noqa: S60323132 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],23133 check=True,23134 capture_output=True,23135 )23136 proc = subprocess.Popen( # noqa: S60323137 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],23138 stdout=subprocess.DEVNULL,23139 stderr=subprocess.DEVNULL,23140 )23141 try:23142 deadline = time.monotonic() + 3023143 while (23144 subprocess.run( # noqa: S60323145 ["pg_isready", "-h", str(sockdir), "-U", "test"],23146 check=False,23147 capture_output=True,23148 ).returncode23149 != 023150 ):23151 # The socket appears before recovery finishes; createdb would23152 # fail with "the database system is starting up".23153 if time.monotonic() > deadline:23154 msg = "postgres did not start"23155> raise RuntimeError(msg)23156E RuntimeError: postgres did not start2315723158nixbot/tests/support.py:319: RuntimeError23159__________ ERROR at setup of test_post_process_paths_are_forge_scoped __________23160[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142316123162self = <Coroutine test_post_process_paths_are_forge_scoped>2316323164 def setup(self) -> None:23165 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"23166 if runner_fixture_id not in self.fixturenames:23167 self.fixturenames.append(runner_fixture_id)23168 # When loop factories are configured, resolve the loop factory23169 # fixture early so that a factory variant change cascades cache23170 # invalidation before any async fixture checks its cache.23171 hook_caller = self.config.hook.pytest_asyncio_loop_factories23172 if hook_caller.get_hookimpls():23173 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)23174> return super().setup()23175 ^^^^^^^^^^^^^^^2317623177/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 23178_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 23179nixbot/tests/conftest.py:33: in postgres_dsn23180 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:23181 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^23182/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__23183 return next(self.gen)23184 ^^^^^^^^^^^^^^23185_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2318623187tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...atch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')23188dbname = 'orchestrator'2318923190 @contextlib.contextmanager23191 def ephemeral_postgres(23192 tmp_path_factory: pytest.TempPathFactory, dbname: str23193 ) -> Iterator[str]:23194 """Throwaway Postgres on a unix socket with migrations applied."""23195 datadir = tmp_path_factory.mktemp("pgdata")23196 sockdir = tmp_path_factory.mktemp("pgsock")23197 subprocess.run( # noqa: S60323198 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],23199 check=True,23200 capture_output=True,23201 )23202 proc = subprocess.Popen( # noqa: S60323203 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],23204 stdout=subprocess.DEVNULL,23205 stderr=subprocess.DEVNULL,23206 )23207 try:23208 deadline = time.monotonic() + 3023209 while (23210 subprocess.run( # noqa: S60323211 ["pg_isready", "-h", str(sockdir), "-U", "test"],23212 check=False,23213 capture_output=True,23214 ).returncode23215 != 023216 ):23217 # The socket appears before recovery finishes; createdb would23218 # fail with "the database system is starting up".23219 if time.monotonic() > deadline:23220 msg = "postgres did not start"23221> raise RuntimeError(msg)23222E RuntimeError: postgres did not start2322323224nixbot/tests/support.py:319: RuntimeError23225_______ ERROR at setup of test_effects_phase_error_keeps_succeeded_build _______23226[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142322723228self = <Coroutine test_effects_phase_error_keeps_succeeded_build>2322923230 def setup(self) -> None:23231 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"23232 if runner_fixture_id not in self.fixturenames:23233 self.fixturenames.append(runner_fixture_id)23234 # When loop factories are configured, resolve the loop factory23235 # fixture early so that a factory variant change cascades cache23236 # invalidation before any async fixture checks its cache.23237 hook_caller = self.config.hook.pytest_asyncio_loop_factories23238 if hook_caller.get_hookimpls():23239 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)23240> return super().setup()23241 ^^^^^^^^^^^^^^^2324223243/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 23244_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 23245nixbot/tests/conftest.py:33: in postgres_dsn23246 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:23247 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^23248/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__23249 return next(self.gen)23250 ^^^^^^^^^^^^^^23251_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2325223253tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...atch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')23254dbname = 'orchestrator'2325523256 @contextlib.contextmanager23257 def ephemeral_postgres(23258 tmp_path_factory: pytest.TempPathFactory, dbname: str23259 ) -> Iterator[str]:23260 """Throwaway Postgres on a unix socket with migrations applied."""23261 datadir = tmp_path_factory.mktemp("pgdata")23262 sockdir = tmp_path_factory.mktemp("pgsock")23263 subprocess.run( # noqa: S60323264 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],23265 check=True,23266 capture_output=True,23267 )23268 proc = subprocess.Popen( # noqa: S60323269 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],23270 stdout=subprocess.DEVNULL,23271 stderr=subprocess.DEVNULL,23272 )23273 try:23274 deadline = time.monotonic() + 3023275 while (23276 subprocess.run( # noqa: S60323277 ["pg_isready", "-h", str(sockdir), "-U", "test"],23278 check=False,23279 capture_output=True,23280 ).returncode23281 != 023282 ):23283 # The socket appears before recovery finishes; createdb would23284 # fail with "the database system is starting up".23285 if time.monotonic() > deadline:23286 msg = "postgres did not start"23287> raise RuntimeError(msg)23288E RuntimeError: postgres did not start2328923290nixbot/tests/support.py:319: RuntimeError23291_____ ERROR at setup of test_reuse_post_process_error_still_reports_status _____23292[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142329323294self = <Coroutine test_reuse_post_process_error_still_reports_status>2329523296 def setup(self) -> None:23297 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"23298 if runner_fixture_id not in self.fixturenames:23299 self.fixturenames.append(runner_fixture_id)23300 # When loop factories are configured, resolve the loop factory23301 # fixture early so that a factory variant change cascades cache23302 # invalidation before any async fixture checks its cache.23303 hook_caller = self.config.hook.pytest_asyncio_loop_factories23304 if hook_caller.get_hookimpls():23305 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)23306> return super().setup()23307 ^^^^^^^^^^^^^^^2330823309/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 23310_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 23311nixbot/tests/conftest.py:33: in postgres_dsn23312 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:23313 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^23314/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__23315 return next(self.gen)23316 ^^^^^^^^^^^^^^23317_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2331823319tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...atch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')23320dbname = 'orchestrator'2332123322 @contextlib.contextmanager23323 def ephemeral_postgres(23324 tmp_path_factory: pytest.TempPathFactory, dbname: str23325 ) -> Iterator[str]:23326 """Throwaway Postgres on a unix socket with migrations applied."""23327 datadir = tmp_path_factory.mktemp("pgdata")23328 sockdir = tmp_path_factory.mktemp("pgsock")23329 subprocess.run( # noqa: S60323330 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],23331 check=True,23332 capture_output=True,23333 )23334 proc = subprocess.Popen( # noqa: S60323335 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],23336 stdout=subprocess.DEVNULL,23337 stderr=subprocess.DEVNULL,23338 )23339 try:23340 deadline = time.monotonic() + 3023341 while (23342 subprocess.run( # noqa: S60323343 ["pg_isready", "-h", str(sockdir), "-U", "test"],23344 check=False,23345 capture_output=True,23346 ).returncode23347 != 023348 ):23349 # The socket appears before recovery finishes; createdb would23350 # fail with "the database system is starting up".23351 if time.monotonic() > deadline:23352 msg = "postgres did not start"23353> raise RuntimeError(msg)23354E RuntimeError: postgres did not start2335523356nixbot/tests/support.py:319: RuntimeError23357____ ERROR at setup of test_reuse_with_missing_output_still_post_processes _____23358[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142335923360self = <Coroutine test_reuse_with_missing_output_still_post_processes>2336123362 def setup(self) -> None:23363 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"23364 if runner_fixture_id not in self.fixturenames:23365 self.fixturenames.append(runner_fixture_id)23366 # When loop factories are configured, resolve the loop factory23367 # fixture early so that a factory variant change cascades cache23368 # invalidation before any async fixture checks its cache.23369 hook_caller = self.config.hook.pytest_asyncio_loop_factories23370 if hook_caller.get_hookimpls():23371 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)23372> return super().setup()23373 ^^^^^^^^^^^^^^^2337423375/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 23376_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 23377nixbot/tests/conftest.py:33: in postgres_dsn23378 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:23379 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^23380/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__23381 return next(self.gen)23382 ^^^^^^^^^^^^^^23383_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2338423385tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/p...atch/f2bf843273ae9986/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')23386dbname = 'orchestrator'2338723388 @contextlib.contextmanager23389 def ephemeral_postgres(23390 tmp_path_factory: pytest.TempPathFactory, dbname: str23391 ) -> Iterator[str]:23392 """Throwaway Postgres on a unix socket with migrations applied."""23393 datadir = tmp_path_factory.mktemp("pgdata")23394 sockdir = tmp_path_factory.mktemp("pgsock")23395 subprocess.run( # noqa: S60323396 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],23397 check=True,23398 capture_output=True,23399 )23400 proc = subprocess.Popen( # noqa: S60323401 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],23402 stdout=subprocess.DEVNULL,23403 stderr=subprocess.DEVNULL,23404 )23405 try:23406 deadline = time.monotonic() + 3023407 while (23408 subprocess.run( # noqa: S60323409 ["pg_isready", "-h", str(sockdir), "-U", "test"],23410 check=False,23411 capture_output=True,23412 ).returncode23413 != 023414 ):23415 # The socket appears before recovery finishes; createdb would23416 # fail with "the database system is starting up".23417 if time.monotonic() > deadline:23418 msg = "postgres did not start"23419> raise RuntimeError(msg)23420E RuntimeError: postgres did not start2342123422nixbot/tests/support.py:319: RuntimeError23423=========================== short test summary info ============================23424ERROR nixbot/tests/test_cli.py::test_repo_list_and_toggle - RuntimeError: pos...23425ERROR nixbot/tests/test_cli.py::test_build_list_and_view - RuntimeError: post...23426ERROR nixbot/tests/test_cli.py::test_build_restart_cancel - RuntimeError: pos...23427ERROR nixbot/tests/test_cli.py::test_log_summary_attr_and_drv - RuntimeError:...23428ERROR nixbot/tests/test_cli.py::test_repo_and_build_inference - RuntimeError:...23429ERROR nixbot/tests/test_cli.py::test_auth_status - RuntimeError: postgres did...23430ERROR nixbot/tests/test_orchestrator.py::test_full_lifecycle - RuntimeError: ...23431ERROR nixbot/tests/test_orchestrator.py::test_failure_aggregation - RuntimeEr...23432ERROR nixbot/tests/test_recovery.py::test_resume_skips_terminal_attributes - ...23433ERROR nixbot/tests/test_orchestrator.py::test_tree_hash_reuse - RuntimeError:...23434ERROR nixbot/tests/test_orchestrator.py::test_eval_reuse_from_cancelled_build23435ERROR nixbot/tests/test_deliver.py::test_match_skip_and_run - RuntimeError: p...23436ERROR nixbot/tests/test_orchestrator.py::test_eval_reuse_skipped_when_drvs_gone23437ERROR nixbot/tests/test_recovery.py::test_settle_already_built - RuntimeError...23438ERROR nixbot/tests/test_deliver.py::test_permission_denied_records_reason - R...23439ERROR nixbot/tests/test_orchestrator.py::test_main_push_promotes_reused_pr_build23440ERROR nixbot/tests/test_recovery.py::test_retention_cleanup - RuntimeError: p...23441ERROR nixbot/tests/test_deliver.py::test_modified_files_gate - RuntimeError: ...23442ERROR nixbot/tests/test_orchestrator.py::test_merge_conflict_fails_build - Ru...23443ERROR nixbot/tests/test_deliver.py::test_forge_outage_is_retried - RuntimeErr...23444ERROR nixbot/tests/test_recovery.py::test_resume_includes_interrupted_building_attributes23445ERROR nixbot/tests/test_orchestrator.py::test_build_reuse_clears_pr_author_in_other_context23446ERROR nixbot/tests/test_deliver.py::test_forge_outage_gives_up - RuntimeError...23447ERROR nixbot/tests/test_recovery.py::test_retention_skips_restarted_builds - ...23448ERROR nixbot/tests/test_cli.py::test_log_follow_finished_attr_falls_back_to_stored_log23449ERROR nixbot/tests/test_orchestrator.py::test_effects_started_flag - RuntimeE...23450ERROR nixbot/tests/test_deliver.py::test_lock_shared_with_push_effect_and_supersession23451ERROR nixbot/tests/test_schedules.py::test_replace_schedules_preserves_last_run_for_unchanged_spec23452ERROR nixbot/tests/test_visibility.py::test_anonymous_sees_public_only - Runt...23453ERROR nixbot/tests/test_recovery.py::test_retention_ages_out_failed_caches - ...23454ERROR nixbot/tests/test_cli.py::test_log_effect_by_name_and_id - RuntimeError...23455ERROR nixbot/tests/test_service.py::test_scheduled_worktree_id_distinct_per_effect23456ERROR nixbot/tests/test_visibility.py::test_unauthorized_user_sees_public_only23457ERROR nixbot/tests/test_cli.py::test_log_effect_is_not_shadowed_by_attributes23458ERROR nixbot/tests/test_control.py::test_control_buttons_hidden_without_permission23459ERROR nixbot/tests/test_orchestrator.py::test_aggregation_generation_monotonic23460ERROR nixbot/tests/test_service.py::test_scheduled_worktree_id_sanitizes_traversal23461ERROR nixbot/tests/test_deliver.py::test_checkout_is_pr_head_without_token - ...23462ERROR nixbot/tests/test_schedules.py::test_replace_schedules_tolerates_duplicate_effect_names23463ERROR nixbot/tests/test_visibility.py::test_authorized_user_sees_private - Ru...23464ERROR nixbot/tests/test_recovery.py::test_rerun_clears_stale_eval_warnings - ...23465ERROR nixbot/tests/test_service.py::test_resolve_credential_path - RuntimeErr...23466ERROR nixbot/tests/test_control.py::test_admin_can_restart_and_cancel - Runti...23467ERROR nixbot/tests/test_orchestrator.py::test_internal_error_not_recorded_in_failed_build_cache23468ERROR nixbot/tests/test_visibility.py::test_admin_sees_everything - RuntimeEr...23469ERROR nixbot/tests/test_deliver.py::test_build_success_enqueues_delivery - Ru...23470ERROR nixbot/tests/test_control.py::test_pr_author_can_control_own_pr - Runti...23471ERROR nixbot/tests/test_schedules.py::test_store_roundtrip_and_due - RuntimeE...23472ERROR nixbot/tests/test_visibility.py::test_admin_sees_disabled_repos_without_search23473ERROR nixbot/tests/test_service.py::test_build_service_accepts_asyncpg_dsn - ...23474ERROR nixbot/tests/test_control.py::test_repo_writer_can_control_without_admin_or_authorship23475ERROR nixbot/tests/test_recovery.py::test_interrupted_effects_fail_on_recovery23476ERROR nixbot/tests/test_orchestrator.py::test_log_path_attribute_name_sanitized23477ERROR nixbot/tests/test_deliver.py::test_comment_and_close_webhooks_deliver23478ERROR nixbot/tests/test_schedules.py::test_due_effects_window_and_bad_spec - ...23479ERROR nixbot/tests/test_visibility.py::test_non_admin_does_not_see_disabled_repos23480ERROR nixbot/tests/test_control.py::test_approve_pr_requires_writer_not_author23481ERROR nixbot/tests/test_service.py::test_visibility_fetcher_and_cache_ttl_wired23482ERROR nixbot/tests/test_recovery.py::test_interrupted_effects_sweep_spares_live_effects23483ERROR nixbot/tests/test_control.py::test_cancel_all_requires_admin - RuntimeE...23484ERROR nixbot/tests/test_visibility.py::test_api_token_sees_private - RuntimeE...23485ERROR nixbot/tests/test_deliver.py::test_close_after_merge_push_reused_build23486ERROR nixbot/tests/test_orchestrator.py::test_cancel_interrupts_evaluation - ...23487ERROR nixbot/tests/test_control.py::test_cancel_all_cancels_pending_and_running_builds23488ERROR nixbot/tests/test_visibility.py::test_admin_api_token_sees_private - Ru...23489ERROR nixbot/tests/test_schedules.py::test_run_recording_and_overview - Runti...23490ERROR nixbot/tests/test_service.py::test_aclose_cancels_in_flight_tasks - Run...23491ERROR nixbot/tests/test_control.py::test_cancel_all_button_admin_only - Runti...23492ERROR nixbot/tests/test_deliver.py::test_build_finished_transitions - Runtime...23493ERROR nixbot/tests/test_visibility.py::test_forge_repo_admins_can_toggle_their_repos23494ERROR nixbot/tests/test_service.py::test_pr_close_discards_queued_changes - R...23495ERROR nixbot/tests/test_orchestrator.py::test_build_waiting_for_eval_slot_stays_pending23496ERROR nixbot/tests/test_control.py::test_csrf_cross_origin_rejected - Runtime...23497ERROR nixbot/tests/test_visibility.py::test_forge_repo_writers_can_control_their_repos23498ERROR nixbot/tests/test_upload.py::test_chunk_args_splits_on_byte_limit - Run...23499ERROR nixbot/tests/test_deliver.py::test_command_while_running_gets_notice - ...23500ERROR nixbot/tests/test_control.py::test_restart_single_attribute - RuntimeEr...23501ERROR nixbot/tests/test_orchestrator.py::test_pending_attribute_rows_recorded_for_crash_recovery23502ERROR nixbot/tests/test_service.py::test_build_branches_gates_branch_pushes23503ERROR nixbot/tests/test_upload.py::test_parse_path_info_both_formats - Runtim...23504ERROR nixbot/tests/test_visibility.py::test_fetch_errors_are_not_cached - Run...23505ERROR nixbot/tests/test_db_fuzz.py::test_concurrent_queries_do_not_deadlock[0]23506ERROR nixbot/tests/test_control.py::test_restart_unknown_attribute_is_404 - R...23507ERROR nixbot/tests/test_db.py::test_migrations_idempotent - RuntimeError: pos...23508ERROR nixbot/tests/test_deliver.py::test_other_command_does_not_supersede - R...23509ERROR nixbot/tests/test_visibility.py::test_access_cache_used - RuntimeError:...23510ERROR nixbot/tests/test_orchestrator.py::test_eval_warnings_null_when_empty23511ERROR nixbot/tests/test_db_fuzz.py::test_concurrent_queries_do_not_deadlock[1]23512ERROR nixbot/tests/test_service.py::test_tag_push_builds_peeled_commit - Runt...23513ERROR nixbot/tests/test_web.py::test_html_error_pages - RuntimeError: postgre...23514ERROR nixbot/tests/test_forge.py::test_project_store_sync_and_legacy_import23515ERROR nixbot/tests/test_visibility.py::test_metrics_unauthenticated_no_private_names23516ERROR nixbot/tests/test_web.py::test_api_strips_ansi_from_errors - RuntimeErr...23517ERROR nixbot/tests/test_cli_api.py::test_repos_and_builds - RuntimeError: pos...23518ERROR nixbot/tests/test_db.py::test_failed_migration_error_not_masked - Runti...23519ERROR nixbot/tests/test_deliver.py::test_label_change_redelivers_pull_request23520ERROR nixbot/tests/test_web.py::test_homepage - RuntimeError: postgres did no...23521ERROR nixbot/tests/test_visibility.py::test_configured_viewers_see_private - ...23522ERROR nixbot/tests/test_cli_api.py::test_finished_attrs_cursor - RuntimeError...23523ERROR nixbot/tests/test_orchestrator.py::test_rerun_flips_stale_red_eval_status23524ERROR nixbot/tests/test_forge.py::test_legacy_import_runs_despite_pull_based_rows23525ERROR nixbot/tests/test_service.py::test_tag_push_waits_for_a_branch_to_build_its_commit23526ERROR nixbot/tests/test_db_fuzz.py::test_concurrent_queries_do_not_deadlock[2]23527ERROR nixbot/tests/test_cli_api.py::test_control_requires_token - RuntimeErro...23528ERROR nixbot/tests/test_cli_api.py::test_enable_disable - RuntimeError: postg...23529ERROR nixbot/tests/test_visibility.py::test_api_token_inherits_login_groups23530ERROR nixbot/tests/test_web.py::test_project_page_with_filters - RuntimeError...23531ERROR nixbot/tests/test_deliver.py::test_build_outcome_and_restart_leave_event_history23532ERROR nixbot/tests/test_cli_api.py::test_log_toc_and_text - RuntimeError: pos...23533ERROR nixbot/tests/test_forge.py::test_legacy_import_scopes_topics_per_forge23534ERROR nixbot/tests/test_control.py::test_restart_attribute_with_special_chars_redirects_encoded23535ERROR nixbot/tests/test_upload.py::test_final_upload_reports_and_clears_queue23536ERROR nixbot/tests/test_db.py::test_edited_migration_rejected - RuntimeError:...23537ERROR nixbot/tests/test_cli_api.py::test_effect_run_text_and_stream - Runtime...23538ERROR nixbot/tests/test_web.py::test_status_badge_urls - RuntimeError: postgr...23539ERROR nixbot/tests/test_work_queue.py::test_enqueue_dedupes_pending - Runtime...23540ERROR nixbot/tests/test_orchestrator.py::test_recovery_rerun_failures_not_cached23541ERROR nixbot/tests/test_db_fuzz.py::test_concurrent_queries_do_not_deadlock[3]23542ERROR nixbot/tests/test_visibility.py::test_logout_invalidates_access_cache23543ERROR nixbot/tests/test_service.py::test_pr_approval_gate - RuntimeError: pos...23544ERROR nixbot/tests/test_deliver.py::test_restart_event_effect_reruns_with_stored_payload23545ERROR nixbot/tests/test_control.py::test_admin_project_toggle - RuntimeError:...23546ERROR nixbot/tests/test_web.py::test_all_digit_branch_is_filterable - Runtime...23547ERROR nixbot/tests/test_db.py::test_catchup_migration_repairs_pre_0033_schema23548ERROR nixbot/tests/test_control.py::test_toggle_activates_newly_enabled_project23549ERROR nixbot/tests/test_forge.py::test_prune_missing_disabled_projects - Runt...23550ERROR nixbot/tests/test_web.py::test_build_page - RuntimeError: postgres did ...23551ERROR nixbot/tests/test_db_fuzz.py::test_concurrent_queries_do_not_deadlock[4]23552ERROR nixbot/tests/test_work_queue.py::test_claim_serializes_per_key - Runtim...23553ERROR nixbot/tests/test_orchestrator.py::test_gitlab_mr_fetches_merge_request_refs23554ERROR nixbot/tests/test_upload.py::test_intermediates_batch_with_final_and_drop_invalid23555ERROR nixbot/tests/test_service.py::test_pr_approval_disabled_by_default - Ru...23556ERROR nixbot/tests/test_db.py::test_huge_attr_name_does_not_break_notify_trigger23557ERROR nixbot/tests/test_control.py::test_run_schedule - RuntimeError: postgre...23558ERROR nixbot/tests/test_web.py::test_attribute_rows_fragment_paginates - Runt...23559ERROR nixbot/tests/test_deliver.py::test_listing_failure_recorded_on_build - ...23560ERROR nixbot/tests/test_db_fuzz.py::test_concurrent_queries_do_not_deadlock[5]23561ERROR nixbot/tests/test_control.py::test_schedules_are_listed_on_the_effects_page23562ERROR nixbot/tests/test_work_queue.py::test_settle_interrupted_requeues - Run...23563ERROR nixbot/tests/test_forge.py::test_project_store_sync_skips_unchanged_rows23564ERROR nixbot/tests/test_orchestrator.py::test_rerun_fetches_forge_change_request_refs[github]23565ERROR nixbot/tests/test_upload.py::test_stdin_mode - RuntimeError: postgres d...23566ERROR nixbot/tests/test_service.py::test_restart_gitlab_mr_build_fetches_mr_refs23567ERROR nixbot/tests/test_web.py::test_build_page_shows_eval_warning_groups - R...23568ERROR nixbot/tests/test_control.py::test_repo_refresh - RuntimeError: postgre...23569ERROR nixbot/tests/test_db.py::test_schema_constraints - RuntimeError: postgr...23570ERROR nixbot/tests/test_deliver.py::test_tag_runs_onpush_effects_with_tag - R...23571ERROR nixbot/tests/test_web.py::test_build_page_shows_per_attribute_eval_warnings23572ERROR nixbot/tests/test_forge.py::test_gitea_hook_registration - RuntimeError...23573ERROR nixbot/tests/test_service.py::test_restart_eval_failed_build_reevaluates23574ERROR nixbot/tests/test_upload.py::test_pending_paths_survive_restart - Runti...23575ERROR nixbot/tests/test_db_fuzz.py::test_concurrent_queries_do_not_deadlock[6]23576ERROR nixbot/tests/test_orchestrator.py::test_rerun_fetches_forge_change_request_refs[gitlab]23577ERROR nixbot/tests/test_control.py::test_api_enable_disable - RuntimeError: p...23578ERROR nixbot/tests/test_web.py::test_build_page_renders_ansi_in_error - Runti...23579ERROR nixbot/tests/test_db.py::test_check_run_store_round_trip - RuntimeError...23580ERROR nixbot/tests/test_upload.py::test_uploader_factory_picks_stream - Runti...23581ERROR nixbot/tests/test_control.py::test_api_restart_and_cancel - RuntimeErro...23582ERROR nixbot/tests/test_deliver.py::test_tag_waits_for_a_running_release - Ru...23583ERROR nixbot/tests/test_forge.py::test_gitlab_heads_carry_target_branch_base23584ERROR nixbot/tests/test_service.py::test_restart_clears_stale_error_and_warnings23585ERROR nixbot/tests/test_web.py::test_running_build_shows_progress - RuntimeEr...23586ERROR nixbot/tests/test_orchestrator.py::test_cancelled_build_reuse_rebuilds23587ERROR nixbot/tests/test_db_fuzz.py::test_concurrent_queries_do_not_deadlock[7]23588ERROR nixbot/tests/test_control.py::test_api_token_lifecycle - RuntimeError: ...23589ERROR nixbot/tests/test_db.py::test_failed_status_store_component - RuntimeEr...23590ERROR nixbot/tests/test_upload.py::test_stream_reports_per_path_and_clears_queue23591ERROR nixbot/tests/test_web.py::test_build_page_live_markers - RuntimeError: ...23592ERROR nixbot/tests/test_deliver.py::test_tag_listing_failure_recorded_apart_from_build_effects23593ERROR nixbot/tests/test_forge.py::test_gitea_heads_encode_slashed_default_branch23594ERROR nixbot/tests/test_control.py::test_expired_api_tokens_pruned - RuntimeE...23595ERROR nixbot/tests/test_orchestrator.py::test_inflight_share_fans_out_final_status23596ERROR nixbot/tests/test_service.py::test_restart_unknown_attribute_is_a_noop23597ERROR nixbot/tests/test_web.py::test_attribute_history - RuntimeError: postgr...23598ERROR nixbot/tests/test_control.py::test_token_creation_with_expiry - Runtime...23599ERROR nixbot/tests/test_db.py::test_failed_build_cache_component - RuntimeErr...23600ERROR nixbot/tests/test_upload.py::test_stream_error_is_reported_with_message23601ERROR nixbot/tests/test_web.py::test_overview_ignores_pr_branches - RuntimeEr...23602ERROR nixbot/tests/test_control.py::test_proxy_user_can_manage_api_tokens - R...23603ERROR nixbot/tests/test_orchestrator.py::test_stale_event_does_not_supersede_newer_build23604ERROR nixbot/tests/test_web.py::test_pending_build_shows_eval_blocker - Runti...23605ERROR nixbot/tests/test_upload.py::test_stream_child_crash_refeeds_pending - ...23606ERROR nixbot/tests/test_service.py::test_restart_failed_eval_attribute_reevaluates23607ERROR nixbot/tests/test_db.py::test_get_or_create_build_concurrent_no_duplicates23608ERROR nixbot/tests/test_control.py::test_bearer_token_cannot_manage_api_tokens23609ERROR nixbot/tests/test_web.py::test_project_filter_escapes_like_wildcards - ...23610ERROR nixbot/tests/test_orchestrator.py::test_eval_failure_cleans_cancel_events23611ERROR nixbot/tests/test_control.py::test_api_token_controls_build - RuntimeEr...23612ERROR nixbot/tests/test_web.py::test_page_out_of_range_does_not_error - Runti...23613ERROR nixbot/tests/test_upload.py::test_failure_reports_retries_and_gives_up23614ERROR nixbot/tests/test_forge.py::test_reconcile_unbuilt_heads - RuntimeError...23615ERROR nixbot/tests/test_db.py::test_commit_eval_result_atomic - RuntimeError:...23616ERROR nixbot/tests/test_web.py::test_activity_page - RuntimeError: postgres d...23617ERROR nixbot/tests/test_orchestrator.py::test_eval_settings_wired - RuntimeEr...23618ERROR nixbot/tests/test_control.py::test_build_service_composition - RuntimeE...23619ERROR nixbot/tests/test_db.py::test_cancelled_build_not_reused - RuntimeError...23620ERROR nixbot/tests/test_forge.py::test_gitea_watermark_stops_pagination - Run...23621ERROR nixbot/tests/test_web.py::test_activity_no_sentinel_on_exact_page - Run...23622ERROR nixbot/tests/test_orchestrator.py::test_eval_netrc_withheld_from_pr_with_instance_wide_creds23623ERROR nixbot/tests/test_web.py::test_activity_rows_fragment_pagination - Runt...23624ERROR nixbot/tests/test_forge.py::test_gitlab_heads_filter_updated_after - Ru...23625ERROR nixbot/tests/test_db.py::test_reuse_backfills_pr_fields - RuntimeError:...23626ERROR nixbot/tests/test_control.py::test_restart_removes_stale_logs - Runtime...23627ERROR nixbot/tests/test_web.py::test_project_rows_fragment_filters - RuntimeE...23628ERROR nixbot/tests/test_orchestrator.py::test_eval_gcroots_dir_removed_after_build23629ERROR nixbot/tests/test_db.py::test_reuse_by_other_pr_clears_both_identity_fields23630ERROR nixbot/tests/test_forge.py::test_reconcile_watermark_store - RuntimeErr...23631ERROR nixbot/tests/test_control.py::test_restart_clears_failed_cache - Runtim...23632ERROR nixbot/tests/test_web.py::test_metrics_are_gauges - RuntimeError: postg...23633ERROR nixbot/tests/test_orchestrator.py::test_effects_run_after_default_branch_success23634ERROR nixbot/tests/test_control.py::test_webhook_setup_shown_to_admin_only - ...23635ERROR nixbot/tests/test_db.py::test_branch_push_takes_over_reused_pr_build - ...23636ERROR nixbot/tests/test_web.py::test_metrics_are_cached - RuntimeError: postg...23637ERROR nixbot/tests/test_control.py::test_webhook_secret_regeneration - Runtim...23638ERROR nixbot/tests/test_web.py::test_static_urls_carry_content_version - Runt...23639ERROR nixbot/tests/test_forge.py::test_register_repo_hook_without_admin_warns23640ERROR nixbot/tests/test_db.py::test_pr_does_not_capture_branch_push_build - R...23641ERROR nixbot/tests/test_orchestrator.py::test_when_changed_reuses_the_last_success23642ERROR nixbot/tests/test_control.py::test_retry_after_parsing - RuntimeError: ...23643ERROR nixbot/tests/test_service.py::test_interrupted_reeval_keeps_attribute_rows23644ERROR nixbot/tests/test_web.py::test_legacy_project_urls_redirect - RuntimeEr...23645ERROR nixbot/tests/test_control.py::test_work_retry_delay_honors_retry_after23646ERROR nixbot/tests/test_db.py::test_complete_attribute_preserves_eval_outputs23647ERROR nixbot/tests/test_web.py::test_private_repo_public_badge_bypasses_session_visibility23648ERROR nixbot/tests/test_forge.py::test_gitlab_hook_registration - RuntimeErro...23649ERROR nixbot/tests/test_orchestrator.py::test_when_changed_decides_when_the_lock_is_free23650ERROR nixbot/tests/test_service.py::test_restart_cancelled_build_reschedules_attributes23651ERROR nixbot/tests/test_web.py::test_legacy_redirect_hides_invisible_projects23652ERROR nixbot/tests/test_control.py::test_report_retry - RuntimeError: postgre...23653ERROR nixbot/tests/test_db.py::test_complete_attribute_marks_substituted_as_cached23654ERROR nixbot/tests/test_forge.py::test_register_repo_hook_500_with_403_in_body_raises23655ERROR nixbot/tests/test_orchestrator.py::test_when_changed_ignores_failures_and_follows_a_restart23656ERROR nixbot/tests/test_web.py::test_legacy_redirect_404s_on_ambiguous_owner_name23657ERROR nixbot/tests/test_service.py::test_restart_cancelled_mid_eval_reevaluates23658ERROR nixbot/tests/test_web.py::test_health_and_static - RuntimeError: postgr...23659ERROR nixbot/tests/test_control.py::test_effect_item_setup_failure_settles_row23660ERROR nixbot/tests/test_forge.py::test_gitlab_register_repo_hook_status_classification23661ERROR nixbot/tests/test_db.py::test_complete_attribute_replaces_log_metadata23662ERROR nixbot/tests/test_orchestrator.py::test_pr_worktree_config_cannot_grant_effects23663ERROR nixbot/tests/test_web.py::test_404s - RuntimeError: postgres did not start23664ERROR nixbot/tests/test_service.py::test_restart_while_unwinding_waits_then_runs23665ERROR nixbot/tests/test_control.py::test_restart_attribute_posts_pending - Ru...23666ERROR nixbot/tests/test_orchestrator.py::test_rerun_effects_runs_effects_again23667ERROR nixbot/tests/test_db.py::test_record_attributes_persists_pending_rows_with_outputs23668ERROR nixbot/tests/test_forge.py::test_gitea_legacy_hook_delete_failure_warns23669ERROR nixbot/tests/test_service.py::test_restart_attribute_while_build_running23670ERROR nixbot/tests/test_control.py::test_recovery_reports_interrupted_effects23671ERROR nixbot/tests/test_orchestrator.py::test_rerun_effects_cancels_hung_effect23672ERROR nixbot/tests/test_web.py::test_log_viewer_and_raw - RuntimeError: postg...23673ERROR nixbot/tests/test_db.py::test_mark_attribute_building_does_not_resurrect_cancelled_rows23674ERROR nixbot/tests/test_forge.py::test_sync_tolerates_in_batch_duplicates - R...23675ERROR nixbot/tests/test_web.py::test_structured_log_endpoints - RuntimeError:...23676ERROR nixbot/tests/test_service.py::test_cancel_not_running_posts_forge_status23677ERROR nixbot/tests/test_control.py::test_work_dispatch - RuntimeError: postgr...23678ERROR nixbot/tests/test_orchestrator.py::test_cancel_hung_effect - RuntimeErr...23679ERROR nixbot/tests/test_db.py::test_mark_attribute_building_sets_status_and_started_at23680ERROR nixbot/tests/test_web.py::test_structured_log_window_caps_huge_derivation23681ERROR nixbot/tests/test_service.py::test_check_rerequested_dispatch - Runtime...23682ERROR nixbot/tests/test_web.py::test_attr_named_dot_txt_not_shadowed_by_raw_route23683ERROR nixbot/tests/test_control.py::test_restart_resets_effects - RuntimeErro...23684ERROR nixbot/tests/test_db.py::test_complete_attribute_if_unfinished_skips_terminal_rows23685ERROR nixbot/tests/test_web.py::test_attr_names_with_special_characters - Run...23686ERROR nixbot/tests/test_control.py::test_effects_restart_route - RuntimeError...23687ERROR nixbot/tests/test_service.py::test_cancel_not_running_settles_attribute_rows23688ERROR nixbot/tests/test_web.py::test_log_viewer_waits_for_queued_attribute - ...23689ERROR nixbot/tests/test_db.py::test_failed_build_cache_scoped_per_project - R...23690ERROR nixbot/tests/test_control.py::test_single_effect_restart_route - Runtim...23691ERROR nixbot/tests/test_web.py::test_log_viewer_unavailable_for_logless_status23692ERROR nixbot/tests/test_orchestrator.py::test_rerun_single_effect - RuntimeEr...23693ERROR nixbot/tests/test_service.py::test_cancel_attribute_not_running_reaggregates_build23694ERROR nixbot/tests/test_control.py::test_effect_cancel_route - RuntimeError: ...23695ERROR nixbot/tests/test_db.py::test_eval_stats_lifecycle - RuntimeError: post...23696ERROR nixbot/tests/test_web.py::test_eval_error_served_like_build_log - Runti...23697ERROR nixbot/tests/test_control.py::test_webhook_panel_is_forge_aware - Runti...23698ERROR nixbot/tests/test_orchestrator.py::test_recovery_rerun_runs_effects - R...23699ERROR nixbot/tests/test_web.py::test_api_projects_and_builds - RuntimeError: ...23700ERROR nixbot/tests/test_service.py::test_pull_based_projects_synced_and_buildable23701ERROR nixbot/tests/test_control.py::test_api_attr_and_effects_control - Runti...23702ERROR nixbot/tests/test_web.py::test_build_rows_link_refs - RuntimeError: pos...23703ERROR nixbot/tests/test_orchestrator.py::test_unsupported_system_attr_does_not_block_aggregation23704ERROR nixbot/tests/test_service.py::test_topic_does_not_hard_filter_discovery23705ERROR nixbot/tests/test_web.py::test_attributes_sort_building_before_pending23706ERROR nixbot/tests/test_web.py::test_queue_sorts_active_before_pending - Runt...23707ERROR nixbot/tests/test_service.py::test_startup_reevaluates_interrupted_eval23708ERROR nixbot/tests/test_orchestrator.py::test_linked_context_reported_on_eval_failure23709ERROR nixbot/tests/test_web.py::test_queue_position_is_global_and_skips_running23710ERROR nixbot/tests/test_service.py::test_rerun_of_interrupted_eval_reevaluates23711ERROR nixbot/tests/test_orchestrator.py::test_eval_failure_settles_streamed_attributes23712ERROR nixbot/tests/test_web.py::test_openapi_docs - RuntimeError: postgres di...23713ERROR nixbot/tests/test_web.py::test_structured_live_stream - RuntimeError: p...23714ERROR nixbot/tests/test_service.py::test_rerun_resumes_building_rows_and_keeps_finished23715ERROR nixbot/tests/test_orchestrator.py::test_effect_rows_roundtrip - Runtime...23716ERROR nixbot/tests/test_web.py::test_drv_raw_serves_running_attribute - Runti...23717ERROR nixbot/tests/test_web.py::test_log_sse_stream_caps_history_backlog - Ru...23718ERROR nixbot/tests/test_service.py::test_rerun_reevaluates_when_drv_paths_were_garbage_collected23719ERROR nixbot/tests/test_orchestrator.py::test_pending_effects_replace_skipped_rows23720ERROR nixbot/tests/test_web.py::test_log_sse_stream_neutralizes_carriage_returns23721ERROR nixbot/tests/test_web.py::test_api_builds_commit_filter - RuntimeError:...23722ERROR nixbot/tests/test_service.py::test_reeval_failure_marks_build_failed - ...23723ERROR nixbot/tests/test_orchestrator.py::test_effect_items_resume_only_pending23724ERROR nixbot/tests/test_web.py::test_log_tail_param - RuntimeError: postgres ...23725ERROR nixbot/tests/test_service.py::test_gitlab_discovery_and_hook_registration23726ERROR nixbot/tests/test_orchestrator.py::test_effect_crash_settles_the_row - ...23727ERROR nixbot/tests/test_web.py::test_api_build_failures - RuntimeError: postg...23728ERROR nixbot/tests/test_web.py::test_api_build_failures_rejects_non_positive_tail23729ERROR nixbot/tests/test_service.py::test_health_serves_while_startup_blocks23730ERROR nixbot/tests/test_orchestrator.py::test_concurrent_effects_use_independent_worktrees23731ERROR nixbot/tests/test_web.py::test_llms_txt - RuntimeError: postgres did no...23732ERROR nixbot/tests/test_web.py::test_event_broker_pushes_status_changes - Run...23733ERROR nixbot/tests/test_orchestrator.py::test_locked_effect_gets_shared_dedup_key23734ERROR nixbot/tests/test_web.py::test_events_stream_coalesces_burst - RuntimeE...23735ERROR nixbot/tests/test_web.py::test_events_stream_refreshes_visibility - Run...23736ERROR nixbot/tests/test_orchestrator.py::test_effect_item_not_claimable_until_dep_settles23737ERROR nixbot/tests/test_web.py::test_attribute_search - RuntimeError: postgre...23738ERROR nixbot/tests/test_web.py::test_build_page_shows_effects - RuntimeError:...23739ERROR nixbot/tests/test_orchestrator.py::test_effect_dep_failure_skips_dependent23740ERROR nixbot/tests/test_web.py::test_build_page_shows_event_effects - Runtime...23741ERROR nixbot/tests/test_orchestrator.py::test_lock_serializes_builds_without_interleaving23742ERROR nixbot/tests/test_web.py::test_build_page_groups_dependency_checks_apart23743ERROR nixbot/tests/test_web.py::test_effect_log_raw_text - RuntimeError: post...23744ERROR nixbot/tests/test_orchestrator.py::test_effect_dep_cycle_fails_discovery23745ERROR nixbot/tests/test_web.py::test_effect_log_viewer_status_icon - RuntimeE...23746ERROR nixbot/tests/test_orchestrator.py::test_failed_effect_reports_failure_status23747ERROR nixbot/tests/test_orchestrator.py::test_post_process_error_does_not_wedge_build23748ERROR nixbot/tests/test_web.py::test_effect_changes_notify_build_events - Run...23749ERROR nixbot/tests/test_web.py::test_effects_state_api - RuntimeError: postgr...23750ERROR nixbot/tests/test_orchestrator.py::test_unexpected_eval_path_error_settles_build23751ERROR nixbot/tests/test_web.py::test_pr_comment_api - RuntimeError: postgres ...23752ERROR nixbot/tests/test_web.py::test_workload_identity_api - RuntimeError: po...23753ERROR nixbot/tests/test_orchestrator.py::test_reuse_empty_succeeded_build_posts_eval_success23754ERROR nixbot/tests/test_web.py::test_logout_revokes_session_cookie - RuntimeE...23755ERROR nixbot/tests/test_orchestrator.py::test_stale_event_reusing_old_build_does_not_cancel_newer23756ERROR nixbot/tests/test_web.py::test_gitlab_nested_group_routes - RuntimeErro...23757ERROR nixbot/tests/test_web.py::test_scheduled_run_viewer_renders_ansi - Runt...23758ERROR nixbot/tests/test_orchestrator.py::test_reuse_for_default_branch_push_runs_effects23759ERROR nixbot/tests/test_web.py::test_scheduled_run_viewer_cross_project_40423760ERROR nixbot/tests/test_orchestrator.py::test_tag_reusing_deployed_build_delivers_its_own_effects23761ERROR nixbot/tests/test_web.py::test_scheduled_run_log_unavailable_placeholder23762ERROR nixbot/tests/test_web.py::test_scheduled_run_viewer_waiting_before_log23763ERROR nixbot/tests/test_orchestrator.py::test_tag_attached_to_in_flight_build_delivers_on_success23764ERROR nixbot/tests/test_web.py::test_project_tabs_link_builds_and_effects - R...23765ERROR nixbot/tests/test_web.py::test_failing_badge_counts_effects_whose_latest_run_failed23766ERROR nixbot/tests/test_orchestrator.py::test_restart_of_gated_build_settles_effect_rows23767ERROR nixbot/tests/test_web.py::test_old_schedule_history_url_redirects - Run...23768ERROR nixbot/tests/test_web.py::test_project_effects_filter_and_paginate - Ru...23769ERROR nixbot/tests/test_orchestrator.py::test_restart_build_drops_queued_effect_items23770ERROR nixbot/tests/test_web.py::test_scheduled_run_stream_replays_history - R...23771ERROR nixbot/tests/test_orchestrator.py::test_restart_effects_after_pr_attach_keeps_effects_ref23772ERROR nixbot/tests/test_web.py::test_scheduled_run_notify_build_events - Runt...23773ERROR nixbot/tests/test_web.py::test_api_log_toc_and_text - RuntimeError: pos...23774ERROR nixbot/tests/test_orchestrator.py::test_gated_restart_then_allowed_reuse_deploys23775ERROR nixbot/tests/test_web.py::test_api_log_toc_flat_log_fallback - RuntimeE...23776ERROR nixbot/tests/test_web.py::test_api_log_stream_json - RuntimeError: post...23777ERROR nixbot/tests/test_orchestrator.py::test_rerun_single_effect_takes_pending_dependents23778ERROR nixbot/tests/test_web.py::test_build_eval_stats_surface - RuntimeError:...23779ERROR nixbot/tests/test_orchestrator.py::test_reuse_replays_effect_statuses_to_new_commit23780ERROR nixbot/tests/test_orchestrator.py::test_attach_to_already_terminal_build_replays_status23781ERROR nixbot/tests/test_orchestrator.py::test_cancel_during_eval_resolves_linked_eval_contexts23782ERROR nixbot/tests/test_orchestrator.py::test_effect_log_does_not_collide_with_attribute_log23783ERROR nixbot/tests/test_orchestrator.py::test_post_process_paths_are_forge_scoped23784ERROR nixbot/tests/test_orchestrator.py::test_effects_phase_error_keeps_succeeded_build23785ERROR nixbot/tests/test_orchestrator.py::test_reuse_post_process_error_still_reports_status23786ERROR nixbot/tests/test_orchestrator.py::test_reuse_with_missing_output_still_post_processes23787================= 477 passed, 29 skipped, 363 errors in 40.26s =================