python3.14-nixbot-tests
checks.aarch64-darwin.nixbot-tests
· build #440
· 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/67n1zzqml01w42sn38w9p1zi1k18d55a-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/2bc2da777dbb5aa7/build/ in /nix/store/ckyk77jf97n3av9l94wgxkzwrj33j7xh-python3.14-nixbot-tests...38patching script interpreter paths in /nix/store/ckyk77jf97n3av9l94wgxkzwrj33j7xh-python3.14-nixbot-tests39stripping (with command strip and flags -S) in /nix/store/ckyk77jf97n3av9l94wgxkzwrj33j7xh-python3.14-nixbot-tests/lib /nix/store/ckyk77jf97n3av9l94wgxkzwrj33j7xh-python3.14-nixbot-tests/bin40checking for references to /private/var/tb/8/scratch/2bc2da777dbb5aa7/build/ in /nix/store/rflavrxwf9ry7dv3mc6k4mfxakrk4qy8-python3.14-nixbot-tests-dist...41patching script interpreter paths in /nix/store/rflavrxwf9ry7dv3mc6k4mfxakrk4qy8-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/ckyk77jf97n3av9l94wgxkzwrj33j7xh-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/2bc2da777dbb5aa7/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 [870 items]112113...............................s..ssss.sss....ss........................ [ 8%]114.................................s..ssssssss............s............... [ 16%]115.s...................................................................... [ 24%]116........................................................................ [ 33%]117...........................ssss..................................s...... [ 41%]118........................................................................ [ 49%]119.............................s.EEEEEE..EE.EEEE.EEEE.E.E.EEEEEEEEEEEEEEEE [ 57%]120EEEEEEEEEEEEEE.EE.EEEE.EEE...E..EEEEEE.EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE [ 66%]121EEEEEEEEEEEEEEEEEEEEEEEEEEEEE.EEEEEE..EEEEEEEEEEEE.EE.EEEEEEEEEEEEEEEEEE [ 74%]122EEEEEEEEEEEEEEEEEEEEEEE.E..EEEEEEE........EEEEEEEEE.EEE.EE.E..sEEEEEEEsE [ 82%]123.EEEEEE.EEEEEEEEEEEEEEEEEEEEEEEEE.EEEEEEEEEEEEEEEEEEEEEEEEEEEEEE.EEEEEEE [ 91%]124EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE [ 99%]125EEEEEE [100%]126==================================== ERRORS ====================================127___________ ERROR at setup of test_resume_skips_terminal_attributes ____________128[gw19] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14129130self = <Coroutine test_resume_skips_terminal_attributes>131132 def setup(self) -> None:133 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"134 if runner_fixture_id not in self.fixturenames:135 self.fixturenames.append(runner_fixture_id)136 # When loop factories are configured, resolve the loop factory137 # fixture early so that a factory variant change cascades cache138 # invalidation before any async fixture checks its cache.139 hook_caller = self.config.hook.pytest_asyncio_loop_factories140 if hook_caller.get_hookimpls():141 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)142> return super().setup()143 ^^^^^^^^^^^^^^^144145/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 146_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 147/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:926: in pytest_fixture_setup148 return (yield)149 ^^^^^150nixbot/tests/conftest.py:33: in postgres_dsn151 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:152 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^153/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__154 return next(self.gen)155 ^^^^^^^^^^^^^^156_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 157158tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...tch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw19'), _retention_count=3, _retention_policy='all')159dbname = 'recovery'160161 @contextlib.contextmanager162 def ephemeral_postgres(163 tmp_path_factory: pytest.TempPathFactory, dbname: str164 ) -> Iterator[str]:165 """Throwaway Postgres on a unix socket with migrations applied."""166 datadir = tmp_path_factory.mktemp("pgdata")167 sockdir = tmp_path_factory.mktemp("pgsock")168 subprocess.run( # noqa: S603169 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],170 check=True,171 capture_output=True,172 )173 proc = subprocess.Popen( # noqa: S603174 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],175 stdout=subprocess.DEVNULL,176 stderr=subprocess.DEVNULL,177 )178 try:179 deadline = time.monotonic() + 30180 while (181 subprocess.run( # noqa: S603182 ["pg_isready", "-h", str(sockdir), "-U", "test"],183 check=False,184 capture_output=True,185 ).returncode186 != 0187 ):188 # The socket appears before recovery finishes; createdb would189 # fail with "the database system is starting up".190 if time.monotonic() > deadline:191 msg = "postgres did not start"192> raise RuntimeError(msg)193E RuntimeError: postgres did not start194195nixbot/tests/support.py:319: RuntimeError196_________________ ERROR at setup of test_repo_list_and_toggle __________________197[gw12] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14198199fixturedef = <FixtureDef argname='postgres_dsn' scope='module' baseid='nixbot/tests'>200request = <SubRequest 'postgres_dsn' for <Function test_repo_list_and_toggle>>201202 @pytest.hookimpl(wrapper=True)203 def pytest_fixture_setup(fixturedef: FixtureDef, request) -> object | None:204 if (205 fixturedef.argname == "event_loop_policy"206 and fixturedef.func.__module__ != __name__207 ):208 warnings.warn(209 PytestDeprecationWarning(_EVENT_LOOP_POLICY_FIXTURE_DEPRECATION_WARNING),210 )211 asyncio_mode = _get_asyncio_mode(request.config)212 if not _is_asyncio_fixture_function(fixturedef.func):213 if asyncio_mode == Mode.STRICT:214 # Ignore async fixtures without explicit asyncio mark in strict mode215 # This applies to pytest_trio fixtures, for example216 return (yield)217 if not _is_coroutine_or_asyncgen(fixturedef.func):218> return (yield)219 ^^^^^220221/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:926: 222_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 223nixbot/tests/conftest.py:33: in postgres_dsn224 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:225 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^226/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__227 return next(self.gen)228 ^^^^^^^^^^^^^^229_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 230231tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...tch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw12'), _retention_count=3, _retention_policy='all')232dbname = 'cli'233234 @contextlib.contextmanager235 def ephemeral_postgres(236 tmp_path_factory: pytest.TempPathFactory, dbname: str237 ) -> Iterator[str]:238 """Throwaway Postgres on a unix socket with migrations applied."""239 datadir = tmp_path_factory.mktemp("pgdata")240 sockdir = tmp_path_factory.mktemp("pgsock")241 subprocess.run( # noqa: S603242 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],243 check=True,244 capture_output=True,245 )246 proc = subprocess.Popen( # noqa: S603247 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],248 stdout=subprocess.DEVNULL,249 stderr=subprocess.DEVNULL,250 )251 try:252 deadline = time.monotonic() + 30253 while (254 subprocess.run( # noqa: S603255 ["pg_isready", "-h", str(sockdir), "-U", "test"],256 check=False,257 capture_output=True,258 ).returncode259 != 0260 ):261 # The socket appears before recovery finishes; createdb would262 # fail with "the database system is starting up".263 if time.monotonic() > deadline:264 msg = "postgres did not start"265> raise RuntimeError(msg)266E RuntimeError: postgres did not start267268nixbot/tests/support.py:319: RuntimeError269_________________ ERROR at setup of test_settle_already_built __________________270[gw19] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14271272self = <Coroutine test_settle_already_built>273274 def setup(self) -> None:275 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"276 if runner_fixture_id not in self.fixturenames:277 self.fixturenames.append(runner_fixture_id)278 # When loop factories are configured, resolve the loop factory279 # fixture early so that a factory variant change cascades cache280 # invalidation before any async fixture checks its cache.281 hook_caller = self.config.hook.pytest_asyncio_loop_factories282 if hook_caller.get_hookimpls():283 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)284> return super().setup()285 ^^^^^^^^^^^^^^^286287/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 288_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 289nixbot/tests/conftest.py:33: in postgres_dsn290 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:291 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^292/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__293 return next(self.gen)294 ^^^^^^^^^^^^^^295_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 296297tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...tch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw19'), _retention_count=3, _retention_policy='all')298dbname = 'recovery'299300 @contextlib.contextmanager301 def ephemeral_postgres(302 tmp_path_factory: pytest.TempPathFactory, dbname: str303 ) -> Iterator[str]:304 """Throwaway Postgres on a unix socket with migrations applied."""305 datadir = tmp_path_factory.mktemp("pgdata")306 sockdir = tmp_path_factory.mktemp("pgsock")307 subprocess.run( # noqa: S603308 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],309 check=True,310 capture_output=True,311 )312 proc = subprocess.Popen( # noqa: S603313 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],314 stdout=subprocess.DEVNULL,315 stderr=subprocess.DEVNULL,316 )317 try:318 deadline = time.monotonic() + 30319 while (320 subprocess.run( # noqa: S603321 ["pg_isready", "-h", str(sockdir), "-U", "test"],322 check=False,323 capture_output=True,324 ).returncode325 != 0326 ):327 # The socket appears before recovery finishes; createdb would328 # fail with "the database system is starting up".329 if time.monotonic() > deadline:330 msg = "postgres did not start"331> raise RuntimeError(msg)332E RuntimeError: postgres did not start333334nixbot/tests/support.py:319: RuntimeError335__________________ ERROR at setup of test_build_list_and_view __________________336[gw12] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14337338request = <SubRequest 'postgres_dsn' for <Function test_repo_list_and_toggle>>339tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...tch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw12'), _retention_count=3, _retention_policy='all')340341 @pytest.fixture(scope="module")342 def postgres_dsn(343 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory344 ) -> Iterator[str]:345 if shutil.which("initdb") is None:346 pytest.skip("postgresql not available")347 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")348> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:349 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^350351nixbot/tests/conftest.py:33: 352_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 353/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__354 return next(self.gen)355 ^^^^^^^^^^^^^^356_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 357358tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...tch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw12'), _retention_count=3, _retention_policy='all')359dbname = 'cli'360361 @contextlib.contextmanager362 def ephemeral_postgres(363 tmp_path_factory: pytest.TempPathFactory, dbname: str364 ) -> Iterator[str]:365 """Throwaway Postgres on a unix socket with migrations applied."""366 datadir = tmp_path_factory.mktemp("pgdata")367 sockdir = tmp_path_factory.mktemp("pgsock")368 subprocess.run( # noqa: S603369 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],370 check=True,371 capture_output=True,372 )373 proc = subprocess.Popen( # noqa: S603374 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],375 stdout=subprocess.DEVNULL,376 stderr=subprocess.DEVNULL,377 )378 try:379 deadline = time.monotonic() + 30380 while (381 subprocess.run( # noqa: S603382 ["pg_isready", "-h", str(sockdir), "-U", "test"],383 check=False,384 capture_output=True,385 ).returncode386 != 0387 ):388 # The socket appears before recovery finishes; createdb would389 # fail with "the database system is starting up".390 if time.monotonic() > deadline:391 msg = "postgres did not start"392> raise RuntimeError(msg)393E RuntimeError: postgres did not start394395nixbot/tests/support.py:319: RuntimeError396_________________ ERROR at setup of test_build_restart_cancel __________________397[gw12] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14398399request = <SubRequest 'postgres_dsn' for <Function test_repo_list_and_toggle>>400tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...tch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw12'), _retention_count=3, _retention_policy='all')401402 @pytest.fixture(scope="module")403 def postgres_dsn(404 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory405 ) -> Iterator[str]:406 if shutil.which("initdb") is None:407 pytest.skip("postgresql not available")408 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")409> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:410 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^411412nixbot/tests/conftest.py:33: 413_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 414/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__415 return next(self.gen)416 ^^^^^^^^^^^^^^417_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 418419tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...tch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw12'), _retention_count=3, _retention_policy='all')420dbname = 'cli'421422 @contextlib.contextmanager423 def ephemeral_postgres(424 tmp_path_factory: pytest.TempPathFactory, dbname: str425 ) -> Iterator[str]:426 """Throwaway Postgres on a unix socket with migrations applied."""427 datadir = tmp_path_factory.mktemp("pgdata")428 sockdir = tmp_path_factory.mktemp("pgsock")429 subprocess.run( # noqa: S603430 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],431 check=True,432 capture_output=True,433 )434 proc = subprocess.Popen( # noqa: S603435 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],436 stdout=subprocess.DEVNULL,437 stderr=subprocess.DEVNULL,438 )439 try:440 deadline = time.monotonic() + 30441 while (442 subprocess.run( # noqa: S603443 ["pg_isready", "-h", str(sockdir), "-U", "test"],444 check=False,445 capture_output=True,446 ).returncode447 != 0448 ):449 # The socket appears before recovery finishes; createdb would450 # fail with "the database system is starting up".451 if time.monotonic() > deadline:452 msg = "postgres did not start"453> raise RuntimeError(msg)454E RuntimeError: postgres did not start455456nixbot/tests/support.py:319: RuntimeError457___________________ ERROR at setup of test_retention_cleanup ___________________458[gw19] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14459460self = <Coroutine test_retention_cleanup>461462 def setup(self) -> None:463 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"464 if runner_fixture_id not in self.fixturenames:465 self.fixturenames.append(runner_fixture_id)466 # When loop factories are configured, resolve the loop factory467 # fixture early so that a factory variant change cascades cache468 # invalidation before any async fixture checks its cache.469 hook_caller = self.config.hook.pytest_asyncio_loop_factories470 if hook_caller.get_hookimpls():471 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)472> return super().setup()473 ^^^^^^^^^^^^^^^474475/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 476_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 477nixbot/tests/conftest.py:33: in postgres_dsn478 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:479 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^480/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__481 return next(self.gen)482 ^^^^^^^^^^^^^^483_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 484485tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...tch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw19'), _retention_count=3, _retention_policy='all')486dbname = 'recovery'487488 @contextlib.contextmanager489 def ephemeral_postgres(490 tmp_path_factory: pytest.TempPathFactory, dbname: str491 ) -> Iterator[str]:492 """Throwaway Postgres on a unix socket with migrations applied."""493 datadir = tmp_path_factory.mktemp("pgdata")494 sockdir = tmp_path_factory.mktemp("pgsock")495 subprocess.run( # noqa: S603496 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],497 check=True,498 capture_output=True,499 )500 proc = subprocess.Popen( # noqa: S603501 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],502 stdout=subprocess.DEVNULL,503 stderr=subprocess.DEVNULL,504 )505 try:506 deadline = time.monotonic() + 30507 while (508 subprocess.run( # noqa: S603509 ["pg_isready", "-h", str(sockdir), "-U", "test"],510 check=False,511 capture_output=True,512 ).returncode513 != 0514 ):515 # The socket appears before recovery finishes; createdb would516 # fail with "the database system is starting up".517 if time.monotonic() > deadline:518 msg = "postgres did not start"519> raise RuntimeError(msg)520E RuntimeError: postgres did not start521522nixbot/tests/support.py:319: RuntimeError523_______________ ERROR at setup of test_log_summary_attr_and_drv ________________524[gw12] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14525526request = <SubRequest 'postgres_dsn' for <Function test_repo_list_and_toggle>>527tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...tch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw12'), _retention_count=3, _retention_policy='all')528529 @pytest.fixture(scope="module")530 def postgres_dsn(531 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory532 ) -> Iterator[str]:533 if shutil.which("initdb") is None:534 pytest.skip("postgresql not available")535 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")536> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:537 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^538539nixbot/tests/conftest.py:33: 540_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 541/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__542 return next(self.gen)543 ^^^^^^^^^^^^^^544_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 545546tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...tch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw12'), _retention_count=3, _retention_policy='all')547dbname = 'cli'548549 @contextlib.contextmanager550 def ephemeral_postgres(551 tmp_path_factory: pytest.TempPathFactory, dbname: str552 ) -> Iterator[str]:553 """Throwaway Postgres on a unix socket with migrations applied."""554 datadir = tmp_path_factory.mktemp("pgdata")555 sockdir = tmp_path_factory.mktemp("pgsock")556 subprocess.run( # noqa: S603557 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],558 check=True,559 capture_output=True,560 )561 proc = subprocess.Popen( # noqa: S603562 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],563 stdout=subprocess.DEVNULL,564 stderr=subprocess.DEVNULL,565 )566 try:567 deadline = time.monotonic() + 30568 while (569 subprocess.run( # noqa: S603570 ["pg_isready", "-h", str(sockdir), "-U", "test"],571 check=False,572 capture_output=True,573 ).returncode574 != 0575 ):576 # The socket appears before recovery finishes; createdb would577 # fail with "the database system is starting up".578 if time.monotonic() > deadline:579 msg = "postgres did not start"580> raise RuntimeError(msg)581E RuntimeError: postgres did not start582583nixbot/tests/support.py:319: RuntimeError584_________________ ERROR at setup of test_migrations_idempotent _________________585[gw10] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14586587self = <Coroutine test_migrations_idempotent>588589 def setup(self) -> None:590 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"591 if runner_fixture_id not in self.fixturenames:592 self.fixturenames.append(runner_fixture_id)593 # When loop factories are configured, resolve the loop factory594 # fixture early so that a factory variant change cascades cache595 # invalidation before any async fixture checks its cache.596 hook_caller = self.config.hook.pytest_asyncio_loop_factories597 if hook_caller.get_hookimpls():598 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)599> return super().setup()600 ^^^^^^^^^^^^^^^601602/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 603_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 604/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:926: in pytest_fixture_setup605 return (yield)606 ^^^^^607nixbot/tests/conftest.py:33: in postgres_dsn608 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:609 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^610/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__611 return next(self.gen)612 ^^^^^^^^^^^^^^613_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 614615tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...tch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw10'), _retention_count=3, _retention_policy='all')616dbname = 'db'617618 @contextlib.contextmanager619 def ephemeral_postgres(620 tmp_path_factory: pytest.TempPathFactory, dbname: str621 ) -> Iterator[str]:622 """Throwaway Postgres on a unix socket with migrations applied."""623 datadir = tmp_path_factory.mktemp("pgdata")624 sockdir = tmp_path_factory.mktemp("pgsock")625 subprocess.run( # noqa: S603626 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],627 check=True,628 capture_output=True,629 )630 proc = subprocess.Popen( # noqa: S603631 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],632 stdout=subprocess.DEVNULL,633 stderr=subprocess.DEVNULL,634 )635 try:636 deadline = time.monotonic() + 30637 while (638 subprocess.run( # noqa: S603639 ["pg_isready", "-h", str(sockdir), "-U", "test"],640 check=False,641 capture_output=True,642 ).returncode643 != 0644 ):645 # The socket appears before recovery finishes; createdb would646 # fail with "the database system is starting up".647 if time.monotonic() > deadline:648 msg = "postgres did not start"649> raise RuntimeError(msg)650E RuntimeError: postgres did not start651652nixbot/tests/support.py:319: RuntimeError653_______________ ERROR at setup of test_repo_and_build_inference ________________654[gw12] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14655656request = <SubRequest 'postgres_dsn' for <Function test_repo_list_and_toggle>>657tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...tch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw12'), _retention_count=3, _retention_policy='all')658659 @pytest.fixture(scope="module")660 def postgres_dsn(661 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory662 ) -> Iterator[str]:663 if shutil.which("initdb") is None:664 pytest.skip("postgresql not available")665 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")666> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:667 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^668669nixbot/tests/conftest.py:33: 670_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 671/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__672 return next(self.gen)673 ^^^^^^^^^^^^^^674_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 675676tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...tch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw12'), _retention_count=3, _retention_policy='all')677dbname = 'cli'678679 @contextlib.contextmanager680 def ephemeral_postgres(681 tmp_path_factory: pytest.TempPathFactory, dbname: str682 ) -> Iterator[str]:683 """Throwaway Postgres on a unix socket with migrations applied."""684 datadir = tmp_path_factory.mktemp("pgdata")685 sockdir = tmp_path_factory.mktemp("pgsock")686 subprocess.run( # noqa: S603687 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],688 check=True,689 capture_output=True,690 )691 proc = subprocess.Popen( # noqa: S603692 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],693 stdout=subprocess.DEVNULL,694 stderr=subprocess.DEVNULL,695 )696 try:697 deadline = time.monotonic() + 30698 while (699 subprocess.run( # noqa: S603700 ["pg_isready", "-h", str(sockdir), "-U", "test"],701 check=False,702 capture_output=True,703 ).returncode704 != 0705 ):706 # The socket appears before recovery finishes; createdb would707 # fail with "the database system is starting up".708 if time.monotonic() > deadline:709 msg = "postgres did not start"710> raise RuntimeError(msg)711E RuntimeError: postgres did not start712713nixbot/tests/support.py:319: RuntimeError714___________ ERROR at setup of test_failed_migration_error_not_masked ___________715[gw10] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14716717self = <Coroutine test_failed_migration_error_not_masked>718719 def setup(self) -> None:720 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"721 if runner_fixture_id not in self.fixturenames:722 self.fixturenames.append(runner_fixture_id)723 # When loop factories are configured, resolve the loop factory724 # fixture early so that a factory variant change cascades cache725 # invalidation before any async fixture checks its cache.726 hook_caller = self.config.hook.pytest_asyncio_loop_factories727 if hook_caller.get_hookimpls():728 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)729> return super().setup()730 ^^^^^^^^^^^^^^^731732/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 733_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 734nixbot/tests/conftest.py:33: in postgres_dsn735 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:736 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^737/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__738 return next(self.gen)739 ^^^^^^^^^^^^^^740_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 741742tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...tch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw10'), _retention_count=3, _retention_policy='all')743dbname = 'db'744745 @contextlib.contextmanager746 def ephemeral_postgres(747 tmp_path_factory: pytest.TempPathFactory, dbname: str748 ) -> Iterator[str]:749 """Throwaway Postgres on a unix socket with migrations applied."""750 datadir = tmp_path_factory.mktemp("pgdata")751 sockdir = tmp_path_factory.mktemp("pgsock")752 subprocess.run( # noqa: S603753 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],754 check=True,755 capture_output=True,756 )757 proc = subprocess.Popen( # noqa: S603758 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],759 stdout=subprocess.DEVNULL,760 stderr=subprocess.DEVNULL,761 )762 try:763 deadline = time.monotonic() + 30764 while (765 subprocess.run( # noqa: S603766 ["pg_isready", "-h", str(sockdir), "-U", "test"],767 check=False,768 capture_output=True,769 ).returncode770 != 0771 ):772 # The socket appears before recovery finishes; createdb would773 # fail with "the database system is starting up".774 if time.monotonic() > deadline:775 msg = "postgres did not start"776> raise RuntimeError(msg)777E RuntimeError: postgres did not start778779nixbot/tests/support.py:319: RuntimeError780____ ERROR at setup of test_resume_includes_interrupted_building_attributes ____781[gw19] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14782783self = <Coroutine test_resume_includes_interrupted_building_attributes>784785 def setup(self) -> None:786 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"787 if runner_fixture_id not in self.fixturenames:788 self.fixturenames.append(runner_fixture_id)789 # When loop factories are configured, resolve the loop factory790 # fixture early so that a factory variant change cascades cache791 # invalidation before any async fixture checks its cache.792 hook_caller = self.config.hook.pytest_asyncio_loop_factories793 if hook_caller.get_hookimpls():794 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)795> return super().setup()796 ^^^^^^^^^^^^^^^797798/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 799_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 800nixbot/tests/conftest.py:33: in postgres_dsn801 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:802 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^803/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__804 return next(self.gen)805 ^^^^^^^^^^^^^^806_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 807808tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...tch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw19'), _retention_count=3, _retention_policy='all')809dbname = 'recovery'810811 @contextlib.contextmanager812 def ephemeral_postgres(813 tmp_path_factory: pytest.TempPathFactory, dbname: str814 ) -> Iterator[str]:815 """Throwaway Postgres on a unix socket with migrations applied."""816 datadir = tmp_path_factory.mktemp("pgdata")817 sockdir = tmp_path_factory.mktemp("pgsock")818 subprocess.run( # noqa: S603819 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],820 check=True,821 capture_output=True,822 )823 proc = subprocess.Popen( # noqa: S603824 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],825 stdout=subprocess.DEVNULL,826 stderr=subprocess.DEVNULL,827 )828 try:829 deadline = time.monotonic() + 30830 while (831 subprocess.run( # noqa: S603832 ["pg_isready", "-h", str(sockdir), "-U", "test"],833 check=False,834 capture_output=True,835 ).returncode836 != 0837 ):838 # The socket appears before recovery finishes; createdb would839 # fail with "the database system is starting up".840 if time.monotonic() > deadline:841 msg = "postgres did not start"842> raise RuntimeError(msg)843E RuntimeError: postgres did not start844845nixbot/tests/support.py:319: RuntimeError846______________________ ERROR at setup of test_auth_status ______________________847[gw12] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14848849request = <SubRequest 'postgres_dsn' for <Function test_repo_list_and_toggle>>850tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...tch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw12'), _retention_count=3, _retention_policy='all')851852 @pytest.fixture(scope="module")853 def postgres_dsn(854 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory855 ) -> Iterator[str]:856 if shutil.which("initdb") is None:857 pytest.skip("postgresql not available")858 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")859> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:860 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^861862nixbot/tests/conftest.py:33: 863_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 864/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__865 return next(self.gen)866 ^^^^^^^^^^^^^^867_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 868869tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...tch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw12'), _retention_count=3, _retention_policy='all')870dbname = 'cli'871872 @contextlib.contextmanager873 def ephemeral_postgres(874 tmp_path_factory: pytest.TempPathFactory, dbname: str875 ) -> Iterator[str]:876 """Throwaway Postgres on a unix socket with migrations applied."""877 datadir = tmp_path_factory.mktemp("pgdata")878 sockdir = tmp_path_factory.mktemp("pgsock")879 subprocess.run( # noqa: S603880 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],881 check=True,882 capture_output=True,883 )884 proc = subprocess.Popen( # noqa: S603885 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],886 stdout=subprocess.DEVNULL,887 stderr=subprocess.DEVNULL,888 )889 try:890 deadline = time.monotonic() + 30891 while (892 subprocess.run( # noqa: S603893 ["pg_isready", "-h", str(sockdir), "-U", "test"],894 check=False,895 capture_output=True,896 ).returncode897 != 0898 ):899 # The socket appears before recovery finishes; createdb would900 # fail with "the database system is starting up".901 if time.monotonic() > deadline:902 msg = "postgres did not start"903> raise RuntimeError(msg)904E RuntimeError: postgres did not start905906nixbot/tests/support.py:319: RuntimeError907_______________ ERROR at setup of test_edited_migration_rejected _______________908[gw10] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14909910self = <Coroutine test_edited_migration_rejected>911912 def setup(self) -> None:913 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"914 if runner_fixture_id not in self.fixturenames:915 self.fixturenames.append(runner_fixture_id)916 # When loop factories are configured, resolve the loop factory917 # fixture early so that a factory variant change cascades cache918 # invalidation before any async fixture checks its cache.919 hook_caller = self.config.hook.pytest_asyncio_loop_factories920 if hook_caller.get_hookimpls():921 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)922> return super().setup()923 ^^^^^^^^^^^^^^^924925/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 926_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 927nixbot/tests/conftest.py:33: in postgres_dsn928 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:929 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^930/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__931 return next(self.gen)932 ^^^^^^^^^^^^^^933_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 934935tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...tch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw10'), _retention_count=3, _retention_policy='all')936dbname = 'db'937938 @contextlib.contextmanager939 def ephemeral_postgres(940 tmp_path_factory: pytest.TempPathFactory, dbname: str941 ) -> Iterator[str]:942 """Throwaway Postgres on a unix socket with migrations applied."""943 datadir = tmp_path_factory.mktemp("pgdata")944 sockdir = tmp_path_factory.mktemp("pgsock")945 subprocess.run( # noqa: S603946 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],947 check=True,948 capture_output=True,949 )950 proc = subprocess.Popen( # noqa: S603951 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],952 stdout=subprocess.DEVNULL,953 stderr=subprocess.DEVNULL,954 )955 try:956 deadline = time.monotonic() + 30957 while (958 subprocess.run( # noqa: S603959 ["pg_isready", "-h", str(sockdir), "-U", "test"],960 check=False,961 capture_output=True,962 ).returncode963 != 0964 ):965 # The socket appears before recovery finishes; createdb would966 # fail with "the database system is starting up".967 if time.monotonic() > deadline:968 msg = "postgres did not start"969> raise RuntimeError(msg)970E RuntimeError: postgres did not start971972nixbot/tests/support.py:319: RuntimeError973___________ ERROR at setup of test_retention_skips_restarted_builds ____________974[gw19] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14975976self = <Coroutine test_retention_skips_restarted_builds>977978 def setup(self) -> None:979 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"980 if runner_fixture_id not in self.fixturenames:981 self.fixturenames.append(runner_fixture_id)982 # When loop factories are configured, resolve the loop factory983 # fixture early so that a factory variant change cascades cache984 # invalidation before any async fixture checks its cache.985 hook_caller = self.config.hook.pytest_asyncio_loop_factories986 if hook_caller.get_hookimpls():987 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)988> return super().setup()989 ^^^^^^^^^^^^^^^990991/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 992_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 993nixbot/tests/conftest.py:33: in postgres_dsn994 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:995 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^996/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__997 return next(self.gen)998 ^^^^^^^^^^^^^^999_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10001001tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...tch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw19'), _retention_count=3, _retention_policy='all')1002dbname = 'recovery'10031004 @contextlib.contextmanager1005 def ephemeral_postgres(1006 tmp_path_factory: pytest.TempPathFactory, dbname: str1007 ) -> Iterator[str]:1008 """Throwaway Postgres on a unix socket with migrations applied."""1009 datadir = tmp_path_factory.mktemp("pgdata")1010 sockdir = tmp_path_factory.mktemp("pgsock")1011 subprocess.run( # noqa: S6031012 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1013 check=True,1014 capture_output=True,1015 )1016 proc = subprocess.Popen( # noqa: S6031017 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1018 stdout=subprocess.DEVNULL,1019 stderr=subprocess.DEVNULL,1020 )1021 try:1022 deadline = time.monotonic() + 301023 while (1024 subprocess.run( # noqa: S6031025 ["pg_isready", "-h", str(sockdir), "-U", "test"],1026 check=False,1027 capture_output=True,1028 ).returncode1029 != 01030 ):1031 # The socket appears before recovery finishes; createdb would1032 # fail with "the database system is starting up".1033 if time.monotonic() > deadline:1034 msg = "postgres did not start"1035> raise RuntimeError(msg)1036E RuntimeError: postgres did not start10371038nixbot/tests/support.py:319: RuntimeError1039_______ ERROR at setup of test_catchup_migration_repairs_pre_0033_schema _______1040[gw10] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1410411042self = <Coroutine test_catchup_migration_repairs_pre_0033_schema>10431044 def setup(self) -> None:1045 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1046 if runner_fixture_id not in self.fixturenames:1047 self.fixturenames.append(runner_fixture_id)1048 # When loop factories are configured, resolve the loop factory1049 # fixture early so that a factory variant change cascades cache1050 # invalidation before any async fixture checks its cache.1051 hook_caller = self.config.hook.pytest_asyncio_loop_factories1052 if hook_caller.get_hookimpls():1053 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1054> return super().setup()1055 ^^^^^^^^^^^^^^^10561057/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1058_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1059nixbot/tests/conftest.py:33: in postgres_dsn1060 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1061 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1062/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1063 return next(self.gen)1064 ^^^^^^^^^^^^^^1065_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10661067tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...tch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw10'), _retention_count=3, _retention_policy='all')1068dbname = 'db'10691070 @contextlib.contextmanager1071 def ephemeral_postgres(1072 tmp_path_factory: pytest.TempPathFactory, dbname: str1073 ) -> Iterator[str]:1074 """Throwaway Postgres on a unix socket with migrations applied."""1075 datadir = tmp_path_factory.mktemp("pgdata")1076 sockdir = tmp_path_factory.mktemp("pgsock")1077 subprocess.run( # noqa: S6031078 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1079 check=True,1080 capture_output=True,1081 )1082 proc = subprocess.Popen( # noqa: S6031083 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1084 stdout=subprocess.DEVNULL,1085 stderr=subprocess.DEVNULL,1086 )1087 try:1088 deadline = time.monotonic() + 301089 while (1090 subprocess.run( # noqa: S6031091 ["pg_isready", "-h", str(sockdir), "-U", "test"],1092 check=False,1093 capture_output=True,1094 ).returncode1095 != 01096 ):1097 # The socket appears before recovery finishes; createdb would1098 # fail with "the database system is starting up".1099 if time.monotonic() > deadline:1100 msg = "postgres did not start"1101> raise RuntimeError(msg)1102E RuntimeError: postgres did not start11031104nixbot/tests/support.py:319: RuntimeError1105___________ ERROR at setup of test_retention_ages_out_failed_caches ____________1106[gw19] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1411071108self = <Coroutine test_retention_ages_out_failed_caches>11091110 def setup(self) -> None:1111 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1112 if runner_fixture_id not in self.fixturenames:1113 self.fixturenames.append(runner_fixture_id)1114 # When loop factories are configured, resolve the loop factory1115 # fixture early so that a factory variant change cascades cache1116 # invalidation before any async fixture checks its cache.1117 hook_caller = self.config.hook.pytest_asyncio_loop_factories1118 if hook_caller.get_hookimpls():1119 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1120> return super().setup()1121 ^^^^^^^^^^^^^^^11221123/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1124_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1125nixbot/tests/conftest.py:33: in postgres_dsn1126 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1127 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1128/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1129 return next(self.gen)1130 ^^^^^^^^^^^^^^1131_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 11321133tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...tch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw19'), _retention_count=3, _retention_policy='all')1134dbname = 'recovery'11351136 @contextlib.contextmanager1137 def ephemeral_postgres(1138 tmp_path_factory: pytest.TempPathFactory, dbname: str1139 ) -> Iterator[str]:1140 """Throwaway Postgres on a unix socket with migrations applied."""1141 datadir = tmp_path_factory.mktemp("pgdata")1142 sockdir = tmp_path_factory.mktemp("pgsock")1143 subprocess.run( # noqa: S6031144 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1145 check=True,1146 capture_output=True,1147 )1148 proc = subprocess.Popen( # noqa: S6031149 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1150 stdout=subprocess.DEVNULL,1151 stderr=subprocess.DEVNULL,1152 )1153 try:1154 deadline = time.monotonic() + 301155 while (1156 subprocess.run( # noqa: S6031157 ["pg_isready", "-h", str(sockdir), "-U", "test"],1158 check=False,1159 capture_output=True,1160 ).returncode1161 != 01162 ):1163 # The socket appears before recovery finishes; createdb would1164 # fail with "the database system is starting up".1165 if time.monotonic() > deadline:1166 msg = "postgres did not start"1167> raise RuntimeError(msg)1168E RuntimeError: postgres did not start11691170nixbot/tests/support.py:319: RuntimeError1171_____ ERROR at setup of test_huge_attr_name_does_not_break_notify_trigger ______1172[gw10] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1411731174self = <Coroutine test_huge_attr_name_does_not_break_notify_trigger>11751176 def setup(self) -> None:1177 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1178 if runner_fixture_id not in self.fixturenames:1179 self.fixturenames.append(runner_fixture_id)1180 # When loop factories are configured, resolve the loop factory1181 # fixture early so that a factory variant change cascades cache1182 # invalidation before any async fixture checks its cache.1183 hook_caller = self.config.hook.pytest_asyncio_loop_factories1184 if hook_caller.get_hookimpls():1185 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1186> return super().setup()1187 ^^^^^^^^^^^^^^^11881189/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1190_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1191nixbot/tests/conftest.py:33: in postgres_dsn1192 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1193 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1194/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1195 return next(self.gen)1196 ^^^^^^^^^^^^^^1197_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 11981199tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...tch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw10'), _retention_count=3, _retention_policy='all')1200dbname = 'db'12011202 @contextlib.contextmanager1203 def ephemeral_postgres(1204 tmp_path_factory: pytest.TempPathFactory, dbname: str1205 ) -> Iterator[str]:1206 """Throwaway Postgres on a unix socket with migrations applied."""1207 datadir = tmp_path_factory.mktemp("pgdata")1208 sockdir = tmp_path_factory.mktemp("pgsock")1209 subprocess.run( # noqa: S6031210 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1211 check=True,1212 capture_output=True,1213 )1214 proc = subprocess.Popen( # noqa: S6031215 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1216 stdout=subprocess.DEVNULL,1217 stderr=subprocess.DEVNULL,1218 )1219 try:1220 deadline = time.monotonic() + 301221 while (1222 subprocess.run( # noqa: S6031223 ["pg_isready", "-h", str(sockdir), "-U", "test"],1224 check=False,1225 capture_output=True,1226 ).returncode1227 != 01228 ):1229 # The socket appears before recovery finishes; createdb would1230 # fail with "the database system is starting up".1231 if time.monotonic() > deadline:1232 msg = "postgres did not start"1233> raise RuntimeError(msg)1234E RuntimeError: postgres did not start12351236nixbot/tests/support.py:319: RuntimeError1237___________ ERROR at setup of test_rerun_clears_stale_eval_warnings ____________1238[gw19] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1412391240self = <Coroutine test_rerun_clears_stale_eval_warnings>12411242 def setup(self) -> None:1243 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1244 if runner_fixture_id not in self.fixturenames:1245 self.fixturenames.append(runner_fixture_id)1246 # When loop factories are configured, resolve the loop factory1247 # fixture early so that a factory variant change cascades cache1248 # invalidation before any async fixture checks its cache.1249 hook_caller = self.config.hook.pytest_asyncio_loop_factories1250 if hook_caller.get_hookimpls():1251 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1252> return super().setup()1253 ^^^^^^^^^^^^^^^12541255/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1256_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1257nixbot/tests/conftest.py:33: in postgres_dsn1258 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1259 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1260/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1261 return next(self.gen)1262 ^^^^^^^^^^^^^^1263_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 12641265tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...tch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw19'), _retention_count=3, _retention_policy='all')1266dbname = 'recovery'12671268 @contextlib.contextmanager1269 def ephemeral_postgres(1270 tmp_path_factory: pytest.TempPathFactory, dbname: str1271 ) -> Iterator[str]:1272 """Throwaway Postgres on a unix socket with migrations applied."""1273 datadir = tmp_path_factory.mktemp("pgdata")1274 sockdir = tmp_path_factory.mktemp("pgsock")1275 subprocess.run( # noqa: S6031276 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1277 check=True,1278 capture_output=True,1279 )1280 proc = subprocess.Popen( # noqa: S6031281 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1282 stdout=subprocess.DEVNULL,1283 stderr=subprocess.DEVNULL,1284 )1285 try:1286 deadline = time.monotonic() + 301287 while (1288 subprocess.run( # noqa: S6031289 ["pg_isready", "-h", str(sockdir), "-U", "test"],1290 check=False,1291 capture_output=True,1292 ).returncode1293 != 01294 ):1295 # The socket appears before recovery finishes; createdb would1296 # fail with "the database system is starting up".1297 if time.monotonic() > deadline:1298 msg = "postgres did not start"1299> raise RuntimeError(msg)1300E RuntimeError: postgres did not start13011302nixbot/tests/support.py:319: RuntimeError1303__________________ ERROR at setup of test_schema_constraints ___________________1304[gw10] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1413051306self = <Coroutine test_schema_constraints>13071308 def setup(self) -> None:1309 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1310 if runner_fixture_id not in self.fixturenames:1311 self.fixturenames.append(runner_fixture_id)1312 # When loop factories are configured, resolve the loop factory1313 # fixture early so that a factory variant change cascades cache1314 # invalidation before any async fixture checks its cache.1315 hook_caller = self.config.hook.pytest_asyncio_loop_factories1316 if hook_caller.get_hookimpls():1317 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1318> return super().setup()1319 ^^^^^^^^^^^^^^^13201321/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1322_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1323nixbot/tests/conftest.py:33: in postgres_dsn1324 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1325 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1326/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1327 return next(self.gen)1328 ^^^^^^^^^^^^^^1329_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 13301331tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...tch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw10'), _retention_count=3, _retention_policy='all')1332dbname = 'db'13331334 @contextlib.contextmanager1335 def ephemeral_postgres(1336 tmp_path_factory: pytest.TempPathFactory, dbname: str1337 ) -> Iterator[str]:1338 """Throwaway Postgres on a unix socket with migrations applied."""1339 datadir = tmp_path_factory.mktemp("pgdata")1340 sockdir = tmp_path_factory.mktemp("pgsock")1341 subprocess.run( # noqa: S6031342 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1343 check=True,1344 capture_output=True,1345 )1346 proc = subprocess.Popen( # noqa: S6031347 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1348 stdout=subprocess.DEVNULL,1349 stderr=subprocess.DEVNULL,1350 )1351 try:1352 deadline = time.monotonic() + 301353 while (1354 subprocess.run( # noqa: S6031355 ["pg_isready", "-h", str(sockdir), "-U", "test"],1356 check=False,1357 capture_output=True,1358 ).returncode1359 != 01360 ):1361 # The socket appears before recovery finishes; createdb would1362 # fail with "the database system is starting up".1363 if time.monotonic() > deadline:1364 msg = "postgres did not start"1365> raise RuntimeError(msg)1366E RuntimeError: postgres did not start13671368nixbot/tests/support.py:319: RuntimeError1369_______ ERROR at setup of test_control_buttons_hidden_without_permission _______1370[gw4] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1413711372fixturedef = <FixtureDef argname='postgres_dsn' scope='module' baseid='nixbot/tests'>1373request = <SubRequest 'postgres_dsn' for <Function test_control_buttons_hidden_without_permission>>13741375 @pytest.hookimpl(wrapper=True)1376 def pytest_fixture_setup(fixturedef: FixtureDef, request) -> object | None:1377 if (1378 fixturedef.argname == "event_loop_policy"1379 and fixturedef.func.__module__ != __name__1380 ):1381 warnings.warn(1382 PytestDeprecationWarning(_EVENT_LOOP_POLICY_FIXTURE_DEPRECATION_WARNING),1383 )1384 asyncio_mode = _get_asyncio_mode(request.config)1385 if not _is_asyncio_fixture_function(fixturedef.func):1386 if asyncio_mode == Mode.STRICT:1387 # Ignore async fixtures without explicit asyncio mark in strict mode1388 # This applies to pytest_trio fixtures, for example1389 return (yield)1390 if not _is_coroutine_or_asyncgen(fixturedef.func):1391> return (yield)1392 ^^^^^13931394/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:926: 1395_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1396nixbot/tests/conftest.py:33: in postgres_dsn1397 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1398 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1399/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1400 return next(self.gen)1401 ^^^^^^^^^^^^^^1402_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 14031404tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...atch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw4'), _retention_count=3, _retention_policy='all')1405dbname = 'control'14061407 @contextlib.contextmanager1408 def ephemeral_postgres(1409 tmp_path_factory: pytest.TempPathFactory, dbname: str1410 ) -> Iterator[str]:1411 """Throwaway Postgres on a unix socket with migrations applied."""1412 datadir = tmp_path_factory.mktemp("pgdata")1413 sockdir = tmp_path_factory.mktemp("pgsock")1414 subprocess.run( # noqa: S6031415 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1416 check=True,1417 capture_output=True,1418 )1419 proc = subprocess.Popen( # noqa: S6031420 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1421 stdout=subprocess.DEVNULL,1422 stderr=subprocess.DEVNULL,1423 )1424 try:1425 deadline = time.monotonic() + 301426 while (1427 subprocess.run( # noqa: S6031428 ["pg_isready", "-h", str(sockdir), "-U", "test"],1429 check=False,1430 capture_output=True,1431 ).returncode1432 != 01433 ):1434 # The socket appears before recovery finishes; createdb would1435 # fail with "the database system is starting up".1436 if time.monotonic() > deadline:1437 msg = "postgres did not start"1438> raise RuntimeError(msg)1439E RuntimeError: postgres did not start14401441nixbot/tests/support.py:319: RuntimeError1442_________ ERROR at setup of test_interrupted_effects_fail_on_recovery __________1443[gw19] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1414441445self = <Coroutine test_interrupted_effects_fail_on_recovery>14461447 def setup(self) -> None:1448 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1449 if runner_fixture_id not in self.fixturenames:1450 self.fixturenames.append(runner_fixture_id)1451 # When loop factories are configured, resolve the loop factory1452 # fixture early so that a factory variant change cascades cache1453 # invalidation before any async fixture checks its cache.1454 hook_caller = self.config.hook.pytest_asyncio_loop_factories1455 if hook_caller.get_hookimpls():1456 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1457> return super().setup()1458 ^^^^^^^^^^^^^^^14591460/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1461_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1462nixbot/tests/conftest.py:33: in postgres_dsn1463 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1464 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1465/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1466 return next(self.gen)1467 ^^^^^^^^^^^^^^1468_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 14691470tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...tch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw19'), _retention_count=3, _retention_policy='all')1471dbname = 'recovery'14721473 @contextlib.contextmanager1474 def ephemeral_postgres(1475 tmp_path_factory: pytest.TempPathFactory, dbname: str1476 ) -> Iterator[str]:1477 """Throwaway Postgres on a unix socket with migrations applied."""1478 datadir = tmp_path_factory.mktemp("pgdata")1479 sockdir = tmp_path_factory.mktemp("pgsock")1480 subprocess.run( # noqa: S6031481 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1482 check=True,1483 capture_output=True,1484 )1485 proc = subprocess.Popen( # noqa: S6031486 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1487 stdout=subprocess.DEVNULL,1488 stderr=subprocess.DEVNULL,1489 )1490 try:1491 deadline = time.monotonic() + 301492 while (1493 subprocess.run( # noqa: S6031494 ["pg_isready", "-h", str(sockdir), "-U", "test"],1495 check=False,1496 capture_output=True,1497 ).returncode1498 != 01499 ):1500 # The socket appears before recovery finishes; createdb would1501 # fail with "the database system is starting up".1502 if time.monotonic() > deadline:1503 msg = "postgres did not start"1504> raise RuntimeError(msg)1505E RuntimeError: postgres did not start15061507nixbot/tests/support.py:319: RuntimeError1508______________ ERROR at setup of test_check_run_store_round_trip _______________1509[gw10] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1415101511self = <Coroutine test_check_run_store_round_trip>15121513 def setup(self) -> None:1514 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1515 if runner_fixture_id not in self.fixturenames:1516 self.fixturenames.append(runner_fixture_id)1517 # When loop factories are configured, resolve the loop factory1518 # fixture early so that a factory variant change cascades cache1519 # invalidation before any async fixture checks its cache.1520 hook_caller = self.config.hook.pytest_asyncio_loop_factories1521 if hook_caller.get_hookimpls():1522 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1523> return super().setup()1524 ^^^^^^^^^^^^^^^15251526/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1527_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1528nixbot/tests/conftest.py:33: in postgres_dsn1529 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1530 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1531/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1532 return next(self.gen)1533 ^^^^^^^^^^^^^^1534_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 15351536tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...tch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw10'), _retention_count=3, _retention_policy='all')1537dbname = 'db'15381539 @contextlib.contextmanager1540 def ephemeral_postgres(1541 tmp_path_factory: pytest.TempPathFactory, dbname: str1542 ) -> Iterator[str]:1543 """Throwaway Postgres on a unix socket with migrations applied."""1544 datadir = tmp_path_factory.mktemp("pgdata")1545 sockdir = tmp_path_factory.mktemp("pgsock")1546 subprocess.run( # noqa: S6031547 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1548 check=True,1549 capture_output=True,1550 )1551 proc = subprocess.Popen( # noqa: S6031552 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1553 stdout=subprocess.DEVNULL,1554 stderr=subprocess.DEVNULL,1555 )1556 try:1557 deadline = time.monotonic() + 301558 while (1559 subprocess.run( # noqa: S6031560 ["pg_isready", "-h", str(sockdir), "-U", "test"],1561 check=False,1562 capture_output=True,1563 ).returncode1564 != 01565 ):1566 # The socket appears before recovery finishes; createdb would1567 # fail with "the database system is starting up".1568 if time.monotonic() > deadline:1569 msg = "postgres did not start"1570> raise RuntimeError(msg)1571E RuntimeError: postgres did not start15721573nixbot/tests/support.py:319: RuntimeError1574_____________ ERROR at setup of test_admin_can_restart_and_cancel ______________1575[gw4] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1415761577request = <SubRequest 'postgres_dsn' for <Function test_control_buttons_hidden_without_permission>>1578tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...atch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw4'), _retention_count=3, _retention_policy='all')15791580 @pytest.fixture(scope="module")1581 def postgres_dsn(1582 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory1583 ) -> Iterator[str]:1584 if shutil.which("initdb") is None:1585 pytest.skip("postgresql not available")1586 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")1587> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1588 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^15891590nixbot/tests/conftest.py:33: 1591_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1592/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1593 return next(self.gen)1594 ^^^^^^^^^^^^^^1595_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 15961597tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...atch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw4'), _retention_count=3, _retention_policy='all')1598dbname = 'control'15991600 @contextlib.contextmanager1601 def ephemeral_postgres(1602 tmp_path_factory: pytest.TempPathFactory, dbname: str1603 ) -> Iterator[str]:1604 """Throwaway Postgres on a unix socket with migrations applied."""1605 datadir = tmp_path_factory.mktemp("pgdata")1606 sockdir = tmp_path_factory.mktemp("pgsock")1607 subprocess.run( # noqa: S6031608 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1609 check=True,1610 capture_output=True,1611 )1612 proc = subprocess.Popen( # noqa: S6031613 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1614 stdout=subprocess.DEVNULL,1615 stderr=subprocess.DEVNULL,1616 )1617 try:1618 deadline = time.monotonic() + 301619 while (1620 subprocess.run( # noqa: S6031621 ["pg_isready", "-h", str(sockdir), "-U", "test"],1622 check=False,1623 capture_output=True,1624 ).returncode1625 != 01626 ):1627 # The socket appears before recovery finishes; createdb would1628 # fail with "the database system is starting up".1629 if time.monotonic() > deadline:1630 msg = "postgres did not start"1631> raise RuntimeError(msg)1632E RuntimeError: postgres did not start16331634nixbot/tests/support.py:319: RuntimeError1635_____ ERROR at setup of test_interrupted_effects_sweep_spares_live_effects _____1636[gw19] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1416371638self = <Coroutine test_interrupted_effects_sweep_spares_live_effects>16391640 def setup(self) -> None:1641 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1642 if runner_fixture_id not in self.fixturenames:1643 self.fixturenames.append(runner_fixture_id)1644 # When loop factories are configured, resolve the loop factory1645 # fixture early so that a factory variant change cascades cache1646 # invalidation before any async fixture checks its cache.1647 hook_caller = self.config.hook.pytest_asyncio_loop_factories1648 if hook_caller.get_hookimpls():1649 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1650> return super().setup()1651 ^^^^^^^^^^^^^^^16521653/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1654_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1655nixbot/tests/conftest.py:33: in postgres_dsn1656 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1657 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1658/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1659 return next(self.gen)1660 ^^^^^^^^^^^^^^1661_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 16621663tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...tch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw19'), _retention_count=3, _retention_policy='all')1664dbname = 'recovery'16651666 @contextlib.contextmanager1667 def ephemeral_postgres(1668 tmp_path_factory: pytest.TempPathFactory, dbname: str1669 ) -> Iterator[str]:1670 """Throwaway Postgres on a unix socket with migrations applied."""1671 datadir = tmp_path_factory.mktemp("pgdata")1672 sockdir = tmp_path_factory.mktemp("pgsock")1673 subprocess.run( # noqa: S6031674 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1675 check=True,1676 capture_output=True,1677 )1678 proc = subprocess.Popen( # noqa: S6031679 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1680 stdout=subprocess.DEVNULL,1681 stderr=subprocess.DEVNULL,1682 )1683 try:1684 deadline = time.monotonic() + 301685 while (1686 subprocess.run( # noqa: S6031687 ["pg_isready", "-h", str(sockdir), "-U", "test"],1688 check=False,1689 capture_output=True,1690 ).returncode1691 != 01692 ):1693 # The socket appears before recovery finishes; createdb would1694 # fail with "the database system is starting up".1695 if time.monotonic() > deadline:1696 msg = "postgres did not start"1697> raise RuntimeError(msg)1698E RuntimeError: postgres did not start16991700nixbot/tests/support.py:319: RuntimeError1701_____________ ERROR at setup of test_pr_author_can_control_own_pr ______________1702[gw4] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1417031704request = <SubRequest 'postgres_dsn' for <Function test_control_buttons_hidden_without_permission>>1705tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...atch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw4'), _retention_count=3, _retention_policy='all')17061707 @pytest.fixture(scope="module")1708 def postgres_dsn(1709 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory1710 ) -> Iterator[str]:1711 if shutil.which("initdb") is None:1712 pytest.skip("postgresql not available")1713 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")1714> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1715 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^17161717nixbot/tests/conftest.py:33: 1718_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1719/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1720 return next(self.gen)1721 ^^^^^^^^^^^^^^1722_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 17231724tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...atch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw4'), _retention_count=3, _retention_policy='all')1725dbname = 'control'17261727 @contextlib.contextmanager1728 def ephemeral_postgres(1729 tmp_path_factory: pytest.TempPathFactory, dbname: str1730 ) -> Iterator[str]:1731 """Throwaway Postgres on a unix socket with migrations applied."""1732 datadir = tmp_path_factory.mktemp("pgdata")1733 sockdir = tmp_path_factory.mktemp("pgsock")1734 subprocess.run( # noqa: S6031735 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1736 check=True,1737 capture_output=True,1738 )1739 proc = subprocess.Popen( # noqa: S6031740 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1741 stdout=subprocess.DEVNULL,1742 stderr=subprocess.DEVNULL,1743 )1744 try:1745 deadline = time.monotonic() + 301746 while (1747 subprocess.run( # noqa: S6031748 ["pg_isready", "-h", str(sockdir), "-U", "test"],1749 check=False,1750 capture_output=True,1751 ).returncode1752 != 01753 ):1754 # The socket appears before recovery finishes; createdb would1755 # fail with "the database system is starting up".1756 if time.monotonic() > deadline:1757 msg = "postgres did not start"1758> raise RuntimeError(msg)1759E RuntimeError: postgres did not start17601761nixbot/tests/support.py:319: RuntimeError1762_____________ ERROR at setup of test_failed_status_store_component _____________1763[gw10] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1417641765self = <Coroutine test_failed_status_store_component>17661767 def setup(self) -> None:1768 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1769 if runner_fixture_id not in self.fixturenames:1770 self.fixturenames.append(runner_fixture_id)1771 # When loop factories are configured, resolve the loop factory1772 # fixture early so that a factory variant change cascades cache1773 # invalidation before any async fixture checks its cache.1774 hook_caller = self.config.hook.pytest_asyncio_loop_factories1775 if hook_caller.get_hookimpls():1776 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1777> return super().setup()1778 ^^^^^^^^^^^^^^^17791780/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1781_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1782nixbot/tests/conftest.py:33: in postgres_dsn1783 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1784 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1785/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1786 return next(self.gen)1787 ^^^^^^^^^^^^^^1788_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 17891790tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...tch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw10'), _retention_count=3, _retention_policy='all')1791dbname = 'db'17921793 @contextlib.contextmanager1794 def ephemeral_postgres(1795 tmp_path_factory: pytest.TempPathFactory, dbname: str1796 ) -> Iterator[str]:1797 """Throwaway Postgres on a unix socket with migrations applied."""1798 datadir = tmp_path_factory.mktemp("pgdata")1799 sockdir = tmp_path_factory.mktemp("pgsock")1800 subprocess.run( # noqa: S6031801 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1802 check=True,1803 capture_output=True,1804 )1805 proc = subprocess.Popen( # noqa: S6031806 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1807 stdout=subprocess.DEVNULL,1808 stderr=subprocess.DEVNULL,1809 )1810 try:1811 deadline = time.monotonic() + 301812 while (1813 subprocess.run( # noqa: S6031814 ["pg_isready", "-h", str(sockdir), "-U", "test"],1815 check=False,1816 capture_output=True,1817 ).returncode1818 != 01819 ):1820 # The socket appears before recovery finishes; createdb would1821 # fail with "the database system is starting up".1822 if time.monotonic() > deadline:1823 msg = "postgres did not start"1824> raise RuntimeError(msg)1825E RuntimeError: postgres did not start18261827nixbot/tests/support.py:319: RuntimeError1828___________________ ERROR at setup of test_html_error_pages ____________________1829[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1418301831fixturedef = <FixtureDef argname='postgres_dsn' scope='module' baseid='nixbot/tests'>1832request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>18331834 @pytest.hookimpl(wrapper=True)1835 def pytest_fixture_setup(fixturedef: FixtureDef, request) -> object | None:1836 if (1837 fixturedef.argname == "event_loop_policy"1838 and fixturedef.func.__module__ != __name__1839 ):1840 warnings.warn(1841 PytestDeprecationWarning(_EVENT_LOOP_POLICY_FIXTURE_DEPRECATION_WARNING),1842 )1843 asyncio_mode = _get_asyncio_mode(request.config)1844 if not _is_asyncio_fixture_function(fixturedef.func):1845 if asyncio_mode == Mode.STRICT:1846 # Ignore async fixtures without explicit asyncio mark in strict mode1847 # This applies to pytest_trio fixtures, for example1848 return (yield)1849 if not _is_coroutine_or_asyncgen(fixturedef.func):1850> return (yield)1851 ^^^^^18521853/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:926: 1854_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1855nixbot/tests/conftest.py:33: in postgres_dsn1856 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1857 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1858/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1859 return next(self.gen)1860 ^^^^^^^^^^^^^^1861_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 18621863tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...atch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')1864dbname = 'web'18651866 @contextlib.contextmanager1867 def ephemeral_postgres(1868 tmp_path_factory: pytest.TempPathFactory, dbname: str1869 ) -> Iterator[str]:1870 """Throwaway Postgres on a unix socket with migrations applied."""1871 datadir = tmp_path_factory.mktemp("pgdata")1872 sockdir = tmp_path_factory.mktemp("pgsock")1873 subprocess.run( # noqa: S6031874 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1875 check=True,1876 capture_output=True,1877 )1878 proc = subprocess.Popen( # noqa: S6031879 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1880 stdout=subprocess.DEVNULL,1881 stderr=subprocess.DEVNULL,1882 )1883 try:1884 deadline = time.monotonic() + 301885 while (1886 subprocess.run( # noqa: S6031887 ["pg_isready", "-h", str(sockdir), "-U", "test"],1888 check=False,1889 capture_output=True,1890 ).returncode1891 != 01892 ):1893 # The socket appears before recovery finishes; createdb would1894 # fail with "the database system is starting up".1895 if time.monotonic() > deadline:1896 msg = "postgres did not start"1897> raise RuntimeError(msg)1898E RuntimeError: postgres did not start18991900nixbot/tests/support.py:319: RuntimeError1901__ ERROR at setup of test_repo_writer_can_control_without_admin_or_authorship __1902[gw4] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1419031904request = <SubRequest 'postgres_dsn' for <Function test_control_buttons_hidden_without_permission>>1905tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...atch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw4'), _retention_count=3, _retention_policy='all')19061907 @pytest.fixture(scope="module")1908 def postgres_dsn(1909 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory1910 ) -> Iterator[str]:1911 if shutil.which("initdb") is None:1912 pytest.skip("postgresql not available")1913 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")1914> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1915 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^19161917nixbot/tests/conftest.py:33: 1918_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1919/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1920 return next(self.gen)1921 ^^^^^^^^^^^^^^1922_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 19231924tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...atch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw4'), _retention_count=3, _retention_policy='all')1925dbname = 'control'19261927 @contextlib.contextmanager1928 def ephemeral_postgres(1929 tmp_path_factory: pytest.TempPathFactory, dbname: str1930 ) -> Iterator[str]:1931 """Throwaway Postgres on a unix socket with migrations applied."""1932 datadir = tmp_path_factory.mktemp("pgdata")1933 sockdir = tmp_path_factory.mktemp("pgsock")1934 subprocess.run( # noqa: S6031935 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1936 check=True,1937 capture_output=True,1938 )1939 proc = subprocess.Popen( # noqa: S6031940 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1941 stdout=subprocess.DEVNULL,1942 stderr=subprocess.DEVNULL,1943 )1944 try:1945 deadline = time.monotonic() + 301946 while (1947 subprocess.run( # noqa: S6031948 ["pg_isready", "-h", str(sockdir), "-U", "test"],1949 check=False,1950 capture_output=True,1951 ).returncode1952 != 01953 ):1954 # The socket appears before recovery finishes; createdb would1955 # fail with "the database system is starting up".1956 if time.monotonic() > deadline:1957 msg = "postgres did not start"1958> raise RuntimeError(msg)1959E RuntimeError: postgres did not start19601961nixbot/tests/support.py:319: RuntimeError1962______________ ERROR at setup of test_api_strips_ansi_from_errors ______________1963[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1419641965request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>1966tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...atch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')19671968 @pytest.fixture(scope="module")1969 def postgres_dsn(1970 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory1971 ) -> Iterator[str]:1972 if shutil.which("initdb") is None:1973 pytest.skip("postgresql not available")1974 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")1975> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1976 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^19771978nixbot/tests/conftest.py:33: 1979_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1980/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1981 return next(self.gen)1982 ^^^^^^^^^^^^^^1983_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 19841985tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...atch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')1986dbname = 'web'19871988 @contextlib.contextmanager1989 def ephemeral_postgres(1990 tmp_path_factory: pytest.TempPathFactory, dbname: str1991 ) -> Iterator[str]:1992 """Throwaway Postgres on a unix socket with migrations applied."""1993 datadir = tmp_path_factory.mktemp("pgdata")1994 sockdir = tmp_path_factory.mktemp("pgsock")1995 subprocess.run( # noqa: S6031996 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1997 check=True,1998 capture_output=True,1999 )2000 proc = subprocess.Popen( # noqa: S603loading 18,854 hidden lines…
20855 )20856 try:20857 deadline = time.monotonic() + 3020858 while (20859 subprocess.run( # noqa: S60320860 ["pg_isready", "-h", str(sockdir), "-U", "test"],20861 check=False,20862 capture_output=True,20863 ).returncode20864 != 020865 ):20866 # The socket appears before recovery finishes; createdb would20867 # fail with "the database system is starting up".20868 if time.monotonic() > deadline:20869 msg = "postgres did not start"20870> raise RuntimeError(msg)20871E RuntimeError: postgres did not start2087220873nixbot/tests/support.py:319: RuntimeError20874___________ ERROR at setup of test_scheduled_run_notify_build_events ___________20875[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142087620877request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>20878tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...atch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2087920880 @pytest.fixture(scope="module")20881 def postgres_dsn(20882 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory20883 ) -> Iterator[str]:20884 if shutil.which("initdb") is None:20885 pytest.skip("postgresql not available")20886 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")20887> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:20888 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2088920890nixbot/tests/conftest.py:33: 20891_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20892/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__20893 return next(self.gen)20894 ^^^^^^^^^^^^^^20895_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2089620897tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...atch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')20898dbname = 'web'2089920900 @contextlib.contextmanager20901 def ephemeral_postgres(20902 tmp_path_factory: pytest.TempPathFactory, dbname: str20903 ) -> Iterator[str]:20904 """Throwaway Postgres on a unix socket with migrations applied."""20905 datadir = tmp_path_factory.mktemp("pgdata")20906 sockdir = tmp_path_factory.mktemp("pgsock")20907 subprocess.run( # noqa: S60320908 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],20909 check=True,20910 capture_output=True,20911 )20912 proc = subprocess.Popen( # noqa: S60320913 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],20914 stdout=subprocess.DEVNULL,20915 stderr=subprocess.DEVNULL,20916 )20917 try:20918 deadline = time.monotonic() + 3020919 while (20920 subprocess.run( # noqa: S60320921 ["pg_isready", "-h", str(sockdir), "-U", "test"],20922 check=False,20923 capture_output=True,20924 ).returncode20925 != 020926 ):20927 # The socket appears before recovery finishes; createdb would20928 # fail with "the database system is starting up".20929 if time.monotonic() > deadline:20930 msg = "postgres did not start"20931> raise RuntimeError(msg)20932E RuntimeError: postgres did not start2093320934nixbot/tests/support.py:319: RuntimeError20935_________________ ERROR at setup of test_api_log_toc_and_text __________________20936[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142093720938request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>20939tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...atch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2094020941 @pytest.fixture(scope="module")20942 def postgres_dsn(20943 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory20944 ) -> Iterator[str]:20945 if shutil.which("initdb") is None:20946 pytest.skip("postgresql not available")20947 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")20948> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:20949 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2095020951nixbot/tests/conftest.py:33: 20952_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20953/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__20954 return next(self.gen)20955 ^^^^^^^^^^^^^^20956_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2095720958tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...atch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')20959dbname = 'web'2096020961 @contextlib.contextmanager20962 def ephemeral_postgres(20963 tmp_path_factory: pytest.TempPathFactory, dbname: str20964 ) -> Iterator[str]:20965 """Throwaway Postgres on a unix socket with migrations applied."""20966 datadir = tmp_path_factory.mktemp("pgdata")20967 sockdir = tmp_path_factory.mktemp("pgsock")20968 subprocess.run( # noqa: S60320969 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],20970 check=True,20971 capture_output=True,20972 )20973 proc = subprocess.Popen( # noqa: S60320974 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],20975 stdout=subprocess.DEVNULL,20976 stderr=subprocess.DEVNULL,20977 )20978 try:20979 deadline = time.monotonic() + 3020980 while (20981 subprocess.run( # noqa: S60320982 ["pg_isready", "-h", str(sockdir), "-U", "test"],20983 check=False,20984 capture_output=True,20985 ).returncode20986 != 020987 ):20988 # The socket appears before recovery finishes; createdb would20989 # fail with "the database system is starting up".20990 if time.monotonic() > deadline:20991 msg = "postgres did not start"20992> raise RuntimeError(msg)20993E RuntimeError: postgres did not start2099420995nixbot/tests/support.py:319: RuntimeError20996______________ ERROR at setup of test_recovery_rerun_runs_effects ______________20997[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142099820999self = <Coroutine test_recovery_rerun_runs_effects>2100021001 def setup(self) -> None:21002 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21003 if runner_fixture_id not in self.fixturenames:21004 self.fixturenames.append(runner_fixture_id)21005 # When loop factories are configured, resolve the loop factory21006 # fixture early so that a factory variant change cascades cache21007 # invalidation before any async fixture checks its cache.21008 hook_caller = self.config.hook.pytest_asyncio_loop_factories21009 if hook_caller.get_hookimpls():21010 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21011> return super().setup()21012 ^^^^^^^^^^^^^^^2101321014/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21015_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21016nixbot/tests/conftest.py:33: in postgres_dsn21017 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21018 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21019/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21020 return next(self.gen)21021 ^^^^^^^^^^^^^^21022_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2102321024tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...atch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21025dbname = 'orchestrator'2102621027 @contextlib.contextmanager21028 def ephemeral_postgres(21029 tmp_path_factory: pytest.TempPathFactory, dbname: str21030 ) -> Iterator[str]:21031 """Throwaway Postgres on a unix socket with migrations applied."""21032 datadir = tmp_path_factory.mktemp("pgdata")21033 sockdir = tmp_path_factory.mktemp("pgsock")21034 subprocess.run( # noqa: S60321035 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21036 check=True,21037 capture_output=True,21038 )21039 proc = subprocess.Popen( # noqa: S60321040 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21041 stdout=subprocess.DEVNULL,21042 stderr=subprocess.DEVNULL,21043 )21044 try:21045 deadline = time.monotonic() + 3021046 while (21047 subprocess.run( # noqa: S60321048 ["pg_isready", "-h", str(sockdir), "-U", "test"],21049 check=False,21050 capture_output=True,21051 ).returncode21052 != 021053 ):21054 # The socket appears before recovery finishes; createdb would21055 # fail with "the database system is starting up".21056 if time.monotonic() > deadline:21057 msg = "postgres did not start"21058> raise RuntimeError(msg)21059E RuntimeError: postgres did not start2106021061nixbot/tests/support.py:319: RuntimeError21062_____________ ERROR at setup of test_api_log_toc_flat_log_fallback _____________21063[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142106421065request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>21066tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...atch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2106721068 @pytest.fixture(scope="module")21069 def postgres_dsn(21070 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory21071 ) -> Iterator[str]:21072 if shutil.which("initdb") is None:21073 pytest.skip("postgresql not available")21074 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")21075> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21076 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2107721078nixbot/tests/conftest.py:33: 21079_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21080/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21081 return next(self.gen)21082 ^^^^^^^^^^^^^^21083_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2108421085tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...atch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')21086dbname = 'web'2108721088 @contextlib.contextmanager21089 def ephemeral_postgres(21090 tmp_path_factory: pytest.TempPathFactory, dbname: str21091 ) -> Iterator[str]:21092 """Throwaway Postgres on a unix socket with migrations applied."""21093 datadir = tmp_path_factory.mktemp("pgdata")21094 sockdir = tmp_path_factory.mktemp("pgsock")21095 subprocess.run( # noqa: S60321096 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21097 check=True,21098 capture_output=True,21099 )21100 proc = subprocess.Popen( # noqa: S60321101 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21102 stdout=subprocess.DEVNULL,21103 stderr=subprocess.DEVNULL,21104 )21105 try:21106 deadline = time.monotonic() + 3021107 while (21108 subprocess.run( # noqa: S60321109 ["pg_isready", "-h", str(sockdir), "-U", "test"],21110 check=False,21111 capture_output=True,21112 ).returncode21113 != 021114 ):21115 # The socket appears before recovery finishes; createdb would21116 # fail with "the database system is starting up".21117 if time.monotonic() > deadline:21118 msg = "postgres did not start"21119> raise RuntimeError(msg)21120E RuntimeError: postgres did not start2112121122nixbot/tests/support.py:319: RuntimeError21123__ ERROR at setup of test_unsupported_system_attr_does_not_block_aggregation ___21124[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142112521126self = <Coroutine test_unsupported_system_attr_does_not_block_aggregation>2112721128 def setup(self) -> None:21129 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21130 if runner_fixture_id not in self.fixturenames:21131 self.fixturenames.append(runner_fixture_id)21132 # When loop factories are configured, resolve the loop factory21133 # fixture early so that a factory variant change cascades cache21134 # invalidation before any async fixture checks its cache.21135 hook_caller = self.config.hook.pytest_asyncio_loop_factories21136 if hook_caller.get_hookimpls():21137 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21138> return super().setup()21139 ^^^^^^^^^^^^^^^2114021141/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21142_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21143nixbot/tests/conftest.py:33: in postgres_dsn21144 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21145 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21146/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21147 return next(self.gen)21148 ^^^^^^^^^^^^^^21149_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2115021151tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...atch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21152dbname = 'orchestrator'2115321154 @contextlib.contextmanager21155 def ephemeral_postgres(21156 tmp_path_factory: pytest.TempPathFactory, dbname: str21157 ) -> Iterator[str]:21158 """Throwaway Postgres on a unix socket with migrations applied."""21159 datadir = tmp_path_factory.mktemp("pgdata")21160 sockdir = tmp_path_factory.mktemp("pgsock")21161 subprocess.run( # noqa: S60321162 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21163 check=True,21164 capture_output=True,21165 )21166 proc = subprocess.Popen( # noqa: S60321167 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21168 stdout=subprocess.DEVNULL,21169 stderr=subprocess.DEVNULL,21170 )21171 try:21172 deadline = time.monotonic() + 3021173 while (21174 subprocess.run( # noqa: S60321175 ["pg_isready", "-h", str(sockdir), "-U", "test"],21176 check=False,21177 capture_output=True,21178 ).returncode21179 != 021180 ):21181 # The socket appears before recovery finishes; createdb would21182 # fail with "the database system is starting up".21183 if time.monotonic() > deadline:21184 msg = "postgres did not start"21185> raise RuntimeError(msg)21186E RuntimeError: postgres did not start2118721188nixbot/tests/support.py:319: RuntimeError21189__________________ ERROR at setup of test_api_log_stream_json __________________21190[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142119121192request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>21193tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...atch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2119421195 @pytest.fixture(scope="module")21196 def postgres_dsn(21197 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory21198 ) -> Iterator[str]:21199 if shutil.which("initdb") is None:21200 pytest.skip("postgresql not available")21201 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")21202> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21203 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2120421205nixbot/tests/conftest.py:33: 21206_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21207/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21208 return next(self.gen)21209 ^^^^^^^^^^^^^^21210_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2121121212tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...atch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')21213dbname = 'web'2121421215 @contextlib.contextmanager21216 def ephemeral_postgres(21217 tmp_path_factory: pytest.TempPathFactory, dbname: str21218 ) -> Iterator[str]:21219 """Throwaway Postgres on a unix socket with migrations applied."""21220 datadir = tmp_path_factory.mktemp("pgdata")21221 sockdir = tmp_path_factory.mktemp("pgsock")21222 subprocess.run( # noqa: S60321223 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21224 check=True,21225 capture_output=True,21226 )21227 proc = subprocess.Popen( # noqa: S60321228 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21229 stdout=subprocess.DEVNULL,21230 stderr=subprocess.DEVNULL,21231 )21232 try:21233 deadline = time.monotonic() + 3021234 while (21235 subprocess.run( # noqa: S60321236 ["pg_isready", "-h", str(sockdir), "-U", "test"],21237 check=False,21238 capture_output=True,21239 ).returncode21240 != 021241 ):21242 # The socket appears before recovery finishes; createdb would21243 # fail with "the database system is starting up".21244 if time.monotonic() > deadline:21245 msg = "postgres did not start"21246> raise RuntimeError(msg)21247E RuntimeError: postgres did not start2124821249nixbot/tests/support.py:319: RuntimeError21250________ ERROR at setup of test_linked_context_reported_on_eval_failure ________21251[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142125221253self = <Coroutine test_linked_context_reported_on_eval_failure>2125421255 def setup(self) -> None:21256 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21257 if runner_fixture_id not in self.fixturenames:21258 self.fixturenames.append(runner_fixture_id)21259 # When loop factories are configured, resolve the loop factory21260 # fixture early so that a factory variant change cascades cache21261 # invalidation before any async fixture checks its cache.21262 hook_caller = self.config.hook.pytest_asyncio_loop_factories21263 if hook_caller.get_hookimpls():21264 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21265> return super().setup()21266 ^^^^^^^^^^^^^^^2126721268/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21269_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21270nixbot/tests/conftest.py:33: in postgres_dsn21271 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21272 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21273/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21274 return next(self.gen)21275 ^^^^^^^^^^^^^^21276_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2127721278tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...atch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21279dbname = 'orchestrator'2128021281 @contextlib.contextmanager21282 def ephemeral_postgres(21283 tmp_path_factory: pytest.TempPathFactory, dbname: str21284 ) -> Iterator[str]:21285 """Throwaway Postgres on a unix socket with migrations applied."""21286 datadir = tmp_path_factory.mktemp("pgdata")21287 sockdir = tmp_path_factory.mktemp("pgsock")21288 subprocess.run( # noqa: S60321289 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21290 check=True,21291 capture_output=True,21292 )21293 proc = subprocess.Popen( # noqa: S60321294 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21295 stdout=subprocess.DEVNULL,21296 stderr=subprocess.DEVNULL,21297 )21298 try:21299 deadline = time.monotonic() + 3021300 while (21301 subprocess.run( # noqa: S60321302 ["pg_isready", "-h", str(sockdir), "-U", "test"],21303 check=False,21304 capture_output=True,21305 ).returncode21306 != 021307 ):21308 # The socket appears before recovery finishes; createdb would21309 # fail with "the database system is starting up".21310 if time.monotonic() > deadline:21311 msg = "postgres did not start"21312> raise RuntimeError(msg)21313E RuntimeError: postgres did not start2131421315nixbot/tests/support.py:319: RuntimeError21316_______________ ERROR at setup of test_build_eval_stats_surface ________________21317[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142131821319request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>21320tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...atch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2132121322 @pytest.fixture(scope="module")21323 def postgres_dsn(21324 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory21325 ) -> Iterator[str]:21326 if shutil.which("initdb") is None:21327 pytest.skip("postgresql not available")21328 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")21329> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21330 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2133121332nixbot/tests/conftest.py:33: 21333_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21334/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21335 return next(self.gen)21336 ^^^^^^^^^^^^^^21337_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2133821339tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...atch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')21340dbname = 'web'2134121342 @contextlib.contextmanager21343 def ephemeral_postgres(21344 tmp_path_factory: pytest.TempPathFactory, dbname: str21345 ) -> Iterator[str]:21346 """Throwaway Postgres on a unix socket with migrations applied."""21347 datadir = tmp_path_factory.mktemp("pgdata")21348 sockdir = tmp_path_factory.mktemp("pgsock")21349 subprocess.run( # noqa: S60321350 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21351 check=True,21352 capture_output=True,21353 )21354 proc = subprocess.Popen( # noqa: S60321355 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21356 stdout=subprocess.DEVNULL,21357 stderr=subprocess.DEVNULL,21358 )21359 try:21360 deadline = time.monotonic() + 3021361 while (21362 subprocess.run( # noqa: S60321363 ["pg_isready", "-h", str(sockdir), "-U", "test"],21364 check=False,21365 capture_output=True,21366 ).returncode21367 != 021368 ):21369 # The socket appears before recovery finishes; createdb would21370 # fail with "the database system is starting up".21371 if time.monotonic() > deadline:21372 msg = "postgres did not start"21373> raise RuntimeError(msg)21374E RuntimeError: postgres did not start2137521376nixbot/tests/support.py:319: RuntimeError21377_______ ERROR at setup of test_eval_failure_settles_streamed_attributes ________21378[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142137921380self = <Coroutine test_eval_failure_settles_streamed_attributes>2138121382 def setup(self) -> None:21383 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21384 if runner_fixture_id not in self.fixturenames:21385 self.fixturenames.append(runner_fixture_id)21386 # When loop factories are configured, resolve the loop factory21387 # fixture early so that a factory variant change cascades cache21388 # invalidation before any async fixture checks its cache.21389 hook_caller = self.config.hook.pytest_asyncio_loop_factories21390 if hook_caller.get_hookimpls():21391 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21392> return super().setup()21393 ^^^^^^^^^^^^^^^2139421395/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21396_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21397nixbot/tests/conftest.py:33: in postgres_dsn21398 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21399 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21400/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21401 return next(self.gen)21402 ^^^^^^^^^^^^^^21403_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2140421405tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...atch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21406dbname = 'orchestrator'2140721408 @contextlib.contextmanager21409 def ephemeral_postgres(21410 tmp_path_factory: pytest.TempPathFactory, dbname: str21411 ) -> Iterator[str]:21412 """Throwaway Postgres on a unix socket with migrations applied."""21413 datadir = tmp_path_factory.mktemp("pgdata")21414 sockdir = tmp_path_factory.mktemp("pgsock")21415 subprocess.run( # noqa: S60321416 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21417 check=True,21418 capture_output=True,21419 )21420 proc = subprocess.Popen( # noqa: S60321421 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21422 stdout=subprocess.DEVNULL,21423 stderr=subprocess.DEVNULL,21424 )21425 try:21426 deadline = time.monotonic() + 3021427 while (21428 subprocess.run( # noqa: S60321429 ["pg_isready", "-h", str(sockdir), "-U", "test"],21430 check=False,21431 capture_output=True,21432 ).returncode21433 != 021434 ):21435 # The socket appears before recovery finishes; createdb would21436 # fail with "the database system is starting up".21437 if time.monotonic() > deadline:21438 msg = "postgres did not start"21439> raise RuntimeError(msg)21440E RuntimeError: postgres did not start2144121442nixbot/tests/support.py:319: RuntimeError21443_________________ ERROR at setup of test_effect_rows_roundtrip _________________21444[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142144521446self = <Coroutine test_effect_rows_roundtrip>2144721448 def setup(self) -> None:21449 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21450 if runner_fixture_id not in self.fixturenames:21451 self.fixturenames.append(runner_fixture_id)21452 # When loop factories are configured, resolve the loop factory21453 # fixture early so that a factory variant change cascades cache21454 # invalidation before any async fixture checks its cache.21455 hook_caller = self.config.hook.pytest_asyncio_loop_factories21456 if hook_caller.get_hookimpls():21457 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21458> return super().setup()21459 ^^^^^^^^^^^^^^^2146021461/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21462_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21463nixbot/tests/conftest.py:33: in postgres_dsn21464 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21465 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21466/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21467 return next(self.gen)21468 ^^^^^^^^^^^^^^21469_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2147021471tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...atch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21472dbname = 'orchestrator'2147321474 @contextlib.contextmanager21475 def ephemeral_postgres(21476 tmp_path_factory: pytest.TempPathFactory, dbname: str21477 ) -> Iterator[str]:21478 """Throwaway Postgres on a unix socket with migrations applied."""21479 datadir = tmp_path_factory.mktemp("pgdata")21480 sockdir = tmp_path_factory.mktemp("pgsock")21481 subprocess.run( # noqa: S60321482 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21483 check=True,21484 capture_output=True,21485 )21486 proc = subprocess.Popen( # noqa: S60321487 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21488 stdout=subprocess.DEVNULL,21489 stderr=subprocess.DEVNULL,21490 )21491 try:21492 deadline = time.monotonic() + 3021493 while (21494 subprocess.run( # noqa: S60321495 ["pg_isready", "-h", str(sockdir), "-U", "test"],21496 check=False,21497 capture_output=True,21498 ).returncode21499 != 021500 ):21501 # The socket appears before recovery finishes; createdb would21502 # fail with "the database system is starting up".21503 if time.monotonic() > deadline:21504 msg = "postgres did not start"21505> raise RuntimeError(msg)21506E RuntimeError: postgres did not start2150721508nixbot/tests/support.py:319: RuntimeError21509_________ ERROR at setup of test_pending_effects_replace_skipped_rows __________21510[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142151121512self = <Coroutine test_pending_effects_replace_skipped_rows>2151321514 def setup(self) -> None:21515 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21516 if runner_fixture_id not in self.fixturenames:21517 self.fixturenames.append(runner_fixture_id)21518 # When loop factories are configured, resolve the loop factory21519 # fixture early so that a factory variant change cascades cache21520 # invalidation before any async fixture checks its cache.21521 hook_caller = self.config.hook.pytest_asyncio_loop_factories21522 if hook_caller.get_hookimpls():21523 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21524> return super().setup()21525 ^^^^^^^^^^^^^^^2152621527/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21528_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21529nixbot/tests/conftest.py:33: in postgres_dsn21530 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21531 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21532/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21533 return next(self.gen)21534 ^^^^^^^^^^^^^^21535_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2153621537tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...atch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21538dbname = 'orchestrator'2153921540 @contextlib.contextmanager21541 def ephemeral_postgres(21542 tmp_path_factory: pytest.TempPathFactory, dbname: str21543 ) -> Iterator[str]:21544 """Throwaway Postgres on a unix socket with migrations applied."""21545 datadir = tmp_path_factory.mktemp("pgdata")21546 sockdir = tmp_path_factory.mktemp("pgsock")21547 subprocess.run( # noqa: S60321548 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21549 check=True,21550 capture_output=True,21551 )21552 proc = subprocess.Popen( # noqa: S60321553 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21554 stdout=subprocess.DEVNULL,21555 stderr=subprocess.DEVNULL,21556 )21557 try:21558 deadline = time.monotonic() + 3021559 while (21560 subprocess.run( # noqa: S60321561 ["pg_isready", "-h", str(sockdir), "-U", "test"],21562 check=False,21563 capture_output=True,21564 ).returncode21565 != 021566 ):21567 # The socket appears before recovery finishes; createdb would21568 # fail with "the database system is starting up".21569 if time.monotonic() > deadline:21570 msg = "postgres did not start"21571> raise RuntimeError(msg)21572E RuntimeError: postgres did not start2157321574nixbot/tests/support.py:319: RuntimeError21575___________ ERROR at setup of test_effect_items_resume_only_pending ____________21576[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142157721578self = <Coroutine test_effect_items_resume_only_pending>2157921580 def setup(self) -> None:21581 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21582 if runner_fixture_id not in self.fixturenames:21583 self.fixturenames.append(runner_fixture_id)21584 # When loop factories are configured, resolve the loop factory21585 # fixture early so that a factory variant change cascades cache21586 # invalidation before any async fixture checks its cache.21587 hook_caller = self.config.hook.pytest_asyncio_loop_factories21588 if hook_caller.get_hookimpls():21589 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21590> return super().setup()21591 ^^^^^^^^^^^^^^^2159221593/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21594_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21595nixbot/tests/conftest.py:33: in postgres_dsn21596 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21597 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21598/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21599 return next(self.gen)21600 ^^^^^^^^^^^^^^21601_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2160221603tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...atch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21604dbname = 'orchestrator'2160521606 @contextlib.contextmanager21607 def ephemeral_postgres(21608 tmp_path_factory: pytest.TempPathFactory, dbname: str21609 ) -> Iterator[str]:21610 """Throwaway Postgres on a unix socket with migrations applied."""21611 datadir = tmp_path_factory.mktemp("pgdata")21612 sockdir = tmp_path_factory.mktemp("pgsock")21613 subprocess.run( # noqa: S60321614 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21615 check=True,21616 capture_output=True,21617 )21618 proc = subprocess.Popen( # noqa: S60321619 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21620 stdout=subprocess.DEVNULL,21621 stderr=subprocess.DEVNULL,21622 )21623 try:21624 deadline = time.monotonic() + 3021625 while (21626 subprocess.run( # noqa: S60321627 ["pg_isready", "-h", str(sockdir), "-U", "test"],21628 check=False,21629 capture_output=True,21630 ).returncode21631 != 021632 ):21633 # The socket appears before recovery finishes; createdb would21634 # fail with "the database system is starting up".21635 if time.monotonic() > deadline:21636 msg = "postgres did not start"21637> raise RuntimeError(msg)21638E RuntimeError: postgres did not start2163921640nixbot/tests/support.py:319: RuntimeError21641_____________ ERROR at setup of test_effect_crash_settles_the_row ______________21642[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142164321644self = <Coroutine test_effect_crash_settles_the_row>2164521646 def setup(self) -> None:21647 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21648 if runner_fixture_id not in self.fixturenames:21649 self.fixturenames.append(runner_fixture_id)21650 # When loop factories are configured, resolve the loop factory21651 # fixture early so that a factory variant change cascades cache21652 # invalidation before any async fixture checks its cache.21653 hook_caller = self.config.hook.pytest_asyncio_loop_factories21654 if hook_caller.get_hookimpls():21655 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21656> return super().setup()21657 ^^^^^^^^^^^^^^^2165821659/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21660_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21661nixbot/tests/conftest.py:33: in postgres_dsn21662 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21663 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21664/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21665 return next(self.gen)21666 ^^^^^^^^^^^^^^21667_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2166821669tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...atch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21670dbname = 'orchestrator'2167121672 @contextlib.contextmanager21673 def ephemeral_postgres(21674 tmp_path_factory: pytest.TempPathFactory, dbname: str21675 ) -> Iterator[str]:21676 """Throwaway Postgres on a unix socket with migrations applied."""21677 datadir = tmp_path_factory.mktemp("pgdata")21678 sockdir = tmp_path_factory.mktemp("pgsock")21679 subprocess.run( # noqa: S60321680 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21681 check=True,21682 capture_output=True,21683 )21684 proc = subprocess.Popen( # noqa: S60321685 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21686 stdout=subprocess.DEVNULL,21687 stderr=subprocess.DEVNULL,21688 )21689 try:21690 deadline = time.monotonic() + 3021691 while (21692 subprocess.run( # noqa: S60321693 ["pg_isready", "-h", str(sockdir), "-U", "test"],21694 check=False,21695 capture_output=True,21696 ).returncode21697 != 021698 ):21699 # The socket appears before recovery finishes; createdb would21700 # fail with "the database system is starting up".21701 if time.monotonic() > deadline:21702 msg = "postgres did not start"21703> raise RuntimeError(msg)21704E RuntimeError: postgres did not start2170521706nixbot/tests/support.py:319: RuntimeError21707_____ ERROR at setup of test_concurrent_effects_use_independent_worktrees ______21708[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142170921710self = <Coroutine test_concurrent_effects_use_independent_worktrees>2171121712 def setup(self) -> None:21713 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21714 if runner_fixture_id not in self.fixturenames:21715 self.fixturenames.append(runner_fixture_id)21716 # When loop factories are configured, resolve the loop factory21717 # fixture early so that a factory variant change cascades cache21718 # invalidation before any async fixture checks its cache.21719 hook_caller = self.config.hook.pytest_asyncio_loop_factories21720 if hook_caller.get_hookimpls():21721 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21722> return super().setup()21723 ^^^^^^^^^^^^^^^2172421725/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21726_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21727nixbot/tests/conftest.py:33: in postgres_dsn21728 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21729 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21730/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21731 return next(self.gen)21732 ^^^^^^^^^^^^^^21733_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2173421735tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...atch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21736dbname = 'orchestrator'2173721738 @contextlib.contextmanager21739 def ephemeral_postgres(21740 tmp_path_factory: pytest.TempPathFactory, dbname: str21741 ) -> Iterator[str]:21742 """Throwaway Postgres on a unix socket with migrations applied."""21743 datadir = tmp_path_factory.mktemp("pgdata")21744 sockdir = tmp_path_factory.mktemp("pgsock")21745 subprocess.run( # noqa: S60321746 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21747 check=True,21748 capture_output=True,21749 )21750 proc = subprocess.Popen( # noqa: S60321751 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21752 stdout=subprocess.DEVNULL,21753 stderr=subprocess.DEVNULL,21754 )21755 try:21756 deadline = time.monotonic() + 3021757 while (21758 subprocess.run( # noqa: S60321759 ["pg_isready", "-h", str(sockdir), "-U", "test"],21760 check=False,21761 capture_output=True,21762 ).returncode21763 != 021764 ):21765 # The socket appears before recovery finishes; createdb would21766 # fail with "the database system is starting up".21767 if time.monotonic() > deadline:21768 msg = "postgres did not start"21769> raise RuntimeError(msg)21770E RuntimeError: postgres did not start2177121772nixbot/tests/support.py:319: RuntimeError21773__________ ERROR at setup of test_locked_effect_gets_shared_dedup_key __________21774[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142177521776self = <Coroutine test_locked_effect_gets_shared_dedup_key>2177721778 def setup(self) -> None:21779 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21780 if runner_fixture_id not in self.fixturenames:21781 self.fixturenames.append(runner_fixture_id)21782 # When loop factories are configured, resolve the loop factory21783 # fixture early so that a factory variant change cascades cache21784 # invalidation before any async fixture checks its cache.21785 hook_caller = self.config.hook.pytest_asyncio_loop_factories21786 if hook_caller.get_hookimpls():21787 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21788> return super().setup()21789 ^^^^^^^^^^^^^^^2179021791/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21792_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21793nixbot/tests/conftest.py:33: in postgres_dsn21794 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21795 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21796/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21797 return next(self.gen)21798 ^^^^^^^^^^^^^^21799_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2180021801tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...atch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21802dbname = 'orchestrator'2180321804 @contextlib.contextmanager21805 def ephemeral_postgres(21806 tmp_path_factory: pytest.TempPathFactory, dbname: str21807 ) -> Iterator[str]:21808 """Throwaway Postgres on a unix socket with migrations applied."""21809 datadir = tmp_path_factory.mktemp("pgdata")21810 sockdir = tmp_path_factory.mktemp("pgsock")21811 subprocess.run( # noqa: S60321812 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21813 check=True,21814 capture_output=True,21815 )21816 proc = subprocess.Popen( # noqa: S60321817 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21818 stdout=subprocess.DEVNULL,21819 stderr=subprocess.DEVNULL,21820 )21821 try:21822 deadline = time.monotonic() + 3021823 while (21824 subprocess.run( # noqa: S60321825 ["pg_isready", "-h", str(sockdir), "-U", "test"],21826 check=False,21827 capture_output=True,21828 ).returncode21829 != 021830 ):21831 # The socket appears before recovery finishes; createdb would21832 # fail with "the database system is starting up".21833 if time.monotonic() > deadline:21834 msg = "postgres did not start"21835> raise RuntimeError(msg)21836E RuntimeError: postgres did not start2183721838nixbot/tests/support.py:319: RuntimeError21839______ ERROR at setup of test_effect_item_not_claimable_until_dep_settles ______21840[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142184121842self = <Coroutine test_effect_item_not_claimable_until_dep_settles>2184321844 def setup(self) -> None:21845 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21846 if runner_fixture_id not in self.fixturenames:21847 self.fixturenames.append(runner_fixture_id)21848 # When loop factories are configured, resolve the loop factory21849 # fixture early so that a factory variant change cascades cache21850 # invalidation before any async fixture checks its cache.21851 hook_caller = self.config.hook.pytest_asyncio_loop_factories21852 if hook_caller.get_hookimpls():21853 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21854> return super().setup()21855 ^^^^^^^^^^^^^^^2185621857/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21858_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21859nixbot/tests/conftest.py:33: in postgres_dsn21860 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21861 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21862/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21863 return next(self.gen)21864 ^^^^^^^^^^^^^^21865_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2186621867tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...atch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21868dbname = 'orchestrator'2186921870 @contextlib.contextmanager21871 def ephemeral_postgres(21872 tmp_path_factory: pytest.TempPathFactory, dbname: str21873 ) -> Iterator[str]:21874 """Throwaway Postgres on a unix socket with migrations applied."""21875 datadir = tmp_path_factory.mktemp("pgdata")21876 sockdir = tmp_path_factory.mktemp("pgsock")21877 subprocess.run( # noqa: S60321878 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21879 check=True,21880 capture_output=True,21881 )21882 proc = subprocess.Popen( # noqa: S60321883 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21884 stdout=subprocess.DEVNULL,21885 stderr=subprocess.DEVNULL,21886 )21887 try:21888 deadline = time.monotonic() + 3021889 while (21890 subprocess.run( # noqa: S60321891 ["pg_isready", "-h", str(sockdir), "-U", "test"],21892 check=False,21893 capture_output=True,21894 ).returncode21895 != 021896 ):21897 # The socket appears before recovery finishes; createdb would21898 # fail with "the database system is starting up".21899 if time.monotonic() > deadline:21900 msg = "postgres did not start"21901> raise RuntimeError(msg)21902E RuntimeError: postgres did not start2190321904nixbot/tests/support.py:319: RuntimeError21905__________ ERROR at setup of test_effect_dep_failure_skips_dependent ___________21906[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142190721908self = <Coroutine test_effect_dep_failure_skips_dependent>2190921910 def setup(self) -> None:21911 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21912 if runner_fixture_id not in self.fixturenames:21913 self.fixturenames.append(runner_fixture_id)21914 # When loop factories are configured, resolve the loop factory21915 # fixture early so that a factory variant change cascades cache21916 # invalidation before any async fixture checks its cache.21917 hook_caller = self.config.hook.pytest_asyncio_loop_factories21918 if hook_caller.get_hookimpls():21919 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21920> return super().setup()21921 ^^^^^^^^^^^^^^^2192221923/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21924_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21925nixbot/tests/conftest.py:33: in postgres_dsn21926 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21927 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21928/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21929 return next(self.gen)21930 ^^^^^^^^^^^^^^21931_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2193221933tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...atch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21934dbname = 'orchestrator'2193521936 @contextlib.contextmanager21937 def ephemeral_postgres(21938 tmp_path_factory: pytest.TempPathFactory, dbname: str21939 ) -> Iterator[str]:21940 """Throwaway Postgres on a unix socket with migrations applied."""21941 datadir = tmp_path_factory.mktemp("pgdata")21942 sockdir = tmp_path_factory.mktemp("pgsock")21943 subprocess.run( # noqa: S60321944 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21945 check=True,21946 capture_output=True,21947 )21948 proc = subprocess.Popen( # noqa: S60321949 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21950 stdout=subprocess.DEVNULL,21951 stderr=subprocess.DEVNULL,21952 )21953 try:21954 deadline = time.monotonic() + 3021955 while (21956 subprocess.run( # noqa: S60321957 ["pg_isready", "-h", str(sockdir), "-U", "test"],21958 check=False,21959 capture_output=True,21960 ).returncode21961 != 021962 ):21963 # The socket appears before recovery finishes; createdb would21964 # fail with "the database system is starting up".21965 if time.monotonic() > deadline:21966 msg = "postgres did not start"21967> raise RuntimeError(msg)21968E RuntimeError: postgres did not start2196921970nixbot/tests/support.py:319: RuntimeError21971______ ERROR at setup of test_lock_serializes_builds_without_interleaving ______21972[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142197321974self = <Coroutine test_lock_serializes_builds_without_interleaving>2197521976 def setup(self) -> None:21977 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21978 if runner_fixture_id not in self.fixturenames:21979 self.fixturenames.append(runner_fixture_id)21980 # When loop factories are configured, resolve the loop factory21981 # fixture early so that a factory variant change cascades cache21982 # invalidation before any async fixture checks its cache.21983 hook_caller = self.config.hook.pytest_asyncio_loop_factories21984 if hook_caller.get_hookimpls():21985 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21986> return super().setup()21987 ^^^^^^^^^^^^^^^2198821989/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21990_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21991nixbot/tests/conftest.py:33: in postgres_dsn21992 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21993 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21994/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21995 return next(self.gen)21996 ^^^^^^^^^^^^^^21997_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2199821999tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...atch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22000dbname = 'orchestrator'2200122002 @contextlib.contextmanager22003 def ephemeral_postgres(22004 tmp_path_factory: pytest.TempPathFactory, dbname: str22005 ) -> Iterator[str]:22006 """Throwaway Postgres on a unix socket with migrations applied."""22007 datadir = tmp_path_factory.mktemp("pgdata")22008 sockdir = tmp_path_factory.mktemp("pgsock")22009 subprocess.run( # noqa: S60322010 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22011 check=True,22012 capture_output=True,22013 )22014 proc = subprocess.Popen( # noqa: S60322015 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22016 stdout=subprocess.DEVNULL,22017 stderr=subprocess.DEVNULL,22018 )22019 try:22020 deadline = time.monotonic() + 3022021 while (22022 subprocess.run( # noqa: S60322023 ["pg_isready", "-h", str(sockdir), "-U", "test"],22024 check=False,22025 capture_output=True,22026 ).returncode22027 != 022028 ):22029 # The socket appears before recovery finishes; createdb would22030 # fail with "the database system is starting up".22031 if time.monotonic() > deadline:22032 msg = "postgres did not start"22033> raise RuntimeError(msg)22034E RuntimeError: postgres did not start2203522036nixbot/tests/support.py:319: RuntimeError22037___________ ERROR at setup of test_effect_dep_cycle_fails_discovery ____________22038[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142203922040self = <Coroutine test_effect_dep_cycle_fails_discovery>2204122042 def setup(self) -> None:22043 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22044 if runner_fixture_id not in self.fixturenames:22045 self.fixturenames.append(runner_fixture_id)22046 # When loop factories are configured, resolve the loop factory22047 # fixture early so that a factory variant change cascades cache22048 # invalidation before any async fixture checks its cache.22049 hook_caller = self.config.hook.pytest_asyncio_loop_factories22050 if hook_caller.get_hookimpls():22051 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22052> return super().setup()22053 ^^^^^^^^^^^^^^^2205422055/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22056_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22057nixbot/tests/conftest.py:33: in postgres_dsn22058 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22059 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22060/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22061 return next(self.gen)22062 ^^^^^^^^^^^^^^22063_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2206422065tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...atch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22066dbname = 'orchestrator'2206722068 @contextlib.contextmanager22069 def ephemeral_postgres(22070 tmp_path_factory: pytest.TempPathFactory, dbname: str22071 ) -> Iterator[str]:22072 """Throwaway Postgres on a unix socket with migrations applied."""22073 datadir = tmp_path_factory.mktemp("pgdata")22074 sockdir = tmp_path_factory.mktemp("pgsock")22075 subprocess.run( # noqa: S60322076 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22077 check=True,22078 capture_output=True,22079 )22080 proc = subprocess.Popen( # noqa: S60322081 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22082 stdout=subprocess.DEVNULL,22083 stderr=subprocess.DEVNULL,22084 )22085 try:22086 deadline = time.monotonic() + 3022087 while (22088 subprocess.run( # noqa: S60322089 ["pg_isready", "-h", str(sockdir), "-U", "test"],22090 check=False,22091 capture_output=True,22092 ).returncode22093 != 022094 ):22095 # The socket appears before recovery finishes; createdb would22096 # fail with "the database system is starting up".22097 if time.monotonic() > deadline:22098 msg = "postgres did not start"22099> raise RuntimeError(msg)22100E RuntimeError: postgres did not start2210122102nixbot/tests/support.py:319: RuntimeError22103_________ ERROR at setup of test_failed_effect_reports_failure_status __________22104[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142210522106self = <Coroutine test_failed_effect_reports_failure_status>2210722108 def setup(self) -> None:22109 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22110 if runner_fixture_id not in self.fixturenames:22111 self.fixturenames.append(runner_fixture_id)22112 # When loop factories are configured, resolve the loop factory22113 # fixture early so that a factory variant change cascades cache22114 # invalidation before any async fixture checks its cache.22115 hook_caller = self.config.hook.pytest_asyncio_loop_factories22116 if hook_caller.get_hookimpls():22117 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22118> return super().setup()22119 ^^^^^^^^^^^^^^^2212022121/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22122_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22123nixbot/tests/conftest.py:33: in postgres_dsn22124 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22125 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22126/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22127 return next(self.gen)22128 ^^^^^^^^^^^^^^22129_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2213022131tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...atch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22132dbname = 'orchestrator'2213322134 @contextlib.contextmanager22135 def ephemeral_postgres(22136 tmp_path_factory: pytest.TempPathFactory, dbname: str22137 ) -> Iterator[str]:22138 """Throwaway Postgres on a unix socket with migrations applied."""22139 datadir = tmp_path_factory.mktemp("pgdata")22140 sockdir = tmp_path_factory.mktemp("pgsock")22141 subprocess.run( # noqa: S60322142 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22143 check=True,22144 capture_output=True,22145 )22146 proc = subprocess.Popen( # noqa: S60322147 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22148 stdout=subprocess.DEVNULL,22149 stderr=subprocess.DEVNULL,22150 )22151 try:22152 deadline = time.monotonic() + 3022153 while (22154 subprocess.run( # noqa: S60322155 ["pg_isready", "-h", str(sockdir), "-U", "test"],22156 check=False,22157 capture_output=True,22158 ).returncode22159 != 022160 ):22161 # The socket appears before recovery finishes; createdb would22162 # fail with "the database system is starting up".22163 if time.monotonic() > deadline:22164 msg = "postgres did not start"22165> raise RuntimeError(msg)22166E RuntimeError: postgres did not start2216722168nixbot/tests/support.py:319: RuntimeError22169________ ERROR at setup of test_post_process_error_does_not_wedge_build ________22170[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142217122172self = <Coroutine test_post_process_error_does_not_wedge_build>2217322174 def setup(self) -> None:22175 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22176 if runner_fixture_id not in self.fixturenames:22177 self.fixturenames.append(runner_fixture_id)22178 # When loop factories are configured, resolve the loop factory22179 # fixture early so that a factory variant change cascades cache22180 # invalidation before any async fixture checks its cache.22181 hook_caller = self.config.hook.pytest_asyncio_loop_factories22182 if hook_caller.get_hookimpls():22183 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22184> return super().setup()22185 ^^^^^^^^^^^^^^^2218622187/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22188_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22189nixbot/tests/conftest.py:33: in postgres_dsn22190 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22191 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22192/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22193 return next(self.gen)22194 ^^^^^^^^^^^^^^22195_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2219622197tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...atch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22198dbname = 'orchestrator'2219922200 @contextlib.contextmanager22201 def ephemeral_postgres(22202 tmp_path_factory: pytest.TempPathFactory, dbname: str22203 ) -> Iterator[str]:22204 """Throwaway Postgres on a unix socket with migrations applied."""22205 datadir = tmp_path_factory.mktemp("pgdata")22206 sockdir = tmp_path_factory.mktemp("pgsock")22207 subprocess.run( # noqa: S60322208 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22209 check=True,22210 capture_output=True,22211 )22212 proc = subprocess.Popen( # noqa: S60322213 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22214 stdout=subprocess.DEVNULL,22215 stderr=subprocess.DEVNULL,22216 )22217 try:22218 deadline = time.monotonic() + 3022219 while (22220 subprocess.run( # noqa: S60322221 ["pg_isready", "-h", str(sockdir), "-U", "test"],22222 check=False,22223 capture_output=True,22224 ).returncode22225 != 022226 ):22227 # The socket appears before recovery finishes; createdb would22228 # fail with "the database system is starting up".22229 if time.monotonic() > deadline:22230 msg = "postgres did not start"22231> raise RuntimeError(msg)22232E RuntimeError: postgres did not start2223322234nixbot/tests/support.py:319: RuntimeError22235_______ ERROR at setup of test_unexpected_eval_path_error_settles_build ________22236[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142223722238self = <Coroutine test_unexpected_eval_path_error_settles_build>2223922240 def setup(self) -> None:22241 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22242 if runner_fixture_id not in self.fixturenames:22243 self.fixturenames.append(runner_fixture_id)22244 # When loop factories are configured, resolve the loop factory22245 # fixture early so that a factory variant change cascades cache22246 # invalidation before any async fixture checks its cache.22247 hook_caller = self.config.hook.pytest_asyncio_loop_factories22248 if hook_caller.get_hookimpls():22249 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22250> return super().setup()22251 ^^^^^^^^^^^^^^^2225222253/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22254_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22255nixbot/tests/conftest.py:33: in postgres_dsn22256 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22257 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22258/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22259 return next(self.gen)22260 ^^^^^^^^^^^^^^22261_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2226222263tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...atch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22264dbname = 'orchestrator'2226522266 @contextlib.contextmanager22267 def ephemeral_postgres(22268 tmp_path_factory: pytest.TempPathFactory, dbname: str22269 ) -> Iterator[str]:22270 """Throwaway Postgres on a unix socket with migrations applied."""22271 datadir = tmp_path_factory.mktemp("pgdata")22272 sockdir = tmp_path_factory.mktemp("pgsock")22273 subprocess.run( # noqa: S60322274 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22275 check=True,22276 capture_output=True,22277 )22278 proc = subprocess.Popen( # noqa: S60322279 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22280 stdout=subprocess.DEVNULL,22281 stderr=subprocess.DEVNULL,22282 )22283 try:22284 deadline = time.monotonic() + 3022285 while (22286 subprocess.run( # noqa: S60322287 ["pg_isready", "-h", str(sockdir), "-U", "test"],22288 check=False,22289 capture_output=True,22290 ).returncode22291 != 022292 ):22293 # The socket appears before recovery finishes; createdb would22294 # fail with "the database system is starting up".22295 if time.monotonic() > deadline:22296 msg = "postgres did not start"22297> raise RuntimeError(msg)22298E RuntimeError: postgres did not start2229922300nixbot/tests/support.py:319: RuntimeError22301____ ERROR at setup of test_reuse_empty_succeeded_build_posts_eval_success _____22302[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142230322304self = <Coroutine test_reuse_empty_succeeded_build_posts_eval_success>2230522306 def setup(self) -> None:22307 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22308 if runner_fixture_id not in self.fixturenames:22309 self.fixturenames.append(runner_fixture_id)22310 # When loop factories are configured, resolve the loop factory22311 # fixture early so that a factory variant change cascades cache22312 # invalidation before any async fixture checks its cache.22313 hook_caller = self.config.hook.pytest_asyncio_loop_factories22314 if hook_caller.get_hookimpls():22315 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22316> return super().setup()22317 ^^^^^^^^^^^^^^^2231822319/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22320_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22321nixbot/tests/conftest.py:33: in postgres_dsn22322 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22323 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22324/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22325 return next(self.gen)22326 ^^^^^^^^^^^^^^22327_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2232822329tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...atch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22330dbname = 'orchestrator'2233122332 @contextlib.contextmanager22333 def ephemeral_postgres(22334 tmp_path_factory: pytest.TempPathFactory, dbname: str22335 ) -> Iterator[str]:22336 """Throwaway Postgres on a unix socket with migrations applied."""22337 datadir = tmp_path_factory.mktemp("pgdata")22338 sockdir = tmp_path_factory.mktemp("pgsock")22339 subprocess.run( # noqa: S60322340 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22341 check=True,22342 capture_output=True,22343 )22344 proc = subprocess.Popen( # noqa: S60322345 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22346 stdout=subprocess.DEVNULL,22347 stderr=subprocess.DEVNULL,22348 )22349 try:22350 deadline = time.monotonic() + 3022351 while (22352 subprocess.run( # noqa: S60322353 ["pg_isready", "-h", str(sockdir), "-U", "test"],22354 check=False,22355 capture_output=True,22356 ).returncode22357 != 022358 ):22359 # The socket appears before recovery finishes; createdb would22360 # fail with "the database system is starting up".22361 if time.monotonic() > deadline:22362 msg = "postgres did not start"22363> raise RuntimeError(msg)22364E RuntimeError: postgres did not start2236522366nixbot/tests/support.py:319: RuntimeError22367__ ERROR at setup of test_stale_event_reusing_old_build_does_not_cancel_newer __22368[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142236922370self = <Coroutine test_stale_event_reusing_old_build_does_not_cancel_newer>2237122372 def setup(self) -> None:22373 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22374 if runner_fixture_id not in self.fixturenames:22375 self.fixturenames.append(runner_fixture_id)22376 # When loop factories are configured, resolve the loop factory22377 # fixture early so that a factory variant change cascades cache22378 # invalidation before any async fixture checks its cache.22379 hook_caller = self.config.hook.pytest_asyncio_loop_factories22380 if hook_caller.get_hookimpls():22381 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22382> return super().setup()22383 ^^^^^^^^^^^^^^^2238422385/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22386_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22387nixbot/tests/conftest.py:33: in postgres_dsn22388 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22389 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22390/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22391 return next(self.gen)22392 ^^^^^^^^^^^^^^22393_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2239422395tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...atch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22396dbname = 'orchestrator'2239722398 @contextlib.contextmanager22399 def ephemeral_postgres(22400 tmp_path_factory: pytest.TempPathFactory, dbname: str22401 ) -> Iterator[str]:22402 """Throwaway Postgres on a unix socket with migrations applied."""22403 datadir = tmp_path_factory.mktemp("pgdata")22404 sockdir = tmp_path_factory.mktemp("pgsock")22405 subprocess.run( # noqa: S60322406 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22407 check=True,22408 capture_output=True,22409 )22410 proc = subprocess.Popen( # noqa: S60322411 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22412 stdout=subprocess.DEVNULL,22413 stderr=subprocess.DEVNULL,22414 )22415 try:22416 deadline = time.monotonic() + 3022417 while (22418 subprocess.run( # noqa: S60322419 ["pg_isready", "-h", str(sockdir), "-U", "test"],22420 check=False,22421 capture_output=True,22422 ).returncode22423 != 022424 ):22425 # The socket appears before recovery finishes; createdb would22426 # fail with "the database system is starting up".22427 if time.monotonic() > deadline:22428 msg = "postgres did not start"22429> raise RuntimeError(msg)22430E RuntimeError: postgres did not start2243122432nixbot/tests/support.py:319: RuntimeError22433______ ERROR at setup of test_reuse_for_default_branch_push_runs_effects _______22434[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142243522436self = <Coroutine test_reuse_for_default_branch_push_runs_effects>2243722438 def setup(self) -> None:22439 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22440 if runner_fixture_id not in self.fixturenames:22441 self.fixturenames.append(runner_fixture_id)22442 # When loop factories are configured, resolve the loop factory22443 # fixture early so that a factory variant change cascades cache22444 # invalidation before any async fixture checks its cache.22445 hook_caller = self.config.hook.pytest_asyncio_loop_factories22446 if hook_caller.get_hookimpls():22447 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22448> return super().setup()22449 ^^^^^^^^^^^^^^^2245022451/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22452_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22453nixbot/tests/conftest.py:33: in postgres_dsn22454 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22455 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22456/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22457 return next(self.gen)22458 ^^^^^^^^^^^^^^22459_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2246022461tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...atch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22462dbname = 'orchestrator'2246322464 @contextlib.contextmanager22465 def ephemeral_postgres(22466 tmp_path_factory: pytest.TempPathFactory, dbname: str22467 ) -> Iterator[str]:22468 """Throwaway Postgres on a unix socket with migrations applied."""22469 datadir = tmp_path_factory.mktemp("pgdata")22470 sockdir = tmp_path_factory.mktemp("pgsock")22471 subprocess.run( # noqa: S60322472 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22473 check=True,22474 capture_output=True,22475 )22476 proc = subprocess.Popen( # noqa: S60322477 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22478 stdout=subprocess.DEVNULL,22479 stderr=subprocess.DEVNULL,22480 )22481 try:22482 deadline = time.monotonic() + 3022483 while (22484 subprocess.run( # noqa: S60322485 ["pg_isready", "-h", str(sockdir), "-U", "test"],22486 check=False,22487 capture_output=True,22488 ).returncode22489 != 022490 ):22491 # The socket appears before recovery finishes; createdb would22492 # fail with "the database system is starting up".22493 if time.monotonic() > deadline:22494 msg = "postgres did not start"22495> raise RuntimeError(msg)22496E RuntimeError: postgres did not start2249722498nixbot/tests/support.py:319: RuntimeError22499__ ERROR at setup of test_tag_reusing_deployed_build_delivers_its_own_effects __22500[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142250122502self = <Coroutine test_tag_reusing_deployed_build_delivers_its_own_effects>2250322504 def setup(self) -> None:22505 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22506 if runner_fixture_id not in self.fixturenames:22507 self.fixturenames.append(runner_fixture_id)22508 # When loop factories are configured, resolve the loop factory22509 # fixture early so that a factory variant change cascades cache22510 # invalidation before any async fixture checks its cache.22511 hook_caller = self.config.hook.pytest_asyncio_loop_factories22512 if hook_caller.get_hookimpls():22513 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22514> return super().setup()22515 ^^^^^^^^^^^^^^^2251622517/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22518_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22519nixbot/tests/conftest.py:33: in postgres_dsn22520 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22521 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22522/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22523 return next(self.gen)22524 ^^^^^^^^^^^^^^22525_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2252622527tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...atch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22528dbname = 'orchestrator'2252922530 @contextlib.contextmanager22531 def ephemeral_postgres(22532 tmp_path_factory: pytest.TempPathFactory, dbname: str22533 ) -> Iterator[str]:22534 """Throwaway Postgres on a unix socket with migrations applied."""22535 datadir = tmp_path_factory.mktemp("pgdata")22536 sockdir = tmp_path_factory.mktemp("pgsock")22537 subprocess.run( # noqa: S60322538 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22539 check=True,22540 capture_output=True,22541 )22542 proc = subprocess.Popen( # noqa: S60322543 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22544 stdout=subprocess.DEVNULL,22545 stderr=subprocess.DEVNULL,22546 )22547 try:22548 deadline = time.monotonic() + 3022549 while (22550 subprocess.run( # noqa: S60322551 ["pg_isready", "-h", str(sockdir), "-U", "test"],22552 check=False,22553 capture_output=True,22554 ).returncode22555 != 022556 ):22557 # The socket appears before recovery finishes; createdb would22558 # fail with "the database system is starting up".22559 if time.monotonic() > deadline:22560 msg = "postgres did not start"22561> raise RuntimeError(msg)22562E RuntimeError: postgres did not start2256322564nixbot/tests/support.py:319: RuntimeError22565__ ERROR at setup of test_tag_attached_to_in_flight_build_delivers_on_success __22566[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142256722568self = <Coroutine test_tag_attached_to_in_flight_build_delivers_on_success>2256922570 def setup(self) -> None:22571 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22572 if runner_fixture_id not in self.fixturenames:22573 self.fixturenames.append(runner_fixture_id)22574 # When loop factories are configured, resolve the loop factory22575 # fixture early so that a factory variant change cascades cache22576 # invalidation before any async fixture checks its cache.22577 hook_caller = self.config.hook.pytest_asyncio_loop_factories22578 if hook_caller.get_hookimpls():22579 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22580> return super().setup()22581 ^^^^^^^^^^^^^^^2258222583/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22584_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22585nixbot/tests/conftest.py:33: in postgres_dsn22586 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22587 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22588/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22589 return next(self.gen)22590 ^^^^^^^^^^^^^^22591_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2259222593tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...atch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22594dbname = 'orchestrator'2259522596 @contextlib.contextmanager22597 def ephemeral_postgres(22598 tmp_path_factory: pytest.TempPathFactory, dbname: str22599 ) -> Iterator[str]:22600 """Throwaway Postgres on a unix socket with migrations applied."""22601 datadir = tmp_path_factory.mktemp("pgdata")22602 sockdir = tmp_path_factory.mktemp("pgsock")22603 subprocess.run( # noqa: S60322604 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22605 check=True,22606 capture_output=True,22607 )22608 proc = subprocess.Popen( # noqa: S60322609 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22610 stdout=subprocess.DEVNULL,22611 stderr=subprocess.DEVNULL,22612 )22613 try:22614 deadline = time.monotonic() + 3022615 while (22616 subprocess.run( # noqa: S60322617 ["pg_isready", "-h", str(sockdir), "-U", "test"],22618 check=False,22619 capture_output=True,22620 ).returncode22621 != 022622 ):22623 # The socket appears before recovery finishes; createdb would22624 # fail with "the database system is starting up".22625 if time.monotonic() > deadline:22626 msg = "postgres did not start"22627> raise RuntimeError(msg)22628E RuntimeError: postgres did not start2262922630nixbot/tests/support.py:319: RuntimeError22631______ ERROR at setup of test_restart_of_gated_build_settles_effect_rows _______22632[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142263322634self = <Coroutine test_restart_of_gated_build_settles_effect_rows>2263522636 def setup(self) -> None:22637 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22638 if runner_fixture_id not in self.fixturenames:22639 self.fixturenames.append(runner_fixture_id)22640 # When loop factories are configured, resolve the loop factory22641 # fixture early so that a factory variant change cascades cache22642 # invalidation before any async fixture checks its cache.22643 hook_caller = self.config.hook.pytest_asyncio_loop_factories22644 if hook_caller.get_hookimpls():22645 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22646> return super().setup()22647 ^^^^^^^^^^^^^^^2264822649/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22650_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22651nixbot/tests/conftest.py:33: in postgres_dsn22652 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22653 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22654/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22655 return next(self.gen)22656 ^^^^^^^^^^^^^^22657_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2265822659tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...atch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22660dbname = 'orchestrator'2266122662 @contextlib.contextmanager22663 def ephemeral_postgres(22664 tmp_path_factory: pytest.TempPathFactory, dbname: str22665 ) -> Iterator[str]:22666 """Throwaway Postgres on a unix socket with migrations applied."""22667 datadir = tmp_path_factory.mktemp("pgdata")22668 sockdir = tmp_path_factory.mktemp("pgsock")22669 subprocess.run( # noqa: S60322670 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22671 check=True,22672 capture_output=True,22673 )22674 proc = subprocess.Popen( # noqa: S60322675 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22676 stdout=subprocess.DEVNULL,22677 stderr=subprocess.DEVNULL,22678 )22679 try:22680 deadline = time.monotonic() + 3022681 while (22682 subprocess.run( # noqa: S60322683 ["pg_isready", "-h", str(sockdir), "-U", "test"],22684 check=False,22685 capture_output=True,22686 ).returncode22687 != 022688 ):22689 # The socket appears before recovery finishes; createdb would22690 # fail with "the database system is starting up".22691 if time.monotonic() > deadline:22692 msg = "postgres did not start"22693> raise RuntimeError(msg)22694E RuntimeError: postgres did not start2269522696nixbot/tests/support.py:319: RuntimeError22697________ ERROR at setup of test_restart_build_drops_queued_effect_items ________22698[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142269922700self = <Coroutine test_restart_build_drops_queued_effect_items>2270122702 def setup(self) -> None:22703 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22704 if runner_fixture_id not in self.fixturenames:22705 self.fixturenames.append(runner_fixture_id)22706 # When loop factories are configured, resolve the loop factory22707 # fixture early so that a factory variant change cascades cache22708 # invalidation before any async fixture checks its cache.22709 hook_caller = self.config.hook.pytest_asyncio_loop_factories22710 if hook_caller.get_hookimpls():22711 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22712> return super().setup()22713 ^^^^^^^^^^^^^^^2271422715/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22716_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22717nixbot/tests/conftest.py:33: in postgres_dsn22718 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22719 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22720/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22721 return next(self.gen)22722 ^^^^^^^^^^^^^^22723_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2272422725tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...atch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22726dbname = 'orchestrator'2272722728 @contextlib.contextmanager22729 def ephemeral_postgres(22730 tmp_path_factory: pytest.TempPathFactory, dbname: str22731 ) -> Iterator[str]:22732 """Throwaway Postgres on a unix socket with migrations applied."""22733 datadir = tmp_path_factory.mktemp("pgdata")22734 sockdir = tmp_path_factory.mktemp("pgsock")22735 subprocess.run( # noqa: S60322736 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22737 check=True,22738 capture_output=True,22739 )22740 proc = subprocess.Popen( # noqa: S60322741 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22742 stdout=subprocess.DEVNULL,22743 stderr=subprocess.DEVNULL,22744 )22745 try:22746 deadline = time.monotonic() + 3022747 while (22748 subprocess.run( # noqa: S60322749 ["pg_isready", "-h", str(sockdir), "-U", "test"],22750 check=False,22751 capture_output=True,22752 ).returncode22753 != 022754 ):22755 # The socket appears before recovery finishes; createdb would22756 # fail with "the database system is starting up".22757 if time.monotonic() > deadline:22758 msg = "postgres did not start"22759> raise RuntimeError(msg)22760E RuntimeError: postgres did not start2276122762nixbot/tests/support.py:319: RuntimeError22763___ ERROR at setup of test_restart_effects_after_pr_attach_keeps_effects_ref ___22764[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142276522766self = <Coroutine test_restart_effects_after_pr_attach_keeps_effects_ref>2276722768 def setup(self) -> None:22769 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22770 if runner_fixture_id not in self.fixturenames:22771 self.fixturenames.append(runner_fixture_id)22772 # When loop factories are configured, resolve the loop factory22773 # fixture early so that a factory variant change cascades cache22774 # invalidation before any async fixture checks its cache.22775 hook_caller = self.config.hook.pytest_asyncio_loop_factories22776 if hook_caller.get_hookimpls():22777 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22778> return super().setup()22779 ^^^^^^^^^^^^^^^2278022781/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22782_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22783nixbot/tests/conftest.py:33: in postgres_dsn22784 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22785 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22786/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22787 return next(self.gen)22788 ^^^^^^^^^^^^^^22789_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2279022791tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...atch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22792dbname = 'orchestrator'2279322794 @contextlib.contextmanager22795 def ephemeral_postgres(22796 tmp_path_factory: pytest.TempPathFactory, dbname: str22797 ) -> Iterator[str]:22798 """Throwaway Postgres on a unix socket with migrations applied."""22799 datadir = tmp_path_factory.mktemp("pgdata")22800 sockdir = tmp_path_factory.mktemp("pgsock")22801 subprocess.run( # noqa: S60322802 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22803 check=True,22804 capture_output=True,22805 )22806 proc = subprocess.Popen( # noqa: S60322807 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22808 stdout=subprocess.DEVNULL,22809 stderr=subprocess.DEVNULL,22810 )22811 try:22812 deadline = time.monotonic() + 3022813 while (22814 subprocess.run( # noqa: S60322815 ["pg_isready", "-h", str(sockdir), "-U", "test"],22816 check=False,22817 capture_output=True,22818 ).returncode22819 != 022820 ):22821 # The socket appears before recovery finishes; createdb would22822 # fail with "the database system is starting up".22823 if time.monotonic() > deadline:22824 msg = "postgres did not start"22825> raise RuntimeError(msg)22826E RuntimeError: postgres did not start2282722828nixbot/tests/support.py:319: RuntimeError22829_______ ERROR at setup of test_gated_restart_then_allowed_reuse_deploys ________22830[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142283122832self = <Coroutine test_gated_restart_then_allowed_reuse_deploys>2283322834 def setup(self) -> None:22835 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22836 if runner_fixture_id not in self.fixturenames:22837 self.fixturenames.append(runner_fixture_id)22838 # When loop factories are configured, resolve the loop factory22839 # fixture early so that a factory variant change cascades cache22840 # invalidation before any async fixture checks its cache.22841 hook_caller = self.config.hook.pytest_asyncio_loop_factories22842 if hook_caller.get_hookimpls():22843 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22844> return super().setup()22845 ^^^^^^^^^^^^^^^2284622847/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22848_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22849nixbot/tests/conftest.py:33: in postgres_dsn22850 with ephemeral_postgres(tmp_path_factory, dbname) as dsn: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/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...atch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22858dbname = 'orchestrator'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_rerun_single_effect_takes_pending_dependents ______22896[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142289722898self = <Coroutine test_rerun_single_effect_takes_pending_dependents>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/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...atch/2bc2da777dbb5aa7/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_reuse_replays_effect_statuses_to_new_commit ______22962[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142296322964self = <Coroutine test_reuse_replays_effect_statuses_to_new_commit>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/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...atch/2bc2da777dbb5aa7/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_attach_to_already_terminal_build_replays_status ____23028[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142302923030self = <Coroutine test_attach_to_already_terminal_build_replays_status>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/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...atch/2bc2da777dbb5aa7/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_cancel_during_eval_resolves_linked_eval_contexts ____23094[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142309523096self = <Coroutine test_cancel_during_eval_resolves_linked_eval_contexts>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/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...atch/2bc2da777dbb5aa7/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_effect_log_does_not_collide_with_attribute_log _____23160[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142316123162self = <Coroutine test_effect_log_does_not_collide_with_attribute_log>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/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...atch/2bc2da777dbb5aa7/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_post_process_paths_are_forge_scoped __________23226[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142322723228self = <Coroutine test_post_process_paths_are_forge_scoped>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/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...atch/2bc2da777dbb5aa7/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_effects_phase_error_keeps_succeeded_build _______23292[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142329323294self = <Coroutine test_effects_phase_error_keeps_succeeded_build>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/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...atch/2bc2da777dbb5aa7/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_post_process_error_still_reports_status _____23358[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142335923360self = <Coroutine test_reuse_post_process_error_still_reports_status>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/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...atch/2bc2da777dbb5aa7/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____ ERROR at setup of test_reuse_with_missing_output_still_post_processes _____23424[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142342523426self = <Coroutine test_reuse_with_missing_output_still_post_processes>2342723428 def setup(self) -> None:23429 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"23430 if runner_fixture_id not in self.fixturenames:23431 self.fixturenames.append(runner_fixture_id)23432 # When loop factories are configured, resolve the loop factory23433 # fixture early so that a factory variant change cascades cache23434 # invalidation before any async fixture checks its cache.23435 hook_caller = self.config.hook.pytest_asyncio_loop_factories23436 if hook_caller.get_hookimpls():23437 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)23438> return super().setup()23439 ^^^^^^^^^^^^^^^2344023441/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 23442_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 23443nixbot/tests/conftest.py:33: in postgres_dsn23444 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:23445 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^23446/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__23447 return next(self.gen)23448 ^^^^^^^^^^^^^^23449_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2345023451tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/8/scratch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/p...atch/2bc2da777dbb5aa7/build/pytest-of-_tribuchetbld8/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')23452dbname = 'orchestrator'2345323454 @contextlib.contextmanager23455 def ephemeral_postgres(23456 tmp_path_factory: pytest.TempPathFactory, dbname: str23457 ) -> Iterator[str]:23458 """Throwaway Postgres on a unix socket with migrations applied."""23459 datadir = tmp_path_factory.mktemp("pgdata")23460 sockdir = tmp_path_factory.mktemp("pgsock")23461 subprocess.run( # noqa: S60323462 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],23463 check=True,23464 capture_output=True,23465 )23466 proc = subprocess.Popen( # noqa: S60323467 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],23468 stdout=subprocess.DEVNULL,23469 stderr=subprocess.DEVNULL,23470 )23471 try:23472 deadline = time.monotonic() + 3023473 while (23474 subprocess.run( # noqa: S60323475 ["pg_isready", "-h", str(sockdir), "-U", "test"],23476 check=False,23477 capture_output=True,23478 ).returncode23479 != 023480 ):23481 # The socket appears before recovery finishes; createdb would23482 # fail with "the database system is starting up".23483 if time.monotonic() > deadline:23484 msg = "postgres did not start"23485> raise RuntimeError(msg)23486E RuntimeError: postgres did not start2348723488nixbot/tests/support.py:319: RuntimeError23489=========================== short test summary info ============================23490ERROR nixbot/tests/test_recovery.py::test_resume_skips_terminal_attributes - ...23491ERROR nixbot/tests/test_cli.py::test_repo_list_and_toggle - RuntimeError: pos...23492ERROR nixbot/tests/test_recovery.py::test_settle_already_built - RuntimeError...23493ERROR nixbot/tests/test_cli.py::test_build_list_and_view - RuntimeError: post...23494ERROR nixbot/tests/test_cli.py::test_build_restart_cancel - RuntimeError: pos...23495ERROR nixbot/tests/test_recovery.py::test_retention_cleanup - RuntimeError: p...23496ERROR nixbot/tests/test_cli.py::test_log_summary_attr_and_drv - RuntimeError:...23497ERROR nixbot/tests/test_db.py::test_migrations_idempotent - RuntimeError: pos...23498ERROR nixbot/tests/test_cli.py::test_repo_and_build_inference - RuntimeError:...23499ERROR nixbot/tests/test_db.py::test_failed_migration_error_not_masked - Runti...23500ERROR nixbot/tests/test_recovery.py::test_resume_includes_interrupted_building_attributes23501ERROR nixbot/tests/test_cli.py::test_auth_status - RuntimeError: postgres did...23502ERROR nixbot/tests/test_db.py::test_edited_migration_rejected - RuntimeError:...23503ERROR nixbot/tests/test_recovery.py::test_retention_skips_restarted_builds - ...23504ERROR nixbot/tests/test_db.py::test_catchup_migration_repairs_pre_0033_schema23505ERROR nixbot/tests/test_recovery.py::test_retention_ages_out_failed_caches - ...23506ERROR nixbot/tests/test_db.py::test_huge_attr_name_does_not_break_notify_trigger23507ERROR nixbot/tests/test_recovery.py::test_rerun_clears_stale_eval_warnings - ...23508ERROR nixbot/tests/test_db.py::test_schema_constraints - RuntimeError: postgr...23509ERROR nixbot/tests/test_control.py::test_control_buttons_hidden_without_permission23510ERROR nixbot/tests/test_recovery.py::test_interrupted_effects_fail_on_recovery23511ERROR nixbot/tests/test_db.py::test_check_run_store_round_trip - RuntimeError...23512ERROR nixbot/tests/test_control.py::test_admin_can_restart_and_cancel - Runti...23513ERROR nixbot/tests/test_recovery.py::test_interrupted_effects_sweep_spares_live_effects23514ERROR nixbot/tests/test_control.py::test_pr_author_can_control_own_pr - Runti...23515ERROR nixbot/tests/test_db.py::test_failed_status_store_component - RuntimeEr...23516ERROR nixbot/tests/test_web.py::test_html_error_pages - RuntimeError: postgre...23517ERROR nixbot/tests/test_control.py::test_repo_writer_can_control_without_admin_or_authorship23518ERROR nixbot/tests/test_web.py::test_api_strips_ansi_from_errors - RuntimeErr...23519ERROR nixbot/tests/test_db.py::test_failed_build_cache_component - RuntimeErr...23520ERROR nixbot/tests/test_control.py::test_approve_pr_requires_writer_not_author23521ERROR nixbot/tests/test_web.py::test_homepage - RuntimeError: postgres did no...23522ERROR nixbot/tests/test_control.py::test_cancel_all_requires_admin - RuntimeE...23523ERROR nixbot/tests/test_web.py::test_project_page_with_filters - RuntimeError...23524ERROR nixbot/tests/test_db.py::test_get_or_create_build_concurrent_no_duplicates23525ERROR nixbot/tests/test_web.py::test_status_badge_urls - RuntimeError: postgr...23526ERROR nixbot/tests/test_control.py::test_cancel_all_cancels_pending_and_running_builds23527ERROR nixbot/tests/test_web.py::test_all_digit_branch_is_filterable - Runtime...23528ERROR nixbot/tests/test_db.py::test_commit_eval_result_atomic - RuntimeError:...23529ERROR nixbot/tests/test_control.py::test_cancel_all_button_admin_only - Runti...23530ERROR nixbot/tests/test_web.py::test_build_page - RuntimeError: postgres did ...23531ERROR nixbot/tests/test_control.py::test_csrf_cross_origin_rejected - Runtime...23532ERROR nixbot/tests/test_db.py::test_cancelled_build_not_reused - RuntimeError...23533ERROR nixbot/tests/test_web.py::test_attribute_rows_fragment_paginates - Runt...23534ERROR nixbot/tests/test_control.py::test_restart_single_attribute - RuntimeEr...23535ERROR nixbot/tests/test_web.py::test_build_page_shows_eval_warning_groups - R...23536ERROR nixbot/tests/test_control.py::test_restart_unknown_attribute_is_404 - R...23537ERROR nixbot/tests/test_db.py::test_reuse_backfills_pr_fields - RuntimeError:...23538ERROR nixbot/tests/test_control.py::test_restart_attribute_with_special_chars_redirects_encoded23539ERROR nixbot/tests/test_web.py::test_build_page_shows_per_attribute_eval_warnings23540ERROR nixbot/tests/test_db.py::test_reuse_by_other_pr_clears_both_identity_fields23541ERROR nixbot/tests/test_web.py::test_build_page_renders_ansi_in_error - Runti...23542ERROR nixbot/tests/test_web.py::test_running_build_shows_progress - RuntimeEr...23543ERROR nixbot/tests/test_db.py::test_branch_push_takes_over_reused_pr_build - ...23544ERROR nixbot/tests/test_web.py::test_build_page_live_markers - RuntimeError: ...23545ERROR nixbot/tests/test_cli.py::test_log_follow_finished_attr_falls_back_to_stored_log23546ERROR nixbot/tests/test_web.py::test_attribute_history - RuntimeError: postgr...23547ERROR nixbot/tests/test_db.py::test_pr_does_not_capture_branch_push_build - R...23548ERROR nixbot/tests/test_control.py::test_admin_project_toggle - RuntimeError:...23549ERROR nixbot/tests/test_deliver.py::test_match_skip_and_run - RuntimeError: p...23550ERROR nixbot/tests/test_control.py::test_toggle_activates_newly_enabled_project23551ERROR nixbot/tests/test_cli.py::test_log_effect_by_name_and_id - RuntimeError...23552ERROR nixbot/tests/test_web.py::test_overview_ignores_pr_branches - RuntimeEr...23553ERROR nixbot/tests/test_cli.py::test_log_effect_is_not_shadowed_by_attributes23554ERROR nixbot/tests/test_control.py::test_run_schedule - RuntimeError: postgre...23555ERROR nixbot/tests/test_db.py::test_complete_attribute_preserves_eval_outputs23556ERROR nixbot/tests/test_web.py::test_pending_build_shows_eval_blocker - Runti...23557ERROR nixbot/tests/test_deliver.py::test_permission_denied_records_reason - R...23558ERROR nixbot/tests/test_control.py::test_schedules_are_listed_on_the_effects_page23559ERROR nixbot/tests/test_web.py::test_project_filter_escapes_like_wildcards - ...23560ERROR nixbot/tests/test_deliver.py::test_modified_files_gate - RuntimeError: ...23561ERROR nixbot/tests/test_db.py::test_complete_attribute_marks_substituted_as_cached23562ERROR nixbot/tests/test_control.py::test_repo_refresh - RuntimeError: postgre...23563ERROR nixbot/tests/test_web.py::test_page_out_of_range_does_not_error - Runti...23564ERROR nixbot/tests/test_deliver.py::test_forge_outage_is_retried - RuntimeErr...23565ERROR nixbot/tests/test_service.py::test_scheduled_worktree_id_distinct_per_effect23566ERROR nixbot/tests/test_control.py::test_api_enable_disable - RuntimeError: p...23567ERROR nixbot/tests/test_deliver.py::test_forge_outage_gives_up - RuntimeError...23568ERROR nixbot/tests/test_forge.py::test_project_store_sync_and_legacy_import23569ERROR nixbot/tests/test_deliver.py::test_lock_shared_with_push_effect_and_supersession23570ERROR nixbot/tests/test_web.py::test_activity_page - RuntimeError: postgres d...23571ERROR nixbot/tests/test_control.py::test_api_restart_and_cancel - RuntimeErro...23572ERROR nixbot/tests/test_visibility.py::test_anonymous_sees_public_only - Runt...23573ERROR nixbot/tests/test_deliver.py::test_checkout_is_pr_head_without_token - ...23574ERROR nixbot/tests/test_upload.py::test_chunk_args_splits_on_byte_limit - Run...23575ERROR nixbot/tests/test_schedules.py::test_replace_schedules_preserves_last_run_for_unchanged_spec23576ERROR nixbot/tests/test_db.py::test_complete_attribute_replaces_log_metadata23577ERROR nixbot/tests/test_service.py::test_scheduled_worktree_id_sanitizes_traversal23578ERROR nixbot/tests/test_web.py::test_activity_no_sentinel_on_exact_page - Run...23579ERROR nixbot/tests/test_db_fuzz.py::test_concurrent_queries_do_not_deadlock[0]23580ERROR nixbot/tests/test_visibility.py::test_unauthorized_user_sees_public_only23581ERROR nixbot/tests/test_orchestrator.py::test_full_lifecycle - RuntimeError: ...23582ERROR nixbot/tests/test_deliver.py::test_build_success_enqueues_delivery - Ru...23583ERROR nixbot/tests/test_control.py::test_api_token_lifecycle - RuntimeError: ...23584ERROR nixbot/tests/test_schedules.py::test_concurrent_replace_schedules_do_not_collide23585ERROR nixbot/tests/test_upload.py::test_parse_path_info_both_formats - Runtim...23586ERROR nixbot/tests/test_web.py::test_activity_rows_fragment_pagination - Runt...23587ERROR nixbot/tests/test_db_fuzz.py::test_concurrent_queries_do_not_deadlock[1]23588ERROR nixbot/tests/test_deliver.py::test_comment_and_close_webhooks_deliver23589ERROR nixbot/tests/test_forge.py::test_legacy_import_runs_despite_pull_based_rows23590ERROR nixbot/tests/test_service.py::test_resolve_credential_path - RuntimeErr...23591ERROR nixbot/tests/test_visibility.py::test_authorized_user_sees_private - Ru...23592ERROR nixbot/tests/test_db.py::test_record_attributes_persists_pending_rows_with_outputs23593ERROR nixbot/tests/test_deliver.py::test_close_after_merge_push_reused_build23594ERROR nixbot/tests/test_control.py::test_expired_api_tokens_pruned - RuntimeE...23595ERROR nixbot/tests/test_db_fuzz.py::test_concurrent_queries_do_not_deadlock[2]23596ERROR nixbot/tests/test_web.py::test_project_rows_fragment_filters - RuntimeE...23597ERROR nixbot/tests/test_orchestrator.py::test_failure_aggregation - RuntimeEr...23598ERROR nixbot/tests/test_schedules.py::test_replace_schedules_tolerates_duplicate_effect_names23599ERROR nixbot/tests/test_deliver.py::test_build_finished_transitions - Runtime...23600ERROR nixbot/tests/test_upload.py::test_final_upload_reports_and_clears_queue23601ERROR nixbot/tests/test_visibility.py::test_admin_sees_everything - RuntimeEr...23602ERROR nixbot/tests/test_control.py::test_token_creation_with_expiry - Runtime...23603ERROR nixbot/tests/test_deliver.py::test_command_while_running_gets_notice - ...23604ERROR nixbot/tests/test_forge.py::test_legacy_import_scopes_topics_per_forge23605ERROR nixbot/tests/test_db.py::test_mark_attribute_building_does_not_resurrect_cancelled_rows23606ERROR nixbot/tests/test_web.py::test_metrics_are_gauges - RuntimeError: postg...23607ERROR nixbot/tests/test_service.py::test_build_service_accepts_asyncpg_dsn - ...23608ERROR nixbot/tests/test_deliver.py::test_other_command_does_not_supersede - R...23609ERROR nixbot/tests/test_db_fuzz.py::test_concurrent_queries_do_not_deadlock[3]23610ERROR nixbot/tests/test_visibility.py::test_admin_sees_disabled_repos_without_search23611ERROR nixbot/tests/test_cli_api.py::test_repos_and_builds - RuntimeError: pos...23612ERROR nixbot/tests/test_upload.py::test_intermediates_batch_with_final_and_drop_invalid23613ERROR nixbot/tests/test_control.py::test_proxy_user_can_manage_api_tokens - R...23614ERROR nixbot/tests/test_deliver.py::test_label_change_redelivers_pull_request23615ERROR nixbot/tests/test_schedules.py::test_store_roundtrip_and_due - RuntimeE...23616ERROR nixbot/tests/test_orchestrator.py::test_tree_hash_reuse - RuntimeError:...23617ERROR nixbot/tests/test_cli_api.py::test_finished_attrs_cursor - RuntimeError...23618ERROR nixbot/tests/test_cli_api.py::test_control_requires_token - RuntimeErro...23619ERROR nixbot/tests/test_web.py::test_metrics_are_cached - RuntimeError: postg...23620ERROR nixbot/tests/test_cli_api.py::test_enable_disable - RuntimeError: postg...23621ERROR nixbot/tests/test_deliver.py::test_build_outcome_and_restart_leave_event_history23622ERROR nixbot/tests/test_visibility.py::test_non_admin_does_not_see_disabled_repos23623ERROR nixbot/tests/test_forge.py::test_prune_missing_disabled_projects - Runt...23624ERROR nixbot/tests/test_cli_api.py::test_log_toc_and_text - RuntimeError: pos...23625ERROR nixbot/tests/test_service.py::test_visibility_fetcher_and_cache_ttl_wired23626ERROR nixbot/tests/test_control.py::test_bearer_token_cannot_manage_api_tokens23627ERROR nixbot/tests/test_db_fuzz.py::test_concurrent_queries_do_not_deadlock[4]23628ERROR nixbot/tests/test_web.py::test_static_urls_carry_content_version - Runt...23629ERROR nixbot/tests/test_schedules.py::test_due_effects_window_and_bad_spec - ...23630ERROR nixbot/tests/test_db.py::test_mark_attribute_building_sets_status_and_started_at23631ERROR nixbot/tests/test_cli_api.py::test_effect_run_text_and_stream - Runtime...23632ERROR nixbot/tests/test_upload.py::test_stdin_mode - RuntimeError: postgres d...23633ERROR nixbot/tests/test_visibility.py::test_api_token_sees_private - RuntimeE...23634ERROR nixbot/tests/test_work_queue.py::test_enqueue_dedupes_pending - Runtime...23635ERROR nixbot/tests/test_orchestrator.py::test_eval_reuse_from_cancelled_build23636ERROR nixbot/tests/test_control.py::test_api_token_controls_build - RuntimeEr...23637ERROR nixbot/tests/test_work_queue.py::test_claim_serializes_per_key - Runtim...23638ERROR nixbot/tests/test_deliver.py::test_restart_event_effect_reruns_with_stored_payload23639ERROR nixbot/tests/test_db.py::test_complete_attribute_if_unfinished_skips_terminal_rows23640ERROR nixbot/tests/test_web.py::test_legacy_project_urls_redirect - RuntimeEr...23641ERROR nixbot/tests/test_forge.py::test_project_store_sync_skips_unchanged_rows23642ERROR nixbot/tests/test_visibility.py::test_admin_api_token_sees_private - Ru...23643ERROR nixbot/tests/test_web.py::test_private_repo_public_badge_bypasses_session_visibility23644ERROR nixbot/tests/test_service.py::test_aclose_cancels_in_flight_tasks - Run...23645ERROR nixbot/tests/test_db_fuzz.py::test_concurrent_queries_do_not_deadlock[5]23646ERROR nixbot/tests/test_schedules.py::test_run_recording_and_overview - Runti...23647ERROR nixbot/tests/test_upload.py::test_pending_paths_survive_restart - Runti...23648ERROR nixbot/tests/test_work_queue.py::test_settle_interrupted_requeues - Run...23649ERROR nixbot/tests/test_orchestrator.py::test_eval_reuse_skipped_when_drvs_gone23650ERROR nixbot/tests/test_deliver.py::test_listing_failure_recorded_on_build - ...23651ERROR nixbot/tests/test_forge.py::test_gitea_hook_registration - RuntimeError...23652ERROR nixbot/tests/test_visibility.py::test_forge_repo_admins_can_toggle_their_repos23653ERROR nixbot/tests/test_web.py::test_legacy_redirect_hides_invisible_projects23654ERROR nixbot/tests/test_upload.py::test_uploader_factory_picks_stream - Runti...23655ERROR nixbot/tests/test_db.py::test_failed_build_cache_scoped_per_project - R...23656ERROR nixbot/tests/test_service.py::test_pr_close_discards_queued_changes - R...23657ERROR nixbot/tests/test_control.py::test_build_service_composition - RuntimeE...23658ERROR nixbot/tests/test_db_fuzz.py::test_concurrent_queries_do_not_deadlock[6]23659ERROR nixbot/tests/test_orchestrator.py::test_main_push_promotes_reused_pr_build23660ERROR nixbot/tests/test_web.py::test_legacy_redirect_404s_on_ambiguous_owner_name23661ERROR nixbot/tests/test_visibility.py::test_forge_repo_writers_can_control_their_repos23662ERROR nixbot/tests/test_deliver.py::test_tag_runs_onpush_effects_with_tag - R...23663ERROR nixbot/tests/test_forge.py::test_gitlab_heads_carry_target_branch_base23664ERROR nixbot/tests/test_upload.py::test_stream_reports_per_path_and_clears_queue23665ERROR nixbot/tests/test_control.py::test_restart_removes_stale_logs - Runtime...23666ERROR nixbot/tests/test_db.py::test_eval_stats_lifecycle - RuntimeError: post...23667ERROR nixbot/tests/test_service.py::test_build_branches_gates_branch_pushes23668ERROR nixbot/tests/test_visibility.py::test_fetch_errors_are_not_cached - Run...23669ERROR nixbot/tests/test_web.py::test_health_and_static - RuntimeError: postgr...23670ERROR nixbot/tests/test_db_fuzz.py::test_concurrent_queries_do_not_deadlock[7]23671ERROR nixbot/tests/test_orchestrator.py::test_merge_conflict_fails_build - Ru...23672ERROR nixbot/tests/test_deliver.py::test_tag_waits_for_a_running_release - Ru...23673ERROR nixbot/tests/test_forge.py::test_gitea_heads_encode_slashed_default_branch23674ERROR nixbot/tests/test_visibility.py::test_access_cache_used - RuntimeError:...23675ERROR nixbot/tests/test_upload.py::test_stream_error_is_reported_with_message23676ERROR nixbot/tests/test_control.py::test_restart_clears_failed_cache - Runtim...23677ERROR nixbot/tests/test_web.py::test_404s - RuntimeError: postgres did not start23678ERROR nixbot/tests/test_service.py::test_tag_push_builds_peeled_commit - Runt...23679ERROR nixbot/tests/test_control.py::test_webhook_setup_shown_to_admin_only - ...23680ERROR nixbot/tests/test_deliver.py::test_tag_listing_failure_recorded_apart_from_build_effects23681ERROR nixbot/tests/test_visibility.py::test_metrics_unauthenticated_no_private_names23682ERROR nixbot/tests/test_orchestrator.py::test_build_reuse_clears_pr_author_in_other_context23683ERROR nixbot/tests/test_upload.py::test_stream_child_crash_refeeds_pending - ...23684ERROR nixbot/tests/test_forge.py::test_reconcile_unbuilt_heads - RuntimeError...23685ERROR nixbot/tests/test_visibility.py::test_configured_viewers_see_private - ...23686ERROR nixbot/tests/test_control.py::test_webhook_secret_regeneration - Runtim...23687ERROR nixbot/tests/test_service.py::test_tag_push_waits_for_a_branch_to_build_its_commit23688ERROR nixbot/tests/test_web.py::test_log_viewer_and_raw - RuntimeError: postg...23689ERROR nixbot/tests/test_upload.py::test_failure_reports_retries_and_gives_up23690ERROR nixbot/tests/test_orchestrator.py::test_effects_started_flag - RuntimeE...23691ERROR nixbot/tests/test_forge.py::test_gitea_watermark_stops_pagination - Run...23692ERROR nixbot/tests/test_control.py::test_retry_after_parsing - RuntimeError: ...23693ERROR nixbot/tests/test_visibility.py::test_api_token_inherits_login_groups23694ERROR nixbot/tests/test_web.py::test_structured_log_endpoints - RuntimeError:...23695ERROR nixbot/tests/test_service.py::test_pr_approval_gate - RuntimeError: pos...23696ERROR nixbot/tests/test_visibility.py::test_logout_invalidates_access_cache23697ERROR nixbot/tests/test_control.py::test_work_retry_delay_honors_retry_after23698ERROR nixbot/tests/test_web.py::test_structured_log_window_caps_huge_derivation23699ERROR nixbot/tests/test_orchestrator.py::test_aggregation_generation_monotonic23700ERROR nixbot/tests/test_forge.py::test_gitlab_heads_filter_updated_after - Ru...23701ERROR nixbot/tests/test_web.py::test_attr_named_dot_txt_not_shadowed_by_raw_route23702ERROR nixbot/tests/test_service.py::test_pr_approval_disabled_by_default - Ru...23703ERROR nixbot/tests/test_control.py::test_report_retry - RuntimeError: postgre...23704ERROR nixbot/tests/test_orchestrator.py::test_internal_error_not_recorded_in_failed_build_cache23705ERROR nixbot/tests/test_web.py::test_attr_names_with_special_characters - Run...23706ERROR nixbot/tests/test_forge.py::test_reconcile_watermark_store - RuntimeErr...23707ERROR nixbot/tests/test_service.py::test_restart_gitlab_mr_build_fetches_mr_refs23708ERROR nixbot/tests/test_control.py::test_effect_item_setup_failure_settles_row23709ERROR nixbot/tests/test_web.py::test_log_viewer_waits_for_queued_attribute - ...23710ERROR nixbot/tests/test_orchestrator.py::test_log_path_attribute_name_sanitized23711ERROR nixbot/tests/test_web.py::test_log_viewer_unavailable_for_logless_status23712ERROR nixbot/tests/test_service.py::test_restart_eval_failed_build_reevaluates23713ERROR nixbot/tests/test_forge.py::test_register_repo_hook_without_admin_warns23714ERROR nixbot/tests/test_control.py::test_restart_attribute_posts_pending - Ru...23715ERROR nixbot/tests/test_web.py::test_eval_error_served_like_build_log - Runti...23716ERROR nixbot/tests/test_service.py::test_restart_clears_stale_error_and_warnings23717ERROR nixbot/tests/test_orchestrator.py::test_cancel_interrupts_evaluation - ...23718ERROR nixbot/tests/test_web.py::test_api_projects_and_builds - RuntimeError: ...23719ERROR nixbot/tests/test_forge.py::test_gitlab_hook_registration - RuntimeErro...23720ERROR nixbot/tests/test_control.py::test_recovery_reports_interrupted_effects23721ERROR nixbot/tests/test_web.py::test_build_rows_link_refs - RuntimeError: pos...23722ERROR nixbot/tests/test_service.py::test_restart_unknown_attribute_is_a_noop23723ERROR nixbot/tests/test_web.py::test_attributes_sort_building_before_pending23724ERROR nixbot/tests/test_control.py::test_work_dispatch - RuntimeError: postgr...23725ERROR nixbot/tests/test_orchestrator.py::test_build_waiting_for_eval_slot_stays_pending23726ERROR nixbot/tests/test_web.py::test_queue_sorts_active_before_pending - Runt...23727ERROR nixbot/tests/test_service.py::test_restart_failed_eval_attribute_reevaluates23728ERROR nixbot/tests/test_orchestrator.py::test_pending_attribute_rows_recorded_for_crash_recovery23729ERROR nixbot/tests/test_control.py::test_restart_resets_effects - RuntimeErro...23730ERROR nixbot/tests/test_web.py::test_queue_position_is_global_and_skips_running23731ERROR nixbot/tests/test_service.py::test_interrupted_reeval_keeps_attribute_rows23732ERROR nixbot/tests/test_control.py::test_effects_restart_route - RuntimeError...23733ERROR nixbot/tests/test_forge.py::test_register_repo_hook_500_with_403_in_body_raises23734ERROR nixbot/tests/test_web.py::test_openapi_docs - RuntimeError: postgres di...23735ERROR nixbot/tests/test_orchestrator.py::test_eval_warnings_null_when_empty23736ERROR nixbot/tests/test_control.py::test_single_effect_restart_route - Runtim...23737ERROR nixbot/tests/test_web.py::test_structured_live_stream - RuntimeError: p...23738ERROR nixbot/tests/test_forge.py::test_gitlab_register_repo_hook_status_classification23739ERROR nixbot/tests/test_control.py::test_effect_cancel_route - RuntimeError: ...23740ERROR nixbot/tests/test_web.py::test_drv_raw_serves_running_attribute - Runti...23741ERROR nixbot/tests/test_orchestrator.py::test_rerun_flips_stale_red_eval_status23742ERROR nixbot/tests/test_control.py::test_webhook_panel_is_forge_aware - Runti...23743ERROR nixbot/tests/test_web.py::test_log_sse_stream_caps_history_backlog - Ru...23744ERROR nixbot/tests/test_forge.py::test_gitea_legacy_hook_delete_failure_warns23745ERROR nixbot/tests/test_orchestrator.py::test_recovery_rerun_failures_not_cached23746ERROR nixbot/tests/test_service.py::test_restart_cancelled_build_reschedules_attributes23747ERROR nixbot/tests/test_control.py::test_api_attr_and_effects_control - Runti...23748ERROR nixbot/tests/test_web.py::test_log_sse_stream_neutralizes_carriage_returns23749ERROR nixbot/tests/test_forge.py::test_sync_tolerates_in_batch_duplicates - R...23750ERROR nixbot/tests/test_web.py::test_api_builds_commit_filter - RuntimeError:...23751ERROR nixbot/tests/test_orchestrator.py::test_gitlab_mr_fetches_merge_request_refs23752ERROR nixbot/tests/test_service.py::test_restart_cancelled_mid_eval_reevaluates23753ERROR nixbot/tests/test_web.py::test_log_tail_param - RuntimeError: postgres ...23754ERROR nixbot/tests/test_web.py::test_api_build_failures - RuntimeError: postg...23755ERROR nixbot/tests/test_orchestrator.py::test_rerun_fetches_forge_change_request_refs[github]23756ERROR nixbot/tests/test_service.py::test_restart_while_unwinding_waits_then_runs23757ERROR nixbot/tests/test_web.py::test_api_build_failures_rejects_non_positive_tail23758ERROR nixbot/tests/test_orchestrator.py::test_rerun_fetches_forge_change_request_refs[gitlab]23759ERROR nixbot/tests/test_service.py::test_restart_attribute_while_build_running23760ERROR nixbot/tests/test_web.py::test_llms_txt - RuntimeError: postgres did no...23761ERROR nixbot/tests/test_web.py::test_event_broker_pushes_status_changes - Run...23762ERROR nixbot/tests/test_orchestrator.py::test_cancelled_build_reuse_rebuilds23763ERROR nixbot/tests/test_service.py::test_cancel_not_running_posts_forge_status23764ERROR nixbot/tests/test_web.py::test_events_stream_coalesces_burst - RuntimeE...23765ERROR nixbot/tests/test_web.py::test_events_stream_refreshes_visibility - Run...23766ERROR nixbot/tests/test_orchestrator.py::test_inflight_share_fans_out_final_status23767ERROR nixbot/tests/test_service.py::test_check_rerequested_dispatch - Runtime...23768ERROR nixbot/tests/test_web.py::test_attribute_search - RuntimeError: postgre...23769ERROR nixbot/tests/test_web.py::test_build_page_shows_effects - RuntimeError:...23770ERROR nixbot/tests/test_orchestrator.py::test_stale_event_does_not_supersede_newer_build23771ERROR nixbot/tests/test_service.py::test_cancel_not_running_settles_attribute_rows23772ERROR nixbot/tests/test_web.py::test_build_page_shows_event_effects - Runtime...23773ERROR nixbot/tests/test_orchestrator.py::test_eval_failure_cleans_cancel_events23774ERROR nixbot/tests/test_web.py::test_build_page_groups_dependency_checks_apart23775ERROR nixbot/tests/test_service.py::test_cancel_attribute_not_running_reaggregates_build23776ERROR nixbot/tests/test_web.py::test_effect_log_raw_text - RuntimeError: post...23777ERROR nixbot/tests/test_orchestrator.py::test_eval_settings_wired - RuntimeEr...23778ERROR nixbot/tests/test_web.py::test_effect_log_viewer_status_icon - RuntimeE...23779ERROR nixbot/tests/test_service.py::test_pull_based_projects_synced_and_buildable23780ERROR nixbot/tests/test_web.py::test_effect_changes_notify_build_events - Run...23781ERROR nixbot/tests/test_orchestrator.py::test_eval_netrc_withheld_from_pr_with_instance_wide_creds23782ERROR nixbot/tests/test_web.py::test_effects_state_api - RuntimeError: postgr...23783ERROR nixbot/tests/test_service.py::test_topic_does_not_hard_filter_discovery23784ERROR nixbot/tests/test_web.py::test_pr_comment_api - RuntimeError: postgres ...23785ERROR nixbot/tests/test_orchestrator.py::test_eval_gcroots_dir_removed_after_build23786ERROR nixbot/tests/test_service.py::test_startup_reevaluates_interrupted_eval23787ERROR nixbot/tests/test_orchestrator.py::test_effects_run_after_default_branch_success23788ERROR nixbot/tests/test_service.py::test_rerun_of_interrupted_eval_reevaluates23789ERROR nixbot/tests/test_web.py::test_workload_identity_api - RuntimeError: po...23790ERROR nixbot/tests/test_orchestrator.py::test_when_changed_reuses_the_last_success23791ERROR nixbot/tests/test_service.py::test_rerun_resumes_building_rows_and_keeps_finished23792ERROR nixbot/tests/test_web.py::test_logout_revokes_session_cookie - RuntimeE...23793ERROR nixbot/tests/test_orchestrator.py::test_when_changed_decides_when_the_lock_is_free23794ERROR nixbot/tests/test_web.py::test_gitlab_nested_group_routes - RuntimeErro...23795ERROR nixbot/tests/test_service.py::test_rerun_reevaluates_when_drv_paths_were_garbage_collected23796ERROR nixbot/tests/test_web.py::test_scheduled_run_viewer_renders_ansi - Runt...23797ERROR nixbot/tests/test_orchestrator.py::test_when_changed_ignores_failures_and_follows_a_restart23798ERROR nixbot/tests/test_web.py::test_scheduled_run_viewer_cross_project_40423799ERROR nixbot/tests/test_service.py::test_reeval_failure_marks_build_failed - ...23800ERROR nixbot/tests/test_orchestrator.py::test_pr_worktree_config_cannot_grant_effects23801ERROR nixbot/tests/test_web.py::test_scheduled_run_log_unavailable_placeholder23802ERROR nixbot/tests/test_web.py::test_scheduled_run_viewer_waiting_before_log23803ERROR nixbot/tests/test_service.py::test_gitlab_discovery_and_hook_registration23804ERROR nixbot/tests/test_orchestrator.py::test_rerun_effects_runs_effects_again23805ERROR nixbot/tests/test_web.py::test_project_tabs_link_builds_and_effects - R...23806ERROR nixbot/tests/test_orchestrator.py::test_rerun_effects_cancels_hung_effect23807ERROR nixbot/tests/test_web.py::test_failing_badge_counts_effects_whose_latest_run_failed23808ERROR nixbot/tests/test_service.py::test_health_serves_while_startup_blocks23809ERROR nixbot/tests/test_web.py::test_old_schedule_history_url_redirects - Run...23810ERROR nixbot/tests/test_orchestrator.py::test_cancel_hung_effect - RuntimeErr...23811ERROR nixbot/tests/test_web.py::test_project_effects_filter_and_paginate - Ru...23812ERROR nixbot/tests/test_web.py::test_scheduled_run_stream_replays_history - R...23813ERROR nixbot/tests/test_orchestrator.py::test_rerun_single_effect - RuntimeEr...23814ERROR nixbot/tests/test_web.py::test_scheduled_run_notify_build_events - Runt...23815ERROR nixbot/tests/test_web.py::test_api_log_toc_and_text - RuntimeError: pos...23816ERROR nixbot/tests/test_orchestrator.py::test_recovery_rerun_runs_effects - R...23817ERROR nixbot/tests/test_web.py::test_api_log_toc_flat_log_fallback - RuntimeE...23818ERROR nixbot/tests/test_orchestrator.py::test_unsupported_system_attr_does_not_block_aggregation23819ERROR nixbot/tests/test_web.py::test_api_log_stream_json - RuntimeError: post...23820ERROR nixbot/tests/test_orchestrator.py::test_linked_context_reported_on_eval_failure23821ERROR nixbot/tests/test_web.py::test_build_eval_stats_surface - RuntimeError:...23822ERROR nixbot/tests/test_orchestrator.py::test_eval_failure_settles_streamed_attributes23823ERROR nixbot/tests/test_orchestrator.py::test_effect_rows_roundtrip - Runtime...23824ERROR nixbot/tests/test_orchestrator.py::test_pending_effects_replace_skipped_rows23825ERROR nixbot/tests/test_orchestrator.py::test_effect_items_resume_only_pending23826ERROR nixbot/tests/test_orchestrator.py::test_effect_crash_settles_the_row - ...23827ERROR nixbot/tests/test_orchestrator.py::test_concurrent_effects_use_independent_worktrees23828ERROR nixbot/tests/test_orchestrator.py::test_locked_effect_gets_shared_dedup_key23829ERROR nixbot/tests/test_orchestrator.py::test_effect_item_not_claimable_until_dep_settles23830ERROR nixbot/tests/test_orchestrator.py::test_effect_dep_failure_skips_dependent23831ERROR nixbot/tests/test_orchestrator.py::test_lock_serializes_builds_without_interleaving23832ERROR nixbot/tests/test_orchestrator.py::test_effect_dep_cycle_fails_discovery23833ERROR nixbot/tests/test_orchestrator.py::test_failed_effect_reports_failure_status23834ERROR nixbot/tests/test_orchestrator.py::test_post_process_error_does_not_wedge_build23835ERROR nixbot/tests/test_orchestrator.py::test_unexpected_eval_path_error_settles_build23836ERROR nixbot/tests/test_orchestrator.py::test_reuse_empty_succeeded_build_posts_eval_success23837ERROR nixbot/tests/test_orchestrator.py::test_stale_event_reusing_old_build_does_not_cancel_newer23838ERROR nixbot/tests/test_orchestrator.py::test_reuse_for_default_branch_push_runs_effects23839ERROR nixbot/tests/test_orchestrator.py::test_tag_reusing_deployed_build_delivers_its_own_effects23840ERROR nixbot/tests/test_orchestrator.py::test_tag_attached_to_in_flight_build_delivers_on_success23841ERROR nixbot/tests/test_orchestrator.py::test_restart_of_gated_build_settles_effect_rows23842ERROR nixbot/tests/test_orchestrator.py::test_restart_build_drops_queued_effect_items23843ERROR nixbot/tests/test_orchestrator.py::test_restart_effects_after_pr_attach_keeps_effects_ref23844ERROR nixbot/tests/test_orchestrator.py::test_gated_restart_then_allowed_reuse_deploys23845ERROR nixbot/tests/test_orchestrator.py::test_rerun_single_effect_takes_pending_dependents23846ERROR nixbot/tests/test_orchestrator.py::test_reuse_replays_effect_statuses_to_new_commit23847ERROR nixbot/tests/test_orchestrator.py::test_attach_to_already_terminal_build_replays_status23848ERROR nixbot/tests/test_orchestrator.py::test_cancel_during_eval_resolves_linked_eval_contexts23849ERROR nixbot/tests/test_orchestrator.py::test_effect_log_does_not_collide_with_attribute_log23850ERROR nixbot/tests/test_orchestrator.py::test_post_process_paths_are_forge_scoped23851ERROR nixbot/tests/test_orchestrator.py::test_effects_phase_error_keeps_succeeded_build23852ERROR nixbot/tests/test_orchestrator.py::test_reuse_post_process_error_still_reports_status23853ERROR nixbot/tests/test_orchestrator.py::test_reuse_with_missing_output_still_post_processes23854================= 477 passed, 29 skipped, 364 errors in 41.77s =================