nixbot

builds

failed python3.14-nixbot-tests checks.aarch64-darwin.nixbot-tests · build #447 · 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/nbawfj8rlmd2xvglnp1ab5qqsaba2bhy-nixbot18source root is nixbot19setting SOURCE_DATE_EPOCH to timestamp 315619200 of file "nixbot/pyproject.toml"
configurePhase
20no configure script, doing nothing
buildPhase
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 pypaBuildPhase
pythonRuntimeDepsCheckHook
29Executing pythonRuntimeDepsCheck30Checking runtime dependencies for nixbot-0.0.1-py3-none-any.whl31Finished executing pythonRuntimeDepsCheck
installPhase
32Executing pypaInstallPhase33Successfully installed nixbot-0.0.1-py3-none-any.whl34Finished executing pypaInstallPhase
pythonOutputDistPhase
35Executing pythonOutputDistPhase36Finished executing pythonOutputDistPhase
fixupPhase
37checking for references to /private/var/tb/3/scratch/ad7b25bbacc94655/build/ in /nix/store/znjnzfd2hfd0imclsps3nxcyazb4w1a8-python3.14-nixbot-tests...38patching script interpreter paths in /nix/store/znjnzfd2hfd0imclsps3nxcyazb4w1a8-python3.14-nixbot-tests39stripping (with command strip and flags -S) in /nix/store/znjnzfd2hfd0imclsps3nxcyazb4w1a8-python3.14-nixbot-tests/lib /nix/store/znjnzfd2hfd0imclsps3nxcyazb4w1a8-python3.14-nixbot-tests/bin40checking for references to /private/var/tb/3/scratch/ad7b25bbacc94655/build/ in /nix/store/8l0s00rbjxi4xhbz1nhs3lj4phcaahh3-python3.14-nixbot-tests-dist...41patching script interpreter paths in /nix/store/8l0s00rbjxi4xhbz1nhs3lj4phcaahh3-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/znjnzfd2hfd0imclsps3nxcyazb4w1a8-python3.14-nixbot-tests/bin/nixbot'...44Executing pythonRemoveTestsDir45Finished executing pythonRemoveTestsDir
installCheckPhase
46no Makefile or custom installCheckPhase, doing nothing
pythonImportsCheckPhase
47Executing pythonImportsCheckPhase
pytestCheckPhase
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/3/scratch/ad7b25bbacc94655/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 [862 items]112113..............sss.ss..................................s................. [ 8%]114s........ssssss........s.sssssss........................................ [ 16%]115........................................................................ [ 25%]116........................................................................ [ 33%]117...........ssss.............................................s........... [ 41%]118........................................................................ [ 50%]119..............................sEEEEEEEEEEEEEEEEEEEEE...EEEEEEEEE.EEEEEEE [ 58%]120EEEEEEEEEEE.EEEEE.EE....sEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE.EEEEEEEEEEEEEEEE [ 66%]121EEEEEE.EEEEEEEEE.EEEEE.E..EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE [ 75%]122EEEEEEEEEEEEEEEEEEEEEEEEEEEEE..EEEEEEEEEEEE.EEEEEEEs..E....EEEEEE.EEEEE. [ 83%]123EEEEEEE..EEE........EEEEEEEEEEE.EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE [ 91%]124EE..EEEEE.EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE [100%]125==================================== ERRORS ====================================126_______ ERROR at setup of test_scheduled_worktree_id_distinct_per_effect _______127[gw7] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14128129fixturedef = <FixtureDef argname='postgres_dsn' scope='module' baseid='nixbot/tests'>130request = <SubRequest 'postgres_dsn' for <Function test_scheduled_worktree_id_distinct_per_effect>>131132 @pytest.hookimpl(wrapper=True)133 def pytest_fixture_setup(fixturedef: FixtureDef, request) -> object | None:134 if (135 fixturedef.argname == "event_loop_policy"136 and fixturedef.func.__module__ != __name__137 ):138 warnings.warn(139 PytestDeprecationWarning(_EVENT_LOOP_POLICY_FIXTURE_DEPRECATION_WARNING),140 )141 asyncio_mode = _get_asyncio_mode(request.config)142 if not _is_asyncio_fixture_function(fixturedef.func):143 if asyncio_mode == Mode.STRICT:144 # Ignore async fixtures without explicit asyncio mark in strict mode145 # This applies to pytest_trio fixtures, for example146 return (yield)147 if not _is_coroutine_or_asyncgen(fixturedef.func):148> return (yield)149 ^^^^^150151/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:926: 152_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 153nixbot/tests/conftest.py:33: in postgres_dsn154 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:155 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^156/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__157 return next(self.gen)158 ^^^^^^^^^^^^^^159_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 160161tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...atch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw7'), _retention_count=3, _retention_policy='all')162dbname = 'service'163164 @contextlib.contextmanager165 def ephemeral_postgres(166 tmp_path_factory: pytest.TempPathFactory, dbname: str167 ) -> Iterator[str]:168 """Throwaway Postgres on a unix socket with migrations applied."""169 datadir = tmp_path_factory.mktemp("pgdata")170 sockdir = tmp_path_factory.mktemp("pgsock")171 subprocess.run( # noqa: S603172 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],173 check=True,174 capture_output=True,175 )176 proc = subprocess.Popen( # noqa: S603177 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],178 stdout=subprocess.DEVNULL,179 stderr=subprocess.DEVNULL,180 )181 try:182 deadline = time.monotonic() + 30183 while (184 subprocess.run( # noqa: S603185 ["pg_isready", "-h", str(sockdir), "-U", "test"],186 check=False,187 capture_output=True,188 ).returncode189 != 0190 ):191 # The socket appears before recovery finishes; createdb would192 # fail with "the database system is starting up".193 if time.monotonic() > deadline:194 msg = "postgres did not start"195> raise RuntimeError(msg)196E RuntimeError: postgres did not start197198nixbot/tests/support.py:319: RuntimeError199_______ ERROR at setup of test_scheduled_worktree_id_sanitizes_traversal _______200[gw7] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14201202request = <SubRequest 'postgres_dsn' for <Function test_scheduled_worktree_id_distinct_per_effect>>203tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...atch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw7'), _retention_count=3, _retention_policy='all')204205 @pytest.fixture(scope="module")206 def postgres_dsn(207 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory208 ) -> Iterator[str]:209 if shutil.which("initdb") is None:210 pytest.skip("postgresql not available")211 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")212> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:213 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^214215nixbot/tests/conftest.py:33: 216_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 217/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__218 return next(self.gen)219 ^^^^^^^^^^^^^^220_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 221222tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...atch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw7'), _retention_count=3, _retention_policy='all')223dbname = 'service'224225 @contextlib.contextmanager226 def ephemeral_postgres(227 tmp_path_factory: pytest.TempPathFactory, dbname: str228 ) -> Iterator[str]:229 """Throwaway Postgres on a unix socket with migrations applied."""230 datadir = tmp_path_factory.mktemp("pgdata")231 sockdir = tmp_path_factory.mktemp("pgsock")232 subprocess.run( # noqa: S603233 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],234 check=True,235 capture_output=True,236 )237 proc = subprocess.Popen( # noqa: S603238 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],239 stdout=subprocess.DEVNULL,240 stderr=subprocess.DEVNULL,241 )242 try:243 deadline = time.monotonic() + 30244 while (245 subprocess.run( # noqa: S603246 ["pg_isready", "-h", str(sockdir), "-U", "test"],247 check=False,248 capture_output=True,249 ).returncode250 != 0251 ):252 # The socket appears before recovery finishes; createdb would253 # fail with "the database system is starting up".254 if time.monotonic() > deadline:255 msg = "postgres did not start"256> raise RuntimeError(msg)257E RuntimeError: postgres did not start258259nixbot/tests/support.py:319: RuntimeError260________________ ERROR at setup of test_resolve_credential_path ________________261[gw7] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14262263request = <SubRequest 'postgres_dsn' for <Function test_scheduled_worktree_id_distinct_per_effect>>264tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...atch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw7'), _retention_count=3, _retention_policy='all')265266 @pytest.fixture(scope="module")267 def postgres_dsn(268 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory269 ) -> Iterator[str]:270 if shutil.which("initdb") is None:271 pytest.skip("postgresql not available")272 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")273> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:274 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^275276nixbot/tests/conftest.py:33: 277_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 278/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__279 return next(self.gen)280 ^^^^^^^^^^^^^^281_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 282283tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...atch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw7'), _retention_count=3, _retention_policy='all')284dbname = 'service'285286 @contextlib.contextmanager287 def ephemeral_postgres(288 tmp_path_factory: pytest.TempPathFactory, dbname: str289 ) -> Iterator[str]:290 """Throwaway Postgres on a unix socket with migrations applied."""291 datadir = tmp_path_factory.mktemp("pgdata")292 sockdir = tmp_path_factory.mktemp("pgsock")293 subprocess.run( # noqa: S603294 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],295 check=True,296 capture_output=True,297 )298 proc = subprocess.Popen( # noqa: S603299 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],300 stdout=subprocess.DEVNULL,301 stderr=subprocess.DEVNULL,302 )303 try:304 deadline = time.monotonic() + 30305 while (306 subprocess.run( # noqa: S603307 ["pg_isready", "-h", str(sockdir), "-U", "test"],308 check=False,309 capture_output=True,310 ).returncode311 != 0312 ):313 # The socket appears before recovery finishes; createdb would314 # fail with "the database system is starting up".315 if time.monotonic() > deadline:316 msg = "postgres did not start"317> raise RuntimeError(msg)318E RuntimeError: postgres did not start319320nixbot/tests/support.py:319: RuntimeError321___________ ERROR at setup of test_build_service_accepts_asyncpg_dsn ___________322[gw7] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14323324self = <Coroutine test_build_service_accepts_asyncpg_dsn>325326 def setup(self) -> None:327 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"328 if runner_fixture_id not in self.fixturenames:329 self.fixturenames.append(runner_fixture_id)330 # When loop factories are configured, resolve the loop factory331 # fixture early so that a factory variant change cascades cache332 # invalidation before any async fixture checks its cache.333 hook_caller = self.config.hook.pytest_asyncio_loop_factories334 if hook_caller.get_hookimpls():335 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)336> return super().setup()337 ^^^^^^^^^^^^^^^338339/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 340_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 341nixbot/tests/conftest.py:33: in postgres_dsn342 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:343 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^344/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__345 return next(self.gen)346 ^^^^^^^^^^^^^^347_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 348349tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...atch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw7'), _retention_count=3, _retention_policy='all')350dbname = 'service'351352 @contextlib.contextmanager353 def ephemeral_postgres(354 tmp_path_factory: pytest.TempPathFactory, dbname: str355 ) -> Iterator[str]:356 """Throwaway Postgres on a unix socket with migrations applied."""357 datadir = tmp_path_factory.mktemp("pgdata")358 sockdir = tmp_path_factory.mktemp("pgsock")359 subprocess.run( # noqa: S603360 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],361 check=True,362 capture_output=True,363 )364 proc = subprocess.Popen( # noqa: S603365 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],366 stdout=subprocess.DEVNULL,367 stderr=subprocess.DEVNULL,368 )369 try:370 deadline = time.monotonic() + 30371 while (372 subprocess.run( # noqa: S603373 ["pg_isready", "-h", str(sockdir), "-U", "test"],374 check=False,375 capture_output=True,376 ).returncode377 != 0378 ):379 # The socket appears before recovery finishes; createdb would380 # fail with "the database system is starting up".381 if time.monotonic() > deadline:382 msg = "postgres did not start"383> raise RuntimeError(msg)384E RuntimeError: postgres did not start385386nixbot/tests/support.py:319: RuntimeError387________ ERROR at setup of test_visibility_fetcher_and_cache_ttl_wired _________388[gw7] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14389390self = <Coroutine test_visibility_fetcher_and_cache_ttl_wired>391392 def setup(self) -> None:393 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"394 if runner_fixture_id not in self.fixturenames:395 self.fixturenames.append(runner_fixture_id)396 # When loop factories are configured, resolve the loop factory397 # fixture early so that a factory variant change cascades cache398 # invalidation before any async fixture checks its cache.399 hook_caller = self.config.hook.pytest_asyncio_loop_factories400 if hook_caller.get_hookimpls():401 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)402> return super().setup()403 ^^^^^^^^^^^^^^^404405/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 406_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 407nixbot/tests/conftest.py:33: in postgres_dsn408 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:409 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^410/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__411 return next(self.gen)412 ^^^^^^^^^^^^^^413_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 414415tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...atch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw7'), _retention_count=3, _retention_policy='all')416dbname = 'service'417418 @contextlib.contextmanager419 def ephemeral_postgres(420 tmp_path_factory: pytest.TempPathFactory, dbname: str421 ) -> Iterator[str]:422 """Throwaway Postgres on a unix socket with migrations applied."""423 datadir = tmp_path_factory.mktemp("pgdata")424 sockdir = tmp_path_factory.mktemp("pgsock")425 subprocess.run( # noqa: S603426 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],427 check=True,428 capture_output=True,429 )430 proc = subprocess.Popen( # noqa: S603431 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],432 stdout=subprocess.DEVNULL,433 stderr=subprocess.DEVNULL,434 )435 try:436 deadline = time.monotonic() + 30437 while (438 subprocess.run( # noqa: S603439 ["pg_isready", "-h", str(sockdir), "-U", "test"],440 check=False,441 capture_output=True,442 ).returncode443 != 0444 ):445 # The socket appears before recovery finishes; createdb would446 # fail with "the database system is starting up".447 if time.monotonic() > deadline:448 msg = "postgres did not start"449> raise RuntimeError(msg)450E RuntimeError: postgres did not start451452nixbot/tests/support.py:319: RuntimeError453____________ ERROR at setup of test_aclose_cancels_in_flight_tasks _____________454[gw7] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14455456self = <Coroutine test_aclose_cancels_in_flight_tasks>457458 def setup(self) -> None:459 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"460 if runner_fixture_id not in self.fixturenames:461 self.fixturenames.append(runner_fixture_id)462 # When loop factories are configured, resolve the loop factory463 # fixture early so that a factory variant change cascades cache464 # invalidation before any async fixture checks its cache.465 hook_caller = self.config.hook.pytest_asyncio_loop_factories466 if hook_caller.get_hookimpls():467 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)468> return super().setup()469 ^^^^^^^^^^^^^^^470471/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 472_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 473nixbot/tests/conftest.py:33: in postgres_dsn474 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:475 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^476/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__477 return next(self.gen)478 ^^^^^^^^^^^^^^479_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 480481tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...atch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw7'), _retention_count=3, _retention_policy='all')482dbname = 'service'483484 @contextlib.contextmanager485 def ephemeral_postgres(486 tmp_path_factory: pytest.TempPathFactory, dbname: str487 ) -> Iterator[str]:488 """Throwaway Postgres on a unix socket with migrations applied."""489 datadir = tmp_path_factory.mktemp("pgdata")490 sockdir = tmp_path_factory.mktemp("pgsock")491 subprocess.run( # noqa: S603492 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],493 check=True,494 capture_output=True,495 )496 proc = subprocess.Popen( # noqa: S603497 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],498 stdout=subprocess.DEVNULL,499 stderr=subprocess.DEVNULL,500 )501 try:502 deadline = time.monotonic() + 30503 while (504 subprocess.run( # noqa: S603505 ["pg_isready", "-h", str(sockdir), "-U", "test"],506 check=False,507 capture_output=True,508 ).returncode509 != 0510 ):511 # The socket appears before recovery finishes; createdb would512 # fail with "the database system is starting up".513 if time.monotonic() > deadline:514 msg = "postgres did not start"515> raise RuntimeError(msg)516E RuntimeError: postgres did not start517518nixbot/tests/support.py:319: RuntimeError519___________ ERROR at setup of test_pr_close_discards_queued_changes ____________520[gw7] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14521522self = <Coroutine test_pr_close_discards_queued_changes>523524 def setup(self) -> None:525 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"526 if runner_fixture_id not in self.fixturenames:527 self.fixturenames.append(runner_fixture_id)528 # When loop factories are configured, resolve the loop factory529 # fixture early so that a factory variant change cascades cache530 # invalidation before any async fixture checks its cache.531 hook_caller = self.config.hook.pytest_asyncio_loop_factories532 if hook_caller.get_hookimpls():533 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)534> return super().setup()535 ^^^^^^^^^^^^^^^536537/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 538_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 539nixbot/tests/conftest.py:33: in postgres_dsn540 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:541 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^542/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__543 return next(self.gen)544 ^^^^^^^^^^^^^^545_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 546547tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...atch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw7'), _retention_count=3, _retention_policy='all')548dbname = 'service'549550 @contextlib.contextmanager551 def ephemeral_postgres(552 tmp_path_factory: pytest.TempPathFactory, dbname: str553 ) -> Iterator[str]:554 """Throwaway Postgres on a unix socket with migrations applied."""555 datadir = tmp_path_factory.mktemp("pgdata")556 sockdir = tmp_path_factory.mktemp("pgsock")557 subprocess.run( # noqa: S603558 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],559 check=True,560 capture_output=True,561 )562 proc = subprocess.Popen( # noqa: S603563 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],564 stdout=subprocess.DEVNULL,565 stderr=subprocess.DEVNULL,566 )567 try:568 deadline = time.monotonic() + 30569 while (570 subprocess.run( # noqa: S603571 ["pg_isready", "-h", str(sockdir), "-U", "test"],572 check=False,573 capture_output=True,574 ).returncode575 != 0576 ):577 # The socket appears before recovery finishes; createdb would578 # fail with "the database system is starting up".579 if time.monotonic() > deadline:580 msg = "postgres did not start"581> raise RuntimeError(msg)582E RuntimeError: postgres did not start583584nixbot/tests/support.py:319: RuntimeError585__________ ERROR at setup of test_build_branches_gates_branch_pushes ___________586[gw7] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14587588self = <Coroutine test_build_branches_gates_branch_pushes>589590 def setup(self) -> None:591 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"592 if runner_fixture_id not in self.fixturenames:593 self.fixturenames.append(runner_fixture_id)594 # When loop factories are configured, resolve the loop factory595 # fixture early so that a factory variant change cascades cache596 # invalidation before any async fixture checks its cache.597 hook_caller = self.config.hook.pytest_asyncio_loop_factories598 if hook_caller.get_hookimpls():599 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)600> return super().setup()601 ^^^^^^^^^^^^^^^602603/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 604_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 605nixbot/tests/conftest.py:33: in postgres_dsn606 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:607 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^608/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__609 return next(self.gen)610 ^^^^^^^^^^^^^^611_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 612613tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...atch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw7'), _retention_count=3, _retention_policy='all')614dbname = 'service'615616 @contextlib.contextmanager617 def ephemeral_postgres(618 tmp_path_factory: pytest.TempPathFactory, dbname: str619 ) -> Iterator[str]:620 """Throwaway Postgres on a unix socket with migrations applied."""621 datadir = tmp_path_factory.mktemp("pgdata")622 sockdir = tmp_path_factory.mktemp("pgsock")623 subprocess.run( # noqa: S603624 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],625 check=True,626 capture_output=True,627 )628 proc = subprocess.Popen( # noqa: S603629 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],630 stdout=subprocess.DEVNULL,631 stderr=subprocess.DEVNULL,632 )633 try:634 deadline = time.monotonic() + 30635 while (636 subprocess.run( # noqa: S603637 ["pg_isready", "-h", str(sockdir), "-U", "test"],638 check=False,639 capture_output=True,640 ).returncode641 != 0642 ):643 # The socket appears before recovery finishes; createdb would644 # fail with "the database system is starting up".645 if time.monotonic() > deadline:646 msg = "postgres did not start"647> raise RuntimeError(msg)648E RuntimeError: postgres did not start649650nixbot/tests/support.py:319: RuntimeError651_____________ ERROR at setup of test_tag_push_builds_peeled_commit _____________652[gw7] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14653654self = <Coroutine test_tag_push_builds_peeled_commit>655656 def setup(self) -> None:657 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"658 if runner_fixture_id not in self.fixturenames:659 self.fixturenames.append(runner_fixture_id)660 # When loop factories are configured, resolve the loop factory661 # fixture early so that a factory variant change cascades cache662 # invalidation before any async fixture checks its cache.663 hook_caller = self.config.hook.pytest_asyncio_loop_factories664 if hook_caller.get_hookimpls():665 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)666> return super().setup()667 ^^^^^^^^^^^^^^^668669/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 670_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 671nixbot/tests/conftest.py:33: in postgres_dsn672 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:673 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^674/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__675 return next(self.gen)676 ^^^^^^^^^^^^^^677_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 678679tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...atch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw7'), _retention_count=3, _retention_policy='all')680dbname = 'service'681682 @contextlib.contextmanager683 def ephemeral_postgres(684 tmp_path_factory: pytest.TempPathFactory, dbname: str685 ) -> Iterator[str]:686 """Throwaway Postgres on a unix socket with migrations applied."""687 datadir = tmp_path_factory.mktemp("pgdata")688 sockdir = tmp_path_factory.mktemp("pgsock")689 subprocess.run( # noqa: S603690 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],691 check=True,692 capture_output=True,693 )694 proc = subprocess.Popen( # noqa: S603695 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],696 stdout=subprocess.DEVNULL,697 stderr=subprocess.DEVNULL,698 )699 try:700 deadline = time.monotonic() + 30701 while (702 subprocess.run( # noqa: S603703 ["pg_isready", "-h", str(sockdir), "-U", "test"],704 check=False,705 capture_output=True,706 ).returncode707 != 0708 ):709 # The socket appears before recovery finishes; createdb would710 # fail with "the database system is starting up".711 if time.monotonic() > deadline:712 msg = "postgres did not start"713> raise RuntimeError(msg)714E RuntimeError: postgres did not start715716nixbot/tests/support.py:319: RuntimeError717____ ERROR at setup of test_tag_push_waits_for_a_branch_to_build_its_commit ____718[gw7] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14719720self = <Coroutine test_tag_push_waits_for_a_branch_to_build_its_commit>721722 def setup(self) -> None:723 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"724 if runner_fixture_id not in self.fixturenames:725 self.fixturenames.append(runner_fixture_id)726 # When loop factories are configured, resolve the loop factory727 # fixture early so that a factory variant change cascades cache728 # invalidation before any async fixture checks its cache.729 hook_caller = self.config.hook.pytest_asyncio_loop_factories730 if hook_caller.get_hookimpls():731 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)732> return super().setup()733 ^^^^^^^^^^^^^^^734735/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 736_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 737nixbot/tests/conftest.py:33: in postgres_dsn738 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:739 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^740/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__741 return next(self.gen)742 ^^^^^^^^^^^^^^743_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 744745tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...atch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw7'), _retention_count=3, _retention_policy='all')746dbname = 'service'747748 @contextlib.contextmanager749 def ephemeral_postgres(750 tmp_path_factory: pytest.TempPathFactory, dbname: str751 ) -> Iterator[str]:752 """Throwaway Postgres on a unix socket with migrations applied."""753 datadir = tmp_path_factory.mktemp("pgdata")754 sockdir = tmp_path_factory.mktemp("pgsock")755 subprocess.run( # noqa: S603756 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],757 check=True,758 capture_output=True,759 )760 proc = subprocess.Popen( # noqa: S603761 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],762 stdout=subprocess.DEVNULL,763 stderr=subprocess.DEVNULL,764 )765 try:766 deadline = time.monotonic() + 30767 while (768 subprocess.run( # noqa: S603769 ["pg_isready", "-h", str(sockdir), "-U", "test"],770 check=False,771 capture_output=True,772 ).returncode773 != 0774 ):775 # The socket appears before recovery finishes; createdb would776 # fail with "the database system is starting up".777 if time.monotonic() > deadline:778 msg = "postgres did not start"779> raise RuntimeError(msg)780E RuntimeError: postgres did not start781782nixbot/tests/support.py:319: RuntimeError783___________________ ERROR at setup of test_pr_approval_gate ____________________784[gw7] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14785786self = <Coroutine test_pr_approval_gate>787788 def setup(self) -> None:789 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"790 if runner_fixture_id not in self.fixturenames:791 self.fixturenames.append(runner_fixture_id)792 # When loop factories are configured, resolve the loop factory793 # fixture early so that a factory variant change cascades cache794 # invalidation before any async fixture checks its cache.795 hook_caller = self.config.hook.pytest_asyncio_loop_factories796 if hook_caller.get_hookimpls():797 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)798> return super().setup()799 ^^^^^^^^^^^^^^^800801/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 802_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 803nixbot/tests/conftest.py:33: in postgres_dsn804 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:805 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^806/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__807 return next(self.gen)808 ^^^^^^^^^^^^^^809_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 810811tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...atch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw7'), _retention_count=3, _retention_policy='all')812dbname = 'service'813814 @contextlib.contextmanager815 def ephemeral_postgres(816 tmp_path_factory: pytest.TempPathFactory, dbname: str817 ) -> Iterator[str]:818 """Throwaway Postgres on a unix socket with migrations applied."""819 datadir = tmp_path_factory.mktemp("pgdata")820 sockdir = tmp_path_factory.mktemp("pgsock")821 subprocess.run( # noqa: S603822 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],823 check=True,824 capture_output=True,825 )826 proc = subprocess.Popen( # noqa: S603827 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],828 stdout=subprocess.DEVNULL,829 stderr=subprocess.DEVNULL,830 )831 try:832 deadline = time.monotonic() + 30833 while (834 subprocess.run( # noqa: S603835 ["pg_isready", "-h", str(sockdir), "-U", "test"],836 check=False,837 capture_output=True,838 ).returncode839 != 0840 ):841 # The socket appears before recovery finishes; createdb would842 # fail with "the database system is starting up".843 if time.monotonic() > deadline:844 msg = "postgres did not start"845> raise RuntimeError(msg)846E RuntimeError: postgres did not start847848nixbot/tests/support.py:319: RuntimeError849____________ ERROR at setup of test_pr_approval_disabled_by_default ____________850[gw7] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14851852self = <Coroutine test_pr_approval_disabled_by_default>853854 def setup(self) -> None:855 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"856 if runner_fixture_id not in self.fixturenames:857 self.fixturenames.append(runner_fixture_id)858 # When loop factories are configured, resolve the loop factory859 # fixture early so that a factory variant change cascades cache860 # invalidation before any async fixture checks its cache.861 hook_caller = self.config.hook.pytest_asyncio_loop_factories862 if hook_caller.get_hookimpls():863 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)864> return super().setup()865 ^^^^^^^^^^^^^^^866867/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 868_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 869nixbot/tests/conftest.py:33: in postgres_dsn870 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:871 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^872/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__873 return next(self.gen)874 ^^^^^^^^^^^^^^875_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 876877tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...atch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw7'), _retention_count=3, _retention_policy='all')878dbname = 'service'879880 @contextlib.contextmanager881 def ephemeral_postgres(882 tmp_path_factory: pytest.TempPathFactory, dbname: str883 ) -> Iterator[str]:884 """Throwaway Postgres on a unix socket with migrations applied."""885 datadir = tmp_path_factory.mktemp("pgdata")886 sockdir = tmp_path_factory.mktemp("pgsock")887 subprocess.run( # noqa: S603888 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],889 check=True,890 capture_output=True,891 )892 proc = subprocess.Popen( # noqa: S603893 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],894 stdout=subprocess.DEVNULL,895 stderr=subprocess.DEVNULL,896 )897 try:898 deadline = time.monotonic() + 30899 while (900 subprocess.run( # noqa: S603901 ["pg_isready", "-h", str(sockdir), "-U", "test"],902 check=False,903 capture_output=True,904 ).returncode905 != 0906 ):907 # The socket appears before recovery finishes; createdb would908 # fail with "the database system is starting up".909 if time.monotonic() > deadline:910 msg = "postgres did not start"911> raise RuntimeError(msg)912E RuntimeError: postgres did not start913914nixbot/tests/support.py:319: RuntimeError915________ ERROR at setup of test_restart_gitlab_mr_build_fetches_mr_refs ________916[gw7] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14917918self = <Coroutine test_restart_gitlab_mr_build_fetches_mr_refs>919920 def setup(self) -> None:921 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"922 if runner_fixture_id not in self.fixturenames:923 self.fixturenames.append(runner_fixture_id)924 # When loop factories are configured, resolve the loop factory925 # fixture early so that a factory variant change cascades cache926 # invalidation before any async fixture checks its cache.927 hook_caller = self.config.hook.pytest_asyncio_loop_factories928 if hook_caller.get_hookimpls():929 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)930> return super().setup()931 ^^^^^^^^^^^^^^^932933/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 934_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 935nixbot/tests/conftest.py:33: in postgres_dsn936 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:937 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^938/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__939 return next(self.gen)940 ^^^^^^^^^^^^^^941_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 942943tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...atch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw7'), _retention_count=3, _retention_policy='all')944dbname = 'service'945946 @contextlib.contextmanager947 def ephemeral_postgres(948 tmp_path_factory: pytest.TempPathFactory, dbname: str949 ) -> Iterator[str]:950 """Throwaway Postgres on a unix socket with migrations applied."""951 datadir = tmp_path_factory.mktemp("pgdata")952 sockdir = tmp_path_factory.mktemp("pgsock")953 subprocess.run( # noqa: S603954 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],955 check=True,956 capture_output=True,957 )958 proc = subprocess.Popen( # noqa: S603959 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],960 stdout=subprocess.DEVNULL,961 stderr=subprocess.DEVNULL,962 )963 try:964 deadline = time.monotonic() + 30965 while (966 subprocess.run( # noqa: S603967 ["pg_isready", "-h", str(sockdir), "-U", "test"],968 check=False,969 capture_output=True,970 ).returncode971 != 0972 ):973 # The socket appears before recovery finishes; createdb would974 # fail with "the database system is starting up".975 if time.monotonic() > deadline:976 msg = "postgres did not start"977> raise RuntimeError(msg)978E RuntimeError: postgres did not start979980nixbot/tests/support.py:319: RuntimeError981_________ ERROR at setup of test_restart_eval_failed_build_reevaluates _________982[gw7] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14983984self = <Coroutine test_restart_eval_failed_build_reevaluates>985986 def setup(self) -> None:987 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"988 if runner_fixture_id not in self.fixturenames:989 self.fixturenames.append(runner_fixture_id)990 # When loop factories are configured, resolve the loop factory991 # fixture early so that a factory variant change cascades cache992 # invalidation before any async fixture checks its cache.993 hook_caller = self.config.hook.pytest_asyncio_loop_factories994 if hook_caller.get_hookimpls():995 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)996> return super().setup()997 ^^^^^^^^^^^^^^^998999/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1000_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1001nixbot/tests/conftest.py:33: in postgres_dsn1002 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1003 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1004/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1005 return next(self.gen)1006 ^^^^^^^^^^^^^^1007_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10081009tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...atch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw7'), _retention_count=3, _retention_policy='all')1010dbname = 'service'10111012 @contextlib.contextmanager1013 def ephemeral_postgres(1014 tmp_path_factory: pytest.TempPathFactory, dbname: str1015 ) -> Iterator[str]:1016 """Throwaway Postgres on a unix socket with migrations applied."""1017 datadir = tmp_path_factory.mktemp("pgdata")1018 sockdir = tmp_path_factory.mktemp("pgsock")1019 subprocess.run( # noqa: S6031020 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1021 check=True,1022 capture_output=True,1023 )1024 proc = subprocess.Popen( # noqa: S6031025 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1026 stdout=subprocess.DEVNULL,1027 stderr=subprocess.DEVNULL,1028 )1029 try:1030 deadline = time.monotonic() + 301031 while (1032 subprocess.run( # noqa: S6031033 ["pg_isready", "-h", str(sockdir), "-U", "test"],1034 check=False,1035 capture_output=True,1036 ).returncode1037 != 01038 ):1039 # The socket appears before recovery finishes; createdb would1040 # fail with "the database system is starting up".1041 if time.monotonic() > deadline:1042 msg = "postgres did not start"1043> raise RuntimeError(msg)1044E RuntimeError: postgres did not start10451046nixbot/tests/support.py:319: RuntimeError1047________ ERROR at setup of test_restart_clears_stale_error_and_warnings ________1048[gw7] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1410491050self = <Coroutine test_restart_clears_stale_error_and_warnings>10511052 def setup(self) -> None:1053 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1054 if runner_fixture_id not in self.fixturenames:1055 self.fixturenames.append(runner_fixture_id)1056 # When loop factories are configured, resolve the loop factory1057 # fixture early so that a factory variant change cascades cache1058 # invalidation before any async fixture checks its cache.1059 hook_caller = self.config.hook.pytest_asyncio_loop_factories1060 if hook_caller.get_hookimpls():1061 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1062> return super().setup()1063 ^^^^^^^^^^^^^^^10641065/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1066_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1067nixbot/tests/conftest.py:33: in postgres_dsn1068 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1069 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1070/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1071 return next(self.gen)1072 ^^^^^^^^^^^^^^1073_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10741075tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...atch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw7'), _retention_count=3, _retention_policy='all')1076dbname = 'service'10771078 @contextlib.contextmanager1079 def ephemeral_postgres(1080 tmp_path_factory: pytest.TempPathFactory, dbname: str1081 ) -> Iterator[str]:1082 """Throwaway Postgres on a unix socket with migrations applied."""1083 datadir = tmp_path_factory.mktemp("pgdata")1084 sockdir = tmp_path_factory.mktemp("pgsock")1085 subprocess.run( # noqa: S6031086 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1087 check=True,1088 capture_output=True,1089 )1090 proc = subprocess.Popen( # noqa: S6031091 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1092 stdout=subprocess.DEVNULL,1093 stderr=subprocess.DEVNULL,1094 )1095 try:1096 deadline = time.monotonic() + 301097 while (1098 subprocess.run( # noqa: S6031099 ["pg_isready", "-h", str(sockdir), "-U", "test"],1100 check=False,1101 capture_output=True,1102 ).returncode1103 != 01104 ):1105 # The socket appears before recovery finishes; createdb would1106 # fail with "the database system is starting up".1107 if time.monotonic() > deadline:1108 msg = "postgres did not start"1109> raise RuntimeError(msg)1110E RuntimeError: postgres did not start11111112nixbot/tests/support.py:319: RuntimeError1113__________ ERROR at setup of test_restart_unknown_attribute_is_a_noop __________1114[gw7] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1411151116self = <Coroutine test_restart_unknown_attribute_is_a_noop>11171118 def setup(self) -> None:1119 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1120 if runner_fixture_id not in self.fixturenames:1121 self.fixturenames.append(runner_fixture_id)1122 # When loop factories are configured, resolve the loop factory1123 # fixture early so that a factory variant change cascades cache1124 # invalidation before any async fixture checks its cache.1125 hook_caller = self.config.hook.pytest_asyncio_loop_factories1126 if hook_caller.get_hookimpls():1127 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1128> return super().setup()1129 ^^^^^^^^^^^^^^^11301131/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1132_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1133nixbot/tests/conftest.py:33: in postgres_dsn1134 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1135 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1136/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1137 return next(self.gen)1138 ^^^^^^^^^^^^^^1139_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 11401141tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...atch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw7'), _retention_count=3, _retention_policy='all')1142dbname = 'service'11431144 @contextlib.contextmanager1145 def ephemeral_postgres(1146 tmp_path_factory: pytest.TempPathFactory, dbname: str1147 ) -> Iterator[str]:1148 """Throwaway Postgres on a unix socket with migrations applied."""1149 datadir = tmp_path_factory.mktemp("pgdata")1150 sockdir = tmp_path_factory.mktemp("pgsock")1151 subprocess.run( # noqa: S6031152 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1153 check=True,1154 capture_output=True,1155 )1156 proc = subprocess.Popen( # noqa: S6031157 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1158 stdout=subprocess.DEVNULL,1159 stderr=subprocess.DEVNULL,1160 )1161 try:1162 deadline = time.monotonic() + 301163 while (1164 subprocess.run( # noqa: S6031165 ["pg_isready", "-h", str(sockdir), "-U", "test"],1166 check=False,1167 capture_output=True,1168 ).returncode1169 != 01170 ):1171 # The socket appears before recovery finishes; createdb would1172 # fail with "the database system is starting up".1173 if time.monotonic() > deadline:1174 msg = "postgres did not start"1175> raise RuntimeError(msg)1176E RuntimeError: postgres did not start11771178nixbot/tests/support.py:319: RuntimeError1179___________ ERROR at setup of test_resume_skips_terminal_attributes ____________1180[gw20] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1411811182self = <Coroutine test_resume_skips_terminal_attributes>11831184 def setup(self) -> None:1185 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1186 if runner_fixture_id not in self.fixturenames:1187 self.fixturenames.append(runner_fixture_id)1188 # When loop factories are configured, resolve the loop factory1189 # fixture early so that a factory variant change cascades cache1190 # invalidation before any async fixture checks its cache.1191 hook_caller = self.config.hook.pytest_asyncio_loop_factories1192 if hook_caller.get_hookimpls():1193 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1194> return super().setup()1195 ^^^^^^^^^^^^^^^11961197/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1198_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1199/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:926: in pytest_fixture_setup1200 return (yield)1201 ^^^^^1202nixbot/tests/conftest.py:33: in postgres_dsn1203 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1204 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1205/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1206 return next(self.gen)1207 ^^^^^^^^^^^^^^1208_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 12091210tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...tch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw20'), _retention_count=3, _retention_policy='all')1211dbname = 'recovery'12121213 @contextlib.contextmanager1214 def ephemeral_postgres(1215 tmp_path_factory: pytest.TempPathFactory, dbname: str1216 ) -> Iterator[str]:1217 """Throwaway Postgres on a unix socket with migrations applied."""1218 datadir = tmp_path_factory.mktemp("pgdata")1219 sockdir = tmp_path_factory.mktemp("pgsock")1220 subprocess.run( # noqa: S6031221 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1222 check=True,1223 capture_output=True,1224 )1225 proc = subprocess.Popen( # noqa: S6031226 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1227 stdout=subprocess.DEVNULL,1228 stderr=subprocess.DEVNULL,1229 )1230 try:1231 deadline = time.monotonic() + 301232 while (1233 subprocess.run( # noqa: S6031234 ["pg_isready", "-h", str(sockdir), "-U", "test"],1235 check=False,1236 capture_output=True,1237 ).returncode1238 != 01239 ):1240 # The socket appears before recovery finishes; createdb would1241 # fail with "the database system is starting up".1242 if time.monotonic() > deadline:1243 msg = "postgres did not start"1244> raise RuntimeError(msg)1245E RuntimeError: postgres did not start12461247nixbot/tests/support.py:319: RuntimeError1248_______ ERROR at setup of test_restart_failed_eval_attribute_reevaluates _______1249[gw7] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1412501251self = <Coroutine test_restart_failed_eval_attribute_reevaluates>12521253 def setup(self) -> None:1254 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1255 if runner_fixture_id not in self.fixturenames:1256 self.fixturenames.append(runner_fixture_id)1257 # When loop factories are configured, resolve the loop factory1258 # fixture early so that a factory variant change cascades cache1259 # invalidation before any async fixture checks its cache.1260 hook_caller = self.config.hook.pytest_asyncio_loop_factories1261 if hook_caller.get_hookimpls():1262 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1263> return super().setup()1264 ^^^^^^^^^^^^^^^12651266/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1267_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1268nixbot/tests/conftest.py:33: in postgres_dsn1269 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1270 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1271/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1272 return next(self.gen)1273 ^^^^^^^^^^^^^^1274_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 12751276tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...atch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw7'), _retention_count=3, _retention_policy='all')1277dbname = 'service'12781279 @contextlib.contextmanager1280 def ephemeral_postgres(1281 tmp_path_factory: pytest.TempPathFactory, dbname: str1282 ) -> Iterator[str]:1283 """Throwaway Postgres on a unix socket with migrations applied."""1284 datadir = tmp_path_factory.mktemp("pgdata")1285 sockdir = tmp_path_factory.mktemp("pgsock")1286 subprocess.run( # noqa: S6031287 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1288 check=True,1289 capture_output=True,1290 )1291 proc = subprocess.Popen( # noqa: S6031292 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1293 stdout=subprocess.DEVNULL,1294 stderr=subprocess.DEVNULL,1295 )1296 try:1297 deadline = time.monotonic() + 301298 while (1299 subprocess.run( # noqa: S6031300 ["pg_isready", "-h", str(sockdir), "-U", "test"],1301 check=False,1302 capture_output=True,1303 ).returncode1304 != 01305 ):1306 # The socket appears before recovery finishes; createdb would1307 # fail with "the database system is starting up".1308 if time.monotonic() > deadline:1309 msg = "postgres did not start"1310> raise RuntimeError(msg)1311E RuntimeError: postgres did not start13121313nixbot/tests/support.py:319: RuntimeError1314_________________ ERROR at setup of test_settle_already_built __________________1315[gw20] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1413161317self = <Coroutine test_settle_already_built>13181319 def setup(self) -> None:1320 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1321 if runner_fixture_id not in self.fixturenames:1322 self.fixturenames.append(runner_fixture_id)1323 # When loop factories are configured, resolve the loop factory1324 # fixture early so that a factory variant change cascades cache1325 # invalidation before any async fixture checks its cache.1326 hook_caller = self.config.hook.pytest_asyncio_loop_factories1327 if hook_caller.get_hookimpls():1328 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1329> return super().setup()1330 ^^^^^^^^^^^^^^^13311332/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1333_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1334nixbot/tests/conftest.py:33: in postgres_dsn1335 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1336 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1337/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1338 return next(self.gen)1339 ^^^^^^^^^^^^^^1340_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 13411342tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...tch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw20'), _retention_count=3, _retention_policy='all')1343dbname = 'recovery'13441345 @contextlib.contextmanager1346 def ephemeral_postgres(1347 tmp_path_factory: pytest.TempPathFactory, dbname: str1348 ) -> Iterator[str]:1349 """Throwaway Postgres on a unix socket with migrations applied."""1350 datadir = tmp_path_factory.mktemp("pgdata")1351 sockdir = tmp_path_factory.mktemp("pgsock")1352 subprocess.run( # noqa: S6031353 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1354 check=True,1355 capture_output=True,1356 )1357 proc = subprocess.Popen( # noqa: S6031358 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1359 stdout=subprocess.DEVNULL,1360 stderr=subprocess.DEVNULL,1361 )1362 try:1363 deadline = time.monotonic() + 301364 while (1365 subprocess.run( # noqa: S6031366 ["pg_isready", "-h", str(sockdir), "-U", "test"],1367 check=False,1368 capture_output=True,1369 ).returncode1370 != 01371 ):1372 # The socket appears before recovery finishes; createdb would1373 # fail with "the database system is starting up".1374 if time.monotonic() > deadline:1375 msg = "postgres did not start"1376> raise RuntimeError(msg)1377E RuntimeError: postgres did not start13781379nixbot/tests/support.py:319: RuntimeError1380________ ERROR at setup of test_interrupted_reeval_keeps_attribute_rows ________1381[gw7] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1413821383self = <Coroutine test_interrupted_reeval_keeps_attribute_rows>13841385 def setup(self) -> None:1386 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1387 if runner_fixture_id not in self.fixturenames:1388 self.fixturenames.append(runner_fixture_id)1389 # When loop factories are configured, resolve the loop factory1390 # fixture early so that a factory variant change cascades cache1391 # invalidation before any async fixture checks its cache.1392 hook_caller = self.config.hook.pytest_asyncio_loop_factories1393 if hook_caller.get_hookimpls():1394 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1395> return super().setup()1396 ^^^^^^^^^^^^^^^13971398/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1399_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1400nixbot/tests/conftest.py:33: in postgres_dsn1401 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1402 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1403/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1404 return next(self.gen)1405 ^^^^^^^^^^^^^^1406_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 14071408tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...atch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw7'), _retention_count=3, _retention_policy='all')1409dbname = 'service'14101411 @contextlib.contextmanager1412 def ephemeral_postgres(1413 tmp_path_factory: pytest.TempPathFactory, dbname: str1414 ) -> Iterator[str]:1415 """Throwaway Postgres on a unix socket with migrations applied."""1416 datadir = tmp_path_factory.mktemp("pgdata")1417 sockdir = tmp_path_factory.mktemp("pgsock")1418 subprocess.run( # noqa: S6031419 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1420 check=True,1421 capture_output=True,1422 )1423 proc = subprocess.Popen( # noqa: S6031424 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1425 stdout=subprocess.DEVNULL,1426 stderr=subprocess.DEVNULL,1427 )1428 try:1429 deadline = time.monotonic() + 301430 while (1431 subprocess.run( # noqa: S6031432 ["pg_isready", "-h", str(sockdir), "-U", "test"],1433 check=False,1434 capture_output=True,1435 ).returncode1436 != 01437 ):1438 # The socket appears before recovery finishes; createdb would1439 # fail with "the database system is starting up".1440 if time.monotonic() > deadline:1441 msg = "postgres did not start"1442> raise RuntimeError(msg)1443E RuntimeError: postgres did not start14441445nixbot/tests/support.py:319: RuntimeError1446___________________ ERROR at setup of test_retention_cleanup ___________________1447[gw20] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1414481449self = <Coroutine test_retention_cleanup>14501451 def setup(self) -> None:1452 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1453 if runner_fixture_id not in self.fixturenames:1454 self.fixturenames.append(runner_fixture_id)1455 # When loop factories are configured, resolve the loop factory1456 # fixture early so that a factory variant change cascades cache1457 # invalidation before any async fixture checks its cache.1458 hook_caller = self.config.hook.pytest_asyncio_loop_factories1459 if hook_caller.get_hookimpls():1460 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1461> return super().setup()1462 ^^^^^^^^^^^^^^^14631464/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1465_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1466nixbot/tests/conftest.py:33: in postgres_dsn1467 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1468 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1469/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1470 return next(self.gen)1471 ^^^^^^^^^^^^^^1472_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 14731474tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...tch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw20'), _retention_count=3, _retention_policy='all')1475dbname = 'recovery'14761477 @contextlib.contextmanager1478 def ephemeral_postgres(1479 tmp_path_factory: pytest.TempPathFactory, dbname: str1480 ) -> Iterator[str]:1481 """Throwaway Postgres on a unix socket with migrations applied."""1482 datadir = tmp_path_factory.mktemp("pgdata")1483 sockdir = tmp_path_factory.mktemp("pgsock")1484 subprocess.run( # noqa: S6031485 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1486 check=True,1487 capture_output=True,1488 )1489 proc = subprocess.Popen( # noqa: S6031490 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1491 stdout=subprocess.DEVNULL,1492 stderr=subprocess.DEVNULL,1493 )1494 try:1495 deadline = time.monotonic() + 301496 while (1497 subprocess.run( # noqa: S6031498 ["pg_isready", "-h", str(sockdir), "-U", "test"],1499 check=False,1500 capture_output=True,1501 ).returncode1502 != 01503 ):1504 # The socket appears before recovery finishes; createdb would1505 # fail with "the database system is starting up".1506 if time.monotonic() > deadline:1507 msg = "postgres did not start"1508> raise RuntimeError(msg)1509E RuntimeError: postgres did not start15101511nixbot/tests/support.py:319: RuntimeError1512____ ERROR at setup of test_restart_cancelled_build_reschedules_attributes _____1513[gw7] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1415141515self = <Coroutine test_restart_cancelled_build_reschedules_attributes>15161517 def setup(self) -> None:1518 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1519 if runner_fixture_id not in self.fixturenames:1520 self.fixturenames.append(runner_fixture_id)1521 # When loop factories are configured, resolve the loop factory1522 # fixture early so that a factory variant change cascades cache1523 # invalidation before any async fixture checks its cache.1524 hook_caller = self.config.hook.pytest_asyncio_loop_factories1525 if hook_caller.get_hookimpls():1526 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1527> return super().setup()1528 ^^^^^^^^^^^^^^^15291530/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1531_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1532nixbot/tests/conftest.py:33: in postgres_dsn1533 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1534 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1535/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1536 return next(self.gen)1537 ^^^^^^^^^^^^^^1538_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 15391540tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...atch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw7'), _retention_count=3, _retention_policy='all')1541dbname = 'service'15421543 @contextlib.contextmanager1544 def ephemeral_postgres(1545 tmp_path_factory: pytest.TempPathFactory, dbname: str1546 ) -> Iterator[str]:1547 """Throwaway Postgres on a unix socket with migrations applied."""1548 datadir = tmp_path_factory.mktemp("pgdata")1549 sockdir = tmp_path_factory.mktemp("pgsock")1550 subprocess.run( # noqa: S6031551 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1552 check=True,1553 capture_output=True,1554 )1555 proc = subprocess.Popen( # noqa: S6031556 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1557 stdout=subprocess.DEVNULL,1558 stderr=subprocess.DEVNULL,1559 )1560 try:1561 deadline = time.monotonic() + 301562 while (1563 subprocess.run( # noqa: S6031564 ["pg_isready", "-h", str(sockdir), "-U", "test"],1565 check=False,1566 capture_output=True,1567 ).returncode1568 != 01569 ):1570 # The socket appears before recovery finishes; createdb would1571 # fail with "the database system is starting up".1572 if time.monotonic() > deadline:1573 msg = "postgres did not start"1574> raise RuntimeError(msg)1575E RuntimeError: postgres did not start15761577nixbot/tests/support.py:319: RuntimeError1578________ ERROR at setup of test_restart_cancelled_mid_eval_reevaluates _________1579[gw7] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1415801581self = <Coroutine test_restart_cancelled_mid_eval_reevaluates>15821583 def setup(self) -> None:1584 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1585 if runner_fixture_id not in self.fixturenames:1586 self.fixturenames.append(runner_fixture_id)1587 # When loop factories are configured, resolve the loop factory1588 # fixture early so that a factory variant change cascades cache1589 # invalidation before any async fixture checks its cache.1590 hook_caller = self.config.hook.pytest_asyncio_loop_factories1591 if hook_caller.get_hookimpls():1592 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1593> return super().setup()1594 ^^^^^^^^^^^^^^^15951596/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1597_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1598nixbot/tests/conftest.py:33: in postgres_dsn1599 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1600 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1601/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1602 return next(self.gen)1603 ^^^^^^^^^^^^^^1604_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 16051606tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...atch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw7'), _retention_count=3, _retention_policy='all')1607dbname = 'service'16081609 @contextlib.contextmanager1610 def ephemeral_postgres(1611 tmp_path_factory: pytest.TempPathFactory, dbname: str1612 ) -> Iterator[str]:1613 """Throwaway Postgres on a unix socket with migrations applied."""1614 datadir = tmp_path_factory.mktemp("pgdata")1615 sockdir = tmp_path_factory.mktemp("pgsock")1616 subprocess.run( # noqa: S6031617 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1618 check=True,1619 capture_output=True,1620 )1621 proc = subprocess.Popen( # noqa: S6031622 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1623 stdout=subprocess.DEVNULL,1624 stderr=subprocess.DEVNULL,1625 )1626 try:1627 deadline = time.monotonic() + 301628 while (1629 subprocess.run( # noqa: S6031630 ["pg_isready", "-h", str(sockdir), "-U", "test"],1631 check=False,1632 capture_output=True,1633 ).returncode1634 != 01635 ):1636 # The socket appears before recovery finishes; createdb would1637 # fail with "the database system is starting up".1638 if time.monotonic() > deadline:1639 msg = "postgres did not start"1640> raise RuntimeError(msg)1641E RuntimeError: postgres did not start16421643nixbot/tests/support.py:319: RuntimeError1644____ ERROR at setup of test_resume_includes_interrupted_building_attributes ____1645[gw20] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1416461647self = <Coroutine test_resume_includes_interrupted_building_attributes>16481649 def setup(self) -> None:1650 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1651 if runner_fixture_id not in self.fixturenames:1652 self.fixturenames.append(runner_fixture_id)1653 # When loop factories are configured, resolve the loop factory1654 # fixture early so that a factory variant change cascades cache1655 # invalidation before any async fixture checks its cache.1656 hook_caller = self.config.hook.pytest_asyncio_loop_factories1657 if hook_caller.get_hookimpls():1658 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1659> return super().setup()1660 ^^^^^^^^^^^^^^^16611662/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1663_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1664nixbot/tests/conftest.py:33: in postgres_dsn1665 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1666 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1667/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1668 return next(self.gen)1669 ^^^^^^^^^^^^^^1670_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 16711672tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...tch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw20'), _retention_count=3, _retention_policy='all')1673dbname = 'recovery'16741675 @contextlib.contextmanager1676 def ephemeral_postgres(1677 tmp_path_factory: pytest.TempPathFactory, dbname: str1678 ) -> Iterator[str]:1679 """Throwaway Postgres on a unix socket with migrations applied."""1680 datadir = tmp_path_factory.mktemp("pgdata")1681 sockdir = tmp_path_factory.mktemp("pgsock")1682 subprocess.run( # noqa: S6031683 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1684 check=True,1685 capture_output=True,1686 )1687 proc = subprocess.Popen( # noqa: S6031688 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1689 stdout=subprocess.DEVNULL,1690 stderr=subprocess.DEVNULL,1691 )1692 try:1693 deadline = time.monotonic() + 301694 while (1695 subprocess.run( # noqa: S6031696 ["pg_isready", "-h", str(sockdir), "-U", "test"],1697 check=False,1698 capture_output=True,1699 ).returncode1700 != 01701 ):1702 # The socket appears before recovery finishes; createdb would1703 # fail with "the database system is starting up".1704 if time.monotonic() > deadline:1705 msg = "postgres did not start"1706> raise RuntimeError(msg)1707E RuntimeError: postgres did not start17081709nixbot/tests/support.py:319: RuntimeError1710________ ERROR at setup of test_restart_while_unwinding_waits_then_runs ________1711[gw7] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1417121713self = <Coroutine test_restart_while_unwinding_waits_then_runs>17141715 def setup(self) -> None:1716 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1717 if runner_fixture_id not in self.fixturenames:1718 self.fixturenames.append(runner_fixture_id)1719 # When loop factories are configured, resolve the loop factory1720 # fixture early so that a factory variant change cascades cache1721 # invalidation before any async fixture checks its cache.1722 hook_caller = self.config.hook.pytest_asyncio_loop_factories1723 if hook_caller.get_hookimpls():1724 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1725> return super().setup()1726 ^^^^^^^^^^^^^^^17271728/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1729_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1730nixbot/tests/conftest.py:33: in postgres_dsn1731 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1732 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1733/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1734 return next(self.gen)1735 ^^^^^^^^^^^^^^1736_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 17371738tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...atch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw7'), _retention_count=3, _retention_policy='all')1739dbname = 'service'17401741 @contextlib.contextmanager1742 def ephemeral_postgres(1743 tmp_path_factory: pytest.TempPathFactory, dbname: str1744 ) -> Iterator[str]:1745 """Throwaway Postgres on a unix socket with migrations applied."""1746 datadir = tmp_path_factory.mktemp("pgdata")1747 sockdir = tmp_path_factory.mktemp("pgsock")1748 subprocess.run( # noqa: S6031749 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1750 check=True,1751 capture_output=True,1752 )1753 proc = subprocess.Popen( # noqa: S6031754 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1755 stdout=subprocess.DEVNULL,1756 stderr=subprocess.DEVNULL,1757 )1758 try:1759 deadline = time.monotonic() + 301760 while (1761 subprocess.run( # noqa: S6031762 ["pg_isready", "-h", str(sockdir), "-U", "test"],1763 check=False,1764 capture_output=True,1765 ).returncode1766 != 01767 ):1768 # The socket appears before recovery finishes; createdb would1769 # fail with "the database system is starting up".1770 if time.monotonic() > deadline:1771 msg = "postgres did not start"1772> raise RuntimeError(msg)1773E RuntimeError: postgres did not start17741775nixbot/tests/support.py:319: RuntimeError1776___________ ERROR at setup of test_retention_skips_restarted_builds ____________1777[gw20] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1417781779self = <Coroutine test_retention_skips_restarted_builds>17801781 def setup(self) -> None:1782 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1783 if runner_fixture_id not in self.fixturenames:1784 self.fixturenames.append(runner_fixture_id)1785 # When loop factories are configured, resolve the loop factory1786 # fixture early so that a factory variant change cascades cache1787 # invalidation before any async fixture checks its cache.1788 hook_caller = self.config.hook.pytest_asyncio_loop_factories1789 if hook_caller.get_hookimpls():1790 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1791> return super().setup()1792 ^^^^^^^^^^^^^^^17931794/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1795_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1796nixbot/tests/conftest.py:33: in postgres_dsn1797 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1798 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1799/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1800 return next(self.gen)1801 ^^^^^^^^^^^^^^1802_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 18031804tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...tch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw20'), _retention_count=3, _retention_policy='all')1805dbname = 'recovery'18061807 @contextlib.contextmanager1808 def ephemeral_postgres(1809 tmp_path_factory: pytest.TempPathFactory, dbname: str1810 ) -> Iterator[str]:1811 """Throwaway Postgres on a unix socket with migrations applied."""1812 datadir = tmp_path_factory.mktemp("pgdata")1813 sockdir = tmp_path_factory.mktemp("pgsock")1814 subprocess.run( # noqa: S6031815 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1816 check=True,1817 capture_output=True,1818 )1819 proc = subprocess.Popen( # noqa: S6031820 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1821 stdout=subprocess.DEVNULL,1822 stderr=subprocess.DEVNULL,1823 )1824 try:1825 deadline = time.monotonic() + 301826 while (1827 subprocess.run( # noqa: S6031828 ["pg_isready", "-h", str(sockdir), "-U", "test"],1829 check=False,1830 capture_output=True,1831 ).returncode1832 != 01833 ):1834 # The socket appears before recovery finishes; createdb would1835 # fail with "the database system is starting up".1836 if time.monotonic() > deadline:1837 msg = "postgres did not start"1838> raise RuntimeError(msg)1839E RuntimeError: postgres did not start18401841nixbot/tests/support.py:319: RuntimeError1842______________ ERROR at setup of test_anonymous_sees_public_only _______________1843[gw14] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1418441845fixturedef = <FixtureDef argname='postgres_dsn' scope='module' baseid='nixbot/tests'>1846request = <SubRequest 'postgres_dsn' for <Function test_anonymous_sees_public_only>>18471848 @pytest.hookimpl(wrapper=True)1849 def pytest_fixture_setup(fixturedef: FixtureDef, request) -> object | None:1850 if (1851 fixturedef.argname == "event_loop_policy"1852 and fixturedef.func.__module__ != __name__1853 ):1854 warnings.warn(1855 PytestDeprecationWarning(_EVENT_LOOP_POLICY_FIXTURE_DEPRECATION_WARNING),1856 )1857 asyncio_mode = _get_asyncio_mode(request.config)1858 if not _is_asyncio_fixture_function(fixturedef.func):1859 if asyncio_mode == Mode.STRICT:1860 # Ignore async fixtures without explicit asyncio mark in strict mode1861 # This applies to pytest_trio fixtures, for example1862 return (yield)1863 if not _is_coroutine_or_asyncgen(fixturedef.func):1864> return (yield)1865 ^^^^^18661867/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:926: 1868_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1869nixbot/tests/conftest.py:33: in postgres_dsn1870 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1871 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1872/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1873 return next(self.gen)1874 ^^^^^^^^^^^^^^1875_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 18761877tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...tch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw14'), _retention_count=3, _retention_policy='all')1878dbname = 'visibility'18791880 @contextlib.contextmanager1881 def ephemeral_postgres(1882 tmp_path_factory: pytest.TempPathFactory, dbname: str1883 ) -> Iterator[str]:1884 """Throwaway Postgres on a unix socket with migrations applied."""1885 datadir = tmp_path_factory.mktemp("pgdata")1886 sockdir = tmp_path_factory.mktemp("pgsock")1887 subprocess.run( # noqa: S6031888 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1889 check=True,1890 capture_output=True,1891 )1892 proc = subprocess.Popen( # noqa: S6031893 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1894 stdout=subprocess.DEVNULL,1895 stderr=subprocess.DEVNULL,1896 )1897 try:1898 deadline = time.monotonic() + 301899 while (1900 subprocess.run( # noqa: S6031901 ["pg_isready", "-h", str(sockdir), "-U", "test"],1902 check=False,1903 capture_output=True,1904 ).returncode1905 != 01906 ):1907 # The socket appears before recovery finishes; createdb would1908 # fail with "the database system is starting up".1909 if time.monotonic() > deadline:1910 msg = "postgres did not start"1911> raise RuntimeError(msg)1912E RuntimeError: postgres did not start19131914nixbot/tests/support.py:319: RuntimeError1915_________ ERROR at setup of test_restart_attribute_while_build_running _________1916[gw7] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1419171918self = <Coroutine test_restart_attribute_while_build_running>19191920 def setup(self) -> None:1921 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1922 if runner_fixture_id not in self.fixturenames:1923 self.fixturenames.append(runner_fixture_id)1924 # When loop factories are configured, resolve the loop factory1925 # fixture early so that a factory variant change cascades cache1926 # invalidation before any async fixture checks its cache.1927 hook_caller = self.config.hook.pytest_asyncio_loop_factories1928 if hook_caller.get_hookimpls():1929 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1930> return super().setup()1931 ^^^^^^^^^^^^^^^19321933/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1934_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1935nixbot/tests/conftest.py:33: in postgres_dsn1936 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1937 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1938/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1939 return next(self.gen)1940 ^^^^^^^^^^^^^^1941_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 19421943tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...atch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw7'), _retention_count=3, _retention_policy='all')1944dbname = 'service'19451946 @contextlib.contextmanager1947 def ephemeral_postgres(1948 tmp_path_factory: pytest.TempPathFactory, dbname: str1949 ) -> Iterator[str]:1950 """Throwaway Postgres on a unix socket with migrations applied."""1951 datadir = tmp_path_factory.mktemp("pgdata")1952 sockdir = tmp_path_factory.mktemp("pgsock")1953 subprocess.run( # noqa: S6031954 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1955 check=True,1956 capture_output=True,1957 )1958 proc = subprocess.Popen( # noqa: S6031959 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1960 stdout=subprocess.DEVNULL,1961 stderr=subprocess.DEVNULL,1962 )1963 try:1964 deadline = time.monotonic() + 301965 while (1966 subprocess.run( # noqa: S6031967 ["pg_isready", "-h", str(sockdir), "-U", "test"],1968 check=False,1969 capture_output=True,1970 ).returncode1971 != 01972 ):1973 # The socket appears before recovery finishes; createdb would1974 # fail with "the database system is starting up".1975 if time.monotonic() > deadline:1976 msg = "postgres did not start"1977> raise RuntimeError(msg)1978E RuntimeError: postgres did not start19791980nixbot/tests/support.py:319: RuntimeError1981__________ ERROR at setup of test_unauthorized_user_sees_public_only ___________1982[gw14] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1419831984request = <SubRequest 'postgres_dsn' for <Function test_anonymous_sees_public_only>>1985tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...tch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw14'), _retention_count=3, _retention_policy='all')19861987 @pytest.fixture(scope="module")1988 def postgres_dsn(1989 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory1990 ) -> Iterator[str]:1991 if shutil.which("initdb") is None:1992 pytest.skip("postgresql not available")1993 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")1994> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1995 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^19961997nixbot/tests/conftest.py:33: 1998_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1999/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__2000 return next(self.gen)2031520316 def setup(self) -> None:20317 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"20318 if runner_fixture_id not in self.fixturenames:20319 self.fixturenames.append(runner_fixture_id)20320 # When loop factories are configured, resolve the loop factory20321 # fixture early so that a factory variant change cascades cache20322 # invalidation before any async fixture checks its cache.20323 hook_caller = self.config.hook.pytest_asyncio_loop_factories20324 if hook_caller.get_hookimpls():20325 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)20326> return super().setup()20327 ^^^^^^^^^^^^^^^2032820329/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 20330_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20331nixbot/tests/conftest.py:33: in postgres_dsn20332 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:20333 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^20334/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__20335 return next(self.gen)20336 ^^^^^^^^^^^^^^20337_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2033820339tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...atch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')20340dbname = 'orchestrator'2034120342 @contextlib.contextmanager20343 def ephemeral_postgres(20344 tmp_path_factory: pytest.TempPathFactory, dbname: str20345 ) -> Iterator[str]:20346 """Throwaway Postgres on a unix socket with migrations applied."""20347 datadir = tmp_path_factory.mktemp("pgdata")20348 sockdir = tmp_path_factory.mktemp("pgsock")20349 subprocess.run( # noqa: S60320350 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],20351 check=True,20352 capture_output=True,20353 )20354 proc = subprocess.Popen( # noqa: S60320355 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],20356 stdout=subprocess.DEVNULL,20357 stderr=subprocess.DEVNULL,20358 )20359 try:20360 deadline = time.monotonic() + 3020361 while (20362 subprocess.run( # noqa: S60320363 ["pg_isready", "-h", str(sockdir), "-U", "test"],20364 check=False,20365 capture_output=True,20366 ).returncode20367 != 020368 ):20369 # The socket appears before recovery finishes; createdb would20370 # fail with "the database system is starting up".20371 if time.monotonic() > deadline:20372 msg = "postgres did not start"20373> raise RuntimeError(msg)20374E RuntimeError: postgres did not start2037520376nixbot/tests/support.py:319: RuntimeError20377_______ ERROR at setup of test_scheduled_run_log_unavailable_placeholder _______20378[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142037920380request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>20381tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...atch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2038220383 @pytest.fixture(scope="module")20384 def postgres_dsn(20385 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory20386 ) -> Iterator[str]:20387 if shutil.which("initdb") is None:20388 pytest.skip("postgresql not available")20389 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")20390> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:20391 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2039220393nixbot/tests/conftest.py:33: 20394_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20395/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__20396 return next(self.gen)20397 ^^^^^^^^^^^^^^20398_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2039920400tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...atch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')20401dbname = 'web'2040220403 @contextlib.contextmanager20404 def ephemeral_postgres(20405 tmp_path_factory: pytest.TempPathFactory, dbname: str20406 ) -> Iterator[str]:20407 """Throwaway Postgres on a unix socket with migrations applied."""20408 datadir = tmp_path_factory.mktemp("pgdata")20409 sockdir = tmp_path_factory.mktemp("pgsock")20410 subprocess.run( # noqa: S60320411 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],20412 check=True,20413 capture_output=True,20414 )20415 proc = subprocess.Popen( # noqa: S60320416 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],20417 stdout=subprocess.DEVNULL,20418 stderr=subprocess.DEVNULL,20419 )20420 try:20421 deadline = time.monotonic() + 3020422 while (20423 subprocess.run( # noqa: S60320424 ["pg_isready", "-h", str(sockdir), "-U", "test"],20425 check=False,20426 capture_output=True,20427 ).returncode20428 != 020429 ):20430 # The socket appears before recovery finishes; createdb would20431 # fail with "the database system is starting up".20432 if time.monotonic() > deadline:20433 msg = "postgres did not start"20434> raise RuntimeError(msg)20435E RuntimeError: postgres did not start2043620437nixbot/tests/support.py:319: RuntimeError20438________ ERROR at setup of test_scheduled_run_viewer_waiting_before_log ________20439[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142044020441request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>20442tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...atch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2044320444 @pytest.fixture(scope="module")20445 def postgres_dsn(20446 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory20447 ) -> Iterator[str]:20448 if shutil.which("initdb") is None:20449 pytest.skip("postgresql not available")20450 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")20451> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:20452 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2045320454nixbot/tests/conftest.py:33: 20455_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20456/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__20457 return next(self.gen)20458 ^^^^^^^^^^^^^^20459_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2046020461tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...atch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')20462dbname = 'web'2046320464 @contextlib.contextmanager20465 def ephemeral_postgres(20466 tmp_path_factory: pytest.TempPathFactory, dbname: str20467 ) -> Iterator[str]:20468 """Throwaway Postgres on a unix socket with migrations applied."""20469 datadir = tmp_path_factory.mktemp("pgdata")20470 sockdir = tmp_path_factory.mktemp("pgsock")20471 subprocess.run( # noqa: S60320472 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],20473 check=True,20474 capture_output=True,20475 )20476 proc = subprocess.Popen( # noqa: S60320477 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],20478 stdout=subprocess.DEVNULL,20479 stderr=subprocess.DEVNULL,20480 )20481 try:20482 deadline = time.monotonic() + 3020483 while (20484 subprocess.run( # noqa: S60320485 ["pg_isready", "-h", str(sockdir), "-U", "test"],20486 check=False,20487 capture_output=True,20488 ).returncode20489 != 020490 ):20491 # The socket appears before recovery finishes; createdb would20492 # fail with "the database system is starting up".20493 if time.monotonic() > deadline:20494 msg = "postgres did not start"20495> raise RuntimeError(msg)20496E RuntimeError: postgres did not start2049720498nixbot/tests/support.py:319: RuntimeError20499_____ ERROR at setup of test_concurrent_effects_use_independent_worktrees ______20500[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142050120502self = <Coroutine test_concurrent_effects_use_independent_worktrees>2050320504 def setup(self) -> None:20505 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"20506 if runner_fixture_id not in self.fixturenames:20507 self.fixturenames.append(runner_fixture_id)20508 # When loop factories are configured, resolve the loop factory20509 # fixture early so that a factory variant change cascades cache20510 # invalidation before any async fixture checks its cache.20511 hook_caller = self.config.hook.pytest_asyncio_loop_factories20512 if hook_caller.get_hookimpls():20513 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)20514> return super().setup()20515 ^^^^^^^^^^^^^^^2051620517/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 20518_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20519nixbot/tests/conftest.py:33: in postgres_dsn20520 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:20521 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^20522/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__20523 return next(self.gen)20524 ^^^^^^^^^^^^^^20525_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2052620527tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...atch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')20528dbname = 'orchestrator'2052920530 @contextlib.contextmanager20531 def ephemeral_postgres(20532 tmp_path_factory: pytest.TempPathFactory, dbname: str20533 ) -> Iterator[str]:20534 """Throwaway Postgres on a unix socket with migrations applied."""20535 datadir = tmp_path_factory.mktemp("pgdata")20536 sockdir = tmp_path_factory.mktemp("pgsock")20537 subprocess.run( # noqa: S60320538 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],20539 check=True,20540 capture_output=True,20541 )20542 proc = subprocess.Popen( # noqa: S60320543 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],20544 stdout=subprocess.DEVNULL,20545 stderr=subprocess.DEVNULL,20546 )20547 try:20548 deadline = time.monotonic() + 3020549 while (20550 subprocess.run( # noqa: S60320551 ["pg_isready", "-h", str(sockdir), "-U", "test"],20552 check=False,20553 capture_output=True,20554 ).returncode20555 != 020556 ):20557 # The socket appears before recovery finishes; createdb would20558 # fail with "the database system is starting up".20559 if time.monotonic() > deadline:20560 msg = "postgres did not start"20561> raise RuntimeError(msg)20562E RuntimeError: postgres did not start2056320564nixbot/tests/support.py:319: RuntimeError20565_________ ERROR at setup of test_project_tabs_link_builds_and_effects __________20566[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142056720568request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>20569tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...atch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2057020571 @pytest.fixture(scope="module")20572 def postgres_dsn(20573 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory20574 ) -> Iterator[str]:20575 if shutil.which("initdb") is None:20576 pytest.skip("postgresql not available")20577 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")20578> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:20579 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2058020581nixbot/tests/conftest.py:33: 20582_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20583/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__20584 return next(self.gen)20585 ^^^^^^^^^^^^^^20586_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2058720588tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...atch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')20589dbname = 'web'2059020591 @contextlib.contextmanager20592 def ephemeral_postgres(20593 tmp_path_factory: pytest.TempPathFactory, dbname: str20594 ) -> Iterator[str]:20595 """Throwaway Postgres on a unix socket with migrations applied."""20596 datadir = tmp_path_factory.mktemp("pgdata")20597 sockdir = tmp_path_factory.mktemp("pgsock")20598 subprocess.run( # noqa: S60320599 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],20600 check=True,20601 capture_output=True,20602 )20603 proc = subprocess.Popen( # noqa: S60320604 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],20605 stdout=subprocess.DEVNULL,20606 stderr=subprocess.DEVNULL,20607 )20608 try:20609 deadline = time.monotonic() + 3020610 while (20611 subprocess.run( # noqa: S60320612 ["pg_isready", "-h", str(sockdir), "-U", "test"],20613 check=False,20614 capture_output=True,20615 ).returncode20616 != 020617 ):20618 # The socket appears before recovery finishes; createdb would20619 # fail with "the database system is starting up".20620 if time.monotonic() > deadline:20621 msg = "postgres did not start"20622> raise RuntimeError(msg)20623E RuntimeError: postgres did not start2062420625nixbot/tests/support.py:319: RuntimeError20626_ ERROR at setup of test_failing_badge_counts_effects_whose_latest_run_failed __20627[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142062820629request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>20630tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...atch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2063120632 @pytest.fixture(scope="module")20633 def postgres_dsn(20634 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory20635 ) -> Iterator[str]:20636 if shutil.which("initdb") is None:20637 pytest.skip("postgresql not available")20638 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")20639> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:20640 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2064120642nixbot/tests/conftest.py:33: 20643_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20644/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__20645 return next(self.gen)20646 ^^^^^^^^^^^^^^20647_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2064820649tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...atch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')20650dbname = 'web'2065120652 @contextlib.contextmanager20653 def ephemeral_postgres(20654 tmp_path_factory: pytest.TempPathFactory, dbname: str20655 ) -> Iterator[str]:20656 """Throwaway Postgres on a unix socket with migrations applied."""20657 datadir = tmp_path_factory.mktemp("pgdata")20658 sockdir = tmp_path_factory.mktemp("pgsock")20659 subprocess.run( # noqa: S60320660 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],20661 check=True,20662 capture_output=True,20663 )20664 proc = subprocess.Popen( # noqa: S60320665 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],20666 stdout=subprocess.DEVNULL,20667 stderr=subprocess.DEVNULL,20668 )20669 try:20670 deadline = time.monotonic() + 3020671 while (20672 subprocess.run( # noqa: S60320673 ["pg_isready", "-h", str(sockdir), "-U", "test"],20674 check=False,20675 capture_output=True,20676 ).returncode20677 != 020678 ):20679 # The socket appears before recovery finishes; createdb would20680 # fail with "the database system is starting up".20681 if time.monotonic() > deadline:20682 msg = "postgres did not start"20683> raise RuntimeError(msg)20684E RuntimeError: postgres did not start2068520686nixbot/tests/support.py:319: RuntimeError20687__________ ERROR at setup of test_locked_effect_gets_shared_dedup_key __________20688[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142068920690self = <Coroutine test_locked_effect_gets_shared_dedup_key>2069120692 def setup(self) -> None:20693 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"20694 if runner_fixture_id not in self.fixturenames:20695 self.fixturenames.append(runner_fixture_id)20696 # When loop factories are configured, resolve the loop factory20697 # fixture early so that a factory variant change cascades cache20698 # invalidation before any async fixture checks its cache.20699 hook_caller = self.config.hook.pytest_asyncio_loop_factories20700 if hook_caller.get_hookimpls():20701 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)20702> return super().setup()20703 ^^^^^^^^^^^^^^^2070420705/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 20706_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20707nixbot/tests/conftest.py:33: in postgres_dsn20708 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:20709 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^20710/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__20711 return next(self.gen)20712 ^^^^^^^^^^^^^^20713_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2071420715tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...atch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')20716dbname = 'orchestrator'2071720718 @contextlib.contextmanager20719 def ephemeral_postgres(20720 tmp_path_factory: pytest.TempPathFactory, dbname: str20721 ) -> Iterator[str]:20722 """Throwaway Postgres on a unix socket with migrations applied."""20723 datadir = tmp_path_factory.mktemp("pgdata")20724 sockdir = tmp_path_factory.mktemp("pgsock")20725 subprocess.run( # noqa: S60320726 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],20727 check=True,20728 capture_output=True,20729 )20730 proc = subprocess.Popen( # noqa: S60320731 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],20732 stdout=subprocess.DEVNULL,20733 stderr=subprocess.DEVNULL,20734 )20735 try:20736 deadline = time.monotonic() + 3020737 while (20738 subprocess.run( # noqa: S60320739 ["pg_isready", "-h", str(sockdir), "-U", "test"],20740 check=False,20741 capture_output=True,20742 ).returncode20743 != 020744 ):20745 # The socket appears before recovery finishes; createdb would20746 # fail with "the database system is starting up".20747 if time.monotonic() > deadline:20748 msg = "postgres did not start"20749> raise RuntimeError(msg)20750E RuntimeError: postgres did not start2075120752nixbot/tests/support.py:319: RuntimeError20753__________ ERROR at setup of test_old_schedule_history_url_redirects ___________20754[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142075520756request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>20757tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...atch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2075820759 @pytest.fixture(scope="module")20760 def postgres_dsn(20761 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory20762 ) -> Iterator[str]:20763 if shutil.which("initdb") is None:20764 pytest.skip("postgresql not available")20765 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")20766> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:20767 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2076820769nixbot/tests/conftest.py:33: 20770_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20771/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__20772 return next(self.gen)20773 ^^^^^^^^^^^^^^20774_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2077520776tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...atch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')20777dbname = 'web'2077820779 @contextlib.contextmanager20780 def ephemeral_postgres(20781 tmp_path_factory: pytest.TempPathFactory, dbname: str20782 ) -> Iterator[str]:20783 """Throwaway Postgres on a unix socket with migrations applied."""20784 datadir = tmp_path_factory.mktemp("pgdata")20785 sockdir = tmp_path_factory.mktemp("pgsock")20786 subprocess.run( # noqa: S60320787 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],20788 check=True,20789 capture_output=True,20790 )20791 proc = subprocess.Popen( # noqa: S60320792 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],20793 stdout=subprocess.DEVNULL,20794 stderr=subprocess.DEVNULL,20795 )20796 try:20797 deadline = time.monotonic() + 3020798 while (20799 subprocess.run( # noqa: S60320800 ["pg_isready", "-h", str(sockdir), "-U", "test"],20801 check=False,20802 capture_output=True,20803 ).returncode20804 != 020805 ):20806 # The socket appears before recovery finishes; createdb would20807 # fail with "the database system is starting up".20808 if time.monotonic() > deadline:20809 msg = "postgres did not start"20810> raise RuntimeError(msg)20811E RuntimeError: postgres did not start2081220813nixbot/tests/support.py:319: RuntimeError20814______ ERROR at setup of test_effect_item_not_claimable_until_dep_settles ______20815[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142081620817self = <Coroutine test_effect_item_not_claimable_until_dep_settles>2081820819 def setup(self) -> None:20820 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"20821 if runner_fixture_id not in self.fixturenames:20822 self.fixturenames.append(runner_fixture_id)20823 # When loop factories are configured, resolve the loop factory20824 # fixture early so that a factory variant change cascades cache20825 # invalidation before any async fixture checks its cache.20826 hook_caller = self.config.hook.pytest_asyncio_loop_factories20827 if hook_caller.get_hookimpls():20828 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)20829> return super().setup()20830 ^^^^^^^^^^^^^^^2083120832/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 20833_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20834nixbot/tests/conftest.py:33: in postgres_dsn20835 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:20836 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^20837/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__20838 return next(self.gen)20839 ^^^^^^^^^^^^^^20840_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2084120842tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...atch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')20843dbname = 'orchestrator'2084420845 @contextlib.contextmanager20846 def ephemeral_postgres(20847 tmp_path_factory: pytest.TempPathFactory, dbname: str20848 ) -> Iterator[str]:20849 """Throwaway Postgres on a unix socket with migrations applied."""20850 datadir = tmp_path_factory.mktemp("pgdata")20851 sockdir = tmp_path_factory.mktemp("pgsock")20852 subprocess.run( # noqa: S60320853 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],20854 check=True,20855 capture_output=True,20856 )20857 proc = subprocess.Popen( # noqa: S60320858 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],20859 stdout=subprocess.DEVNULL,20860 stderr=subprocess.DEVNULL,20861 )20862 try:20863 deadline = time.monotonic() + 3020864 while (20865 subprocess.run( # noqa: S60320866 ["pg_isready", "-h", str(sockdir), "-U", "test"],20867 check=False,20868 capture_output=True,20869 ).returncode20870 != 020871 ):20872 # The socket appears before recovery finishes; createdb would20873 # fail with "the database system is starting up".20874 if time.monotonic() > deadline:20875 msg = "postgres did not start"20876> raise RuntimeError(msg)20877E RuntimeError: postgres did not start2087820879nixbot/tests/support.py:319: RuntimeError20880__________ ERROR at setup of test_project_effects_filter_and_paginate __________20881[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142088220883request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>20884tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...atch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2088520886 @pytest.fixture(scope="module")20887 def postgres_dsn(20888 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory20889 ) -> Iterator[str]:20890 if shutil.which("initdb") is None:20891 pytest.skip("postgresql not available")20892 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")20893> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:20894 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2089520896nixbot/tests/conftest.py:33: 20897_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20898/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__20899 return next(self.gen)20900 ^^^^^^^^^^^^^^20901_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2090220903tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...atch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')20904dbname = 'web'2090520906 @contextlib.contextmanager20907 def ephemeral_postgres(20908 tmp_path_factory: pytest.TempPathFactory, dbname: str20909 ) -> Iterator[str]:20910 """Throwaway Postgres on a unix socket with migrations applied."""20911 datadir = tmp_path_factory.mktemp("pgdata")20912 sockdir = tmp_path_factory.mktemp("pgsock")20913 subprocess.run( # noqa: S60320914 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],20915 check=True,20916 capture_output=True,20917 )20918 proc = subprocess.Popen( # noqa: S60320919 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],20920 stdout=subprocess.DEVNULL,20921 stderr=subprocess.DEVNULL,20922 )20923 try:20924 deadline = time.monotonic() + 3020925 while (20926 subprocess.run( # noqa: S60320927 ["pg_isready", "-h", str(sockdir), "-U", "test"],20928 check=False,20929 capture_output=True,20930 ).returncode20931 != 020932 ):20933 # The socket appears before recovery finishes; createdb would20934 # fail with "the database system is starting up".20935 if time.monotonic() > deadline:20936 msg = "postgres did not start"20937> raise RuntimeError(msg)20938E RuntimeError: postgres did not start2093920940nixbot/tests/support.py:319: RuntimeError20941_________ ERROR at setup of test_scheduled_run_stream_replays_history __________20942[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142094320944request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>20945tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...atch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2094620947 @pytest.fixture(scope="module")20948 def postgres_dsn(20949 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory20950 ) -> Iterator[str]:20951 if shutil.which("initdb") is None:20952 pytest.skip("postgresql not available")20953 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")20954> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:20955 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2095620957nixbot/tests/conftest.py:33: 20958_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20959/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__20960 return next(self.gen)20961 ^^^^^^^^^^^^^^20962_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2096320964tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...atch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')20965dbname = 'web'2096620967 @contextlib.contextmanager20968 def ephemeral_postgres(20969 tmp_path_factory: pytest.TempPathFactory, dbname: str20970 ) -> Iterator[str]:20971 """Throwaway Postgres on a unix socket with migrations applied."""20972 datadir = tmp_path_factory.mktemp("pgdata")20973 sockdir = tmp_path_factory.mktemp("pgsock")20974 subprocess.run( # noqa: S60320975 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],20976 check=True,20977 capture_output=True,20978 )20979 proc = subprocess.Popen( # noqa: S60320980 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],20981 stdout=subprocess.DEVNULL,20982 stderr=subprocess.DEVNULL,20983 )20984 try:20985 deadline = time.monotonic() + 3020986 while (20987 subprocess.run( # noqa: S60320988 ["pg_isready", "-h", str(sockdir), "-U", "test"],20989 check=False,20990 capture_output=True,20991 ).returncode20992 != 020993 ):20994 # The socket appears before recovery finishes; createdb would20995 # fail with "the database system is starting up".20996 if time.monotonic() > deadline:20997 msg = "postgres did not start"20998> raise RuntimeError(msg)20999E RuntimeError: postgres did not start2100021001nixbot/tests/support.py:319: RuntimeError21002__________ ERROR at setup of test_effect_dep_failure_skips_dependent ___________21003[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142100421005self = <Coroutine test_effect_dep_failure_skips_dependent>2100621007 def setup(self) -> None:21008 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21009 if runner_fixture_id not in self.fixturenames:21010 self.fixturenames.append(runner_fixture_id)21011 # When loop factories are configured, resolve the loop factory21012 # fixture early so that a factory variant change cascades cache21013 # invalidation before any async fixture checks its cache.21014 hook_caller = self.config.hook.pytest_asyncio_loop_factories21015 if hook_caller.get_hookimpls():21016 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21017> return super().setup()21018 ^^^^^^^^^^^^^^^2101921020/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21021_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21022nixbot/tests/conftest.py:33: in postgres_dsn21023 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21024 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21025/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21026 return next(self.gen)21027 ^^^^^^^^^^^^^^21028_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2102921030tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...atch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21031dbname = 'orchestrator'2103221033 @contextlib.contextmanager21034 def ephemeral_postgres(21035 tmp_path_factory: pytest.TempPathFactory, dbname: str21036 ) -> Iterator[str]:21037 """Throwaway Postgres on a unix socket with migrations applied."""21038 datadir = tmp_path_factory.mktemp("pgdata")21039 sockdir = tmp_path_factory.mktemp("pgsock")21040 subprocess.run( # noqa: S60321041 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21042 check=True,21043 capture_output=True,21044 )21045 proc = subprocess.Popen( # noqa: S60321046 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21047 stdout=subprocess.DEVNULL,21048 stderr=subprocess.DEVNULL,21049 )21050 try:21051 deadline = time.monotonic() + 3021052 while (21053 subprocess.run( # noqa: S60321054 ["pg_isready", "-h", str(sockdir), "-U", "test"],21055 check=False,21056 capture_output=True,21057 ).returncode21058 != 021059 ):21060 # The socket appears before recovery finishes; createdb would21061 # fail with "the database system is starting up".21062 if time.monotonic() > deadline:21063 msg = "postgres did not start"21064> raise RuntimeError(msg)21065E RuntimeError: postgres did not start2106621067nixbot/tests/support.py:319: RuntimeError21068___________ ERROR at setup of test_scheduled_run_notify_build_events ___________21069[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142107021071request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>21072tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...atch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2107321074 @pytest.fixture(scope="module")21075 def postgres_dsn(21076 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory21077 ) -> Iterator[str]:21078 if shutil.which("initdb") is None:21079 pytest.skip("postgresql not available")21080 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")21081> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21082 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2108321084nixbot/tests/conftest.py:33: 21085_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21086/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21087 return next(self.gen)21088 ^^^^^^^^^^^^^^21089_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2109021091tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...atch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')21092dbname = 'web'2109321094 @contextlib.contextmanager21095 def ephemeral_postgres(21096 tmp_path_factory: pytest.TempPathFactory, dbname: str21097 ) -> Iterator[str]:21098 """Throwaway Postgres on a unix socket with migrations applied."""21099 datadir = tmp_path_factory.mktemp("pgdata")21100 sockdir = tmp_path_factory.mktemp("pgsock")21101 subprocess.run( # noqa: S60321102 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21103 check=True,21104 capture_output=True,21105 )21106 proc = subprocess.Popen( # noqa: S60321107 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21108 stdout=subprocess.DEVNULL,21109 stderr=subprocess.DEVNULL,21110 )21111 try:21112 deadline = time.monotonic() + 3021113 while (21114 subprocess.run( # noqa: S60321115 ["pg_isready", "-h", str(sockdir), "-U", "test"],21116 check=False,21117 capture_output=True,21118 ).returncode21119 != 021120 ):21121 # The socket appears before recovery finishes; createdb would21122 # fail with "the database system is starting up".21123 if time.monotonic() > deadline:21124 msg = "postgres did not start"21125> raise RuntimeError(msg)21126E RuntimeError: postgres did not start2112721128nixbot/tests/support.py:319: RuntimeError21129_________________ ERROR at setup of test_api_log_toc_and_text __________________21130[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142113121132request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>21133tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...atch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2113421135 @pytest.fixture(scope="module")21136 def postgres_dsn(21137 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory21138 ) -> Iterator[str]:21139 if shutil.which("initdb") is None:21140 pytest.skip("postgresql not available")21141 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")21142> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21143 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2114421145nixbot/tests/conftest.py:33: 21146_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21147/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21148 return next(self.gen)21149 ^^^^^^^^^^^^^^21150_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2115121152tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...atch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')21153dbname = 'web'2115421155 @contextlib.contextmanager21156 def ephemeral_postgres(21157 tmp_path_factory: pytest.TempPathFactory, dbname: str21158 ) -> Iterator[str]:21159 """Throwaway Postgres on a unix socket with migrations applied."""21160 datadir = tmp_path_factory.mktemp("pgdata")21161 sockdir = tmp_path_factory.mktemp("pgsock")21162 subprocess.run( # noqa: S60321163 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21164 check=True,21165 capture_output=True,21166 )21167 proc = subprocess.Popen( # noqa: S60321168 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21169 stdout=subprocess.DEVNULL,21170 stderr=subprocess.DEVNULL,21171 )21172 try:21173 deadline = time.monotonic() + 3021174 while (21175 subprocess.run( # noqa: S60321176 ["pg_isready", "-h", str(sockdir), "-U", "test"],21177 check=False,21178 capture_output=True,21179 ).returncode21180 != 021181 ):21182 # The socket appears before recovery finishes; createdb would21183 # fail with "the database system is starting up".21184 if time.monotonic() > deadline:21185 msg = "postgres did not start"21186> raise RuntimeError(msg)21187E RuntimeError: postgres did not start2118821189nixbot/tests/support.py:319: RuntimeError21190______ ERROR at setup of test_lock_serializes_builds_without_interleaving ______21191[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142119221193self = <Coroutine test_lock_serializes_builds_without_interleaving>2119421195 def setup(self) -> None:21196 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21197 if runner_fixture_id not in self.fixturenames:21198 self.fixturenames.append(runner_fixture_id)21199 # When loop factories are configured, resolve the loop factory21200 # fixture early so that a factory variant change cascades cache21201 # invalidation before any async fixture checks its cache.21202 hook_caller = self.config.hook.pytest_asyncio_loop_factories21203 if hook_caller.get_hookimpls():21204 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21205> return super().setup()21206 ^^^^^^^^^^^^^^^2120721208/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21209_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21210nixbot/tests/conftest.py:33: in postgres_dsn21211 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21212 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21213/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21214 return next(self.gen)21215 ^^^^^^^^^^^^^^21216_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2121721218tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...atch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21219dbname = 'orchestrator'2122021221 @contextlib.contextmanager21222 def ephemeral_postgres(21223 tmp_path_factory: pytest.TempPathFactory, dbname: str21224 ) -> Iterator[str]:21225 """Throwaway Postgres on a unix socket with migrations applied."""21226 datadir = tmp_path_factory.mktemp("pgdata")21227 sockdir = tmp_path_factory.mktemp("pgsock")21228 subprocess.run( # noqa: S60321229 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21230 check=True,21231 capture_output=True,21232 )21233 proc = subprocess.Popen( # noqa: S60321234 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21235 stdout=subprocess.DEVNULL,21236 stderr=subprocess.DEVNULL,21237 )21238 try:21239 deadline = time.monotonic() + 3021240 while (21241 subprocess.run( # noqa: S60321242 ["pg_isready", "-h", str(sockdir), "-U", "test"],21243 check=False,21244 capture_output=True,21245 ).returncode21246 != 021247 ):21248 # The socket appears before recovery finishes; createdb would21249 # fail with "the database system is starting up".21250 if time.monotonic() > deadline:21251 msg = "postgres did not start"21252> raise RuntimeError(msg)21253E RuntimeError: postgres did not start2125421255nixbot/tests/support.py:319: RuntimeError21256_____________ ERROR at setup of test_api_log_toc_flat_log_fallback _____________21257[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142125821259request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>21260tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...atch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2126121262 @pytest.fixture(scope="module")21263 def postgres_dsn(21264 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory21265 ) -> Iterator[str]:21266 if shutil.which("initdb") is None:21267 pytest.skip("postgresql not available")21268 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")21269> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21270 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2127121272nixbot/tests/conftest.py:33: 21273_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21274/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21275 return next(self.gen)21276 ^^^^^^^^^^^^^^21277_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2127821279tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...atch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')21280dbname = 'web'2128121282 @contextlib.contextmanager21283 def ephemeral_postgres(21284 tmp_path_factory: pytest.TempPathFactory, dbname: str21285 ) -> Iterator[str]:21286 """Throwaway Postgres on a unix socket with migrations applied."""21287 datadir = tmp_path_factory.mktemp("pgdata")21288 sockdir = tmp_path_factory.mktemp("pgsock")21289 subprocess.run( # noqa: S60321290 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21291 check=True,21292 capture_output=True,21293 )21294 proc = subprocess.Popen( # noqa: S60321295 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21296 stdout=subprocess.DEVNULL,21297 stderr=subprocess.DEVNULL,21298 )21299 try:21300 deadline = time.monotonic() + 3021301 while (21302 subprocess.run( # noqa: S60321303 ["pg_isready", "-h", str(sockdir), "-U", "test"],21304 check=False,21305 capture_output=True,21306 ).returncode21307 != 021308 ):21309 # The socket appears before recovery finishes; createdb would21310 # fail with "the database system is starting up".21311 if time.monotonic() > deadline:21312 msg = "postgres did not start"21313> raise RuntimeError(msg)21314E RuntimeError: postgres did not start2131521316nixbot/tests/support.py:319: RuntimeError21317__________________ ERROR at setup of test_api_log_stream_json __________________21318[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142131921320request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>21321tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...atch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2132221323 @pytest.fixture(scope="module")21324 def postgres_dsn(21325 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory21326 ) -> Iterator[str]:21327 if shutil.which("initdb") is None:21328 pytest.skip("postgresql not available")21329 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")21330> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21331 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2133221333nixbot/tests/conftest.py:33: 21334_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21335/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21336 return next(self.gen)21337 ^^^^^^^^^^^^^^21338_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2133921340tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...atch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')21341dbname = 'web'2134221343 @contextlib.contextmanager21344 def ephemeral_postgres(21345 tmp_path_factory: pytest.TempPathFactory, dbname: str21346 ) -> Iterator[str]:21347 """Throwaway Postgres on a unix socket with migrations applied."""21348 datadir = tmp_path_factory.mktemp("pgdata")21349 sockdir = tmp_path_factory.mktemp("pgsock")21350 subprocess.run( # noqa: S60321351 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21352 check=True,21353 capture_output=True,21354 )21355 proc = subprocess.Popen( # noqa: S60321356 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21357 stdout=subprocess.DEVNULL,21358 stderr=subprocess.DEVNULL,21359 )21360 try:21361 deadline = time.monotonic() + 3021362 while (21363 subprocess.run( # noqa: S60321364 ["pg_isready", "-h", str(sockdir), "-U", "test"],21365 check=False,21366 capture_output=True,21367 ).returncode21368 != 021369 ):21370 # The socket appears before recovery finishes; createdb would21371 # fail with "the database system is starting up".21372 if time.monotonic() > deadline:21373 msg = "postgres did not start"21374> raise RuntimeError(msg)21375E RuntimeError: postgres did not start2137621377nixbot/tests/support.py:319: RuntimeError21378___________ ERROR at setup of test_effect_dep_cycle_fails_discovery ____________21379[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142138021381self = <Coroutine test_effect_dep_cycle_fails_discovery>2138221383 def setup(self) -> None:21384 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21385 if runner_fixture_id not in self.fixturenames:21386 self.fixturenames.append(runner_fixture_id)21387 # When loop factories are configured, resolve the loop factory21388 # fixture early so that a factory variant change cascades cache21389 # invalidation before any async fixture checks its cache.21390 hook_caller = self.config.hook.pytest_asyncio_loop_factories21391 if hook_caller.get_hookimpls():21392 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21393> return super().setup()21394 ^^^^^^^^^^^^^^^2139521396/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21397_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21398nixbot/tests/conftest.py:33: in postgres_dsn21399 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21400 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21401/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21402 return next(self.gen)21403 ^^^^^^^^^^^^^^21404_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2140521406tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...atch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21407dbname = 'orchestrator'2140821409 @contextlib.contextmanager21410 def ephemeral_postgres(21411 tmp_path_factory: pytest.TempPathFactory, dbname: str21412 ) -> Iterator[str]:21413 """Throwaway Postgres on a unix socket with migrations applied."""21414 datadir = tmp_path_factory.mktemp("pgdata")21415 sockdir = tmp_path_factory.mktemp("pgsock")21416 subprocess.run( # noqa: S60321417 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21418 check=True,21419 capture_output=True,21420 )21421 proc = subprocess.Popen( # noqa: S60321422 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21423 stdout=subprocess.DEVNULL,21424 stderr=subprocess.DEVNULL,21425 )21426 try:21427 deadline = time.monotonic() + 3021428 while (21429 subprocess.run( # noqa: S60321430 ["pg_isready", "-h", str(sockdir), "-U", "test"],21431 check=False,21432 capture_output=True,21433 ).returncode21434 != 021435 ):21436 # The socket appears before recovery finishes; createdb would21437 # fail with "the database system is starting up".21438 if time.monotonic() > deadline:21439 msg = "postgres did not start"21440> raise RuntimeError(msg)21441E RuntimeError: postgres did not start2144221443nixbot/tests/support.py:319: RuntimeError21444_______________ ERROR at setup of test_build_eval_stats_surface ________________21445[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142144621447request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>21448tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...atch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2144921450 @pytest.fixture(scope="module")21451 def postgres_dsn(21452 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory21453 ) -> Iterator[str]:21454 if shutil.which("initdb") is None:21455 pytest.skip("postgresql not available")21456 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")21457> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21458 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2145921460nixbot/tests/conftest.py:33: 21461_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21462/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21463 return next(self.gen)21464 ^^^^^^^^^^^^^^21465_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2146621467tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...atch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')21468dbname = 'web'2146921470 @contextlib.contextmanager21471 def ephemeral_postgres(21472 tmp_path_factory: pytest.TempPathFactory, dbname: str21473 ) -> Iterator[str]:21474 """Throwaway Postgres on a unix socket with migrations applied."""21475 datadir = tmp_path_factory.mktemp("pgdata")21476 sockdir = tmp_path_factory.mktemp("pgsock")21477 subprocess.run( # noqa: S60321478 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21479 check=True,21480 capture_output=True,21481 )21482 proc = subprocess.Popen( # noqa: S60321483 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21484 stdout=subprocess.DEVNULL,21485 stderr=subprocess.DEVNULL,21486 )21487 try:21488 deadline = time.monotonic() + 3021489 while (21490 subprocess.run( # noqa: S60321491 ["pg_isready", "-h", str(sockdir), "-U", "test"],21492 check=False,21493 capture_output=True,21494 ).returncode21495 != 021496 ):21497 # The socket appears before recovery finishes; createdb would21498 # fail with "the database system is starting up".21499 if time.monotonic() > deadline:21500 msg = "postgres did not start"21501> raise RuntimeError(msg)21502E RuntimeError: postgres did not start2150321504nixbot/tests/support.py:319: RuntimeError21505_________ ERROR at setup of test_failed_effect_reports_failure_status __________21506[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142150721508self = <Coroutine test_failed_effect_reports_failure_status>2150921510 def setup(self) -> None:21511 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21512 if runner_fixture_id not in self.fixturenames:21513 self.fixturenames.append(runner_fixture_id)21514 # When loop factories are configured, resolve the loop factory21515 # fixture early so that a factory variant change cascades cache21516 # invalidation before any async fixture checks its cache.21517 hook_caller = self.config.hook.pytest_asyncio_loop_factories21518 if hook_caller.get_hookimpls():21519 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21520> return super().setup()21521 ^^^^^^^^^^^^^^^2152221523/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21524_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21525nixbot/tests/conftest.py:33: in postgres_dsn21526 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21527 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21528/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21529 return next(self.gen)21530 ^^^^^^^^^^^^^^21531_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2153221533tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...atch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21534dbname = 'orchestrator'2153521536 @contextlib.contextmanager21537 def ephemeral_postgres(21538 tmp_path_factory: pytest.TempPathFactory, dbname: str21539 ) -> Iterator[str]:21540 """Throwaway Postgres on a unix socket with migrations applied."""21541 datadir = tmp_path_factory.mktemp("pgdata")21542 sockdir = tmp_path_factory.mktemp("pgsock")21543 subprocess.run( # noqa: S60321544 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21545 check=True,21546 capture_output=True,21547 )21548 proc = subprocess.Popen( # noqa: S60321549 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21550 stdout=subprocess.DEVNULL,21551 stderr=subprocess.DEVNULL,21552 )21553 try:21554 deadline = time.monotonic() + 3021555 while (21556 subprocess.run( # noqa: S60321557 ["pg_isready", "-h", str(sockdir), "-U", "test"],21558 check=False,21559 capture_output=True,21560 ).returncode21561 != 021562 ):21563 # The socket appears before recovery finishes; createdb would21564 # fail with "the database system is starting up".21565 if time.monotonic() > deadline:21566 msg = "postgres did not start"21567> raise RuntimeError(msg)21568E RuntimeError: postgres did not start2156921570nixbot/tests/support.py:319: RuntimeError21571________ ERROR at setup of test_post_process_error_does_not_wedge_build ________21572[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142157321574self = <Coroutine test_post_process_error_does_not_wedge_build>2157521576 def setup(self) -> None:21577 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21578 if runner_fixture_id not in self.fixturenames:21579 self.fixturenames.append(runner_fixture_id)21580 # When loop factories are configured, resolve the loop factory21581 # fixture early so that a factory variant change cascades cache21582 # invalidation before any async fixture checks its cache.21583 hook_caller = self.config.hook.pytest_asyncio_loop_factories21584 if hook_caller.get_hookimpls():21585 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21586> return super().setup()21587 ^^^^^^^^^^^^^^^2158821589/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21590_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21591nixbot/tests/conftest.py:33: in postgres_dsn21592 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21593 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21594/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21595 return next(self.gen)21596 ^^^^^^^^^^^^^^21597_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2159821599tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...atch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21600dbname = 'orchestrator'2160121602 @contextlib.contextmanager21603 def ephemeral_postgres(21604 tmp_path_factory: pytest.TempPathFactory, dbname: str21605 ) -> Iterator[str]:21606 """Throwaway Postgres on a unix socket with migrations applied."""21607 datadir = tmp_path_factory.mktemp("pgdata")21608 sockdir = tmp_path_factory.mktemp("pgsock")21609 subprocess.run( # noqa: S60321610 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21611 check=True,21612 capture_output=True,21613 )21614 proc = subprocess.Popen( # noqa: S60321615 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21616 stdout=subprocess.DEVNULL,21617 stderr=subprocess.DEVNULL,21618 )21619 try:21620 deadline = time.monotonic() + 3021621 while (21622 subprocess.run( # noqa: S60321623 ["pg_isready", "-h", str(sockdir), "-U", "test"],21624 check=False,21625 capture_output=True,21626 ).returncode21627 != 021628 ):21629 # The socket appears before recovery finishes; createdb would21630 # fail with "the database system is starting up".21631 if time.monotonic() > deadline:21632 msg = "postgres did not start"21633> raise RuntimeError(msg)21634E RuntimeError: postgres did not start2163521636nixbot/tests/support.py:319: RuntimeError21637_______ ERROR at setup of test_unexpected_eval_path_error_settles_build ________21638[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142163921640self = <Coroutine test_unexpected_eval_path_error_settles_build>2164121642 def setup(self) -> None:21643 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21644 if runner_fixture_id not in self.fixturenames:21645 self.fixturenames.append(runner_fixture_id)21646 # When loop factories are configured, resolve the loop factory21647 # fixture early so that a factory variant change cascades cache21648 # invalidation before any async fixture checks its cache.21649 hook_caller = self.config.hook.pytest_asyncio_loop_factories21650 if hook_caller.get_hookimpls():21651 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21652> return super().setup()21653 ^^^^^^^^^^^^^^^2165421655/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21656_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21657nixbot/tests/conftest.py:33: in postgres_dsn21658 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21659 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21660/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21661 return next(self.gen)21662 ^^^^^^^^^^^^^^21663_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2166421665tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...atch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21666dbname = 'orchestrator'2166721668 @contextlib.contextmanager21669 def ephemeral_postgres(21670 tmp_path_factory: pytest.TempPathFactory, dbname: str21671 ) -> Iterator[str]:21672 """Throwaway Postgres on a unix socket with migrations applied."""21673 datadir = tmp_path_factory.mktemp("pgdata")21674 sockdir = tmp_path_factory.mktemp("pgsock")21675 subprocess.run( # noqa: S60321676 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21677 check=True,21678 capture_output=True,21679 )21680 proc = subprocess.Popen( # noqa: S60321681 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21682 stdout=subprocess.DEVNULL,21683 stderr=subprocess.DEVNULL,21684 )21685 try:21686 deadline = time.monotonic() + 3021687 while (21688 subprocess.run( # noqa: S60321689 ["pg_isready", "-h", str(sockdir), "-U", "test"],21690 check=False,21691 capture_output=True,21692 ).returncode21693 != 021694 ):21695 # The socket appears before recovery finishes; createdb would21696 # fail with "the database system is starting up".21697 if time.monotonic() > deadline:21698 msg = "postgres did not start"21699> raise RuntimeError(msg)21700E RuntimeError: postgres did not start2170121702nixbot/tests/support.py:319: RuntimeError21703____ ERROR at setup of test_reuse_empty_succeeded_build_posts_eval_success _____21704[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142170521706self = <Coroutine test_reuse_empty_succeeded_build_posts_eval_success>2170721708 def setup(self) -> None:21709 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21710 if runner_fixture_id not in self.fixturenames:21711 self.fixturenames.append(runner_fixture_id)21712 # When loop factories are configured, resolve the loop factory21713 # fixture early so that a factory variant change cascades cache21714 # invalidation before any async fixture checks its cache.21715 hook_caller = self.config.hook.pytest_asyncio_loop_factories21716 if hook_caller.get_hookimpls():21717 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21718> return super().setup()21719 ^^^^^^^^^^^^^^^2172021721/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21722_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21723nixbot/tests/conftest.py:33: in postgres_dsn21724 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21725 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21726/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21727 return next(self.gen)21728 ^^^^^^^^^^^^^^21729_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2173021731tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...atch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21732dbname = 'orchestrator'2173321734 @contextlib.contextmanager21735 def ephemeral_postgres(21736 tmp_path_factory: pytest.TempPathFactory, dbname: str21737 ) -> Iterator[str]:21738 """Throwaway Postgres on a unix socket with migrations applied."""21739 datadir = tmp_path_factory.mktemp("pgdata")21740 sockdir = tmp_path_factory.mktemp("pgsock")21741 subprocess.run( # noqa: S60321742 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21743 check=True,21744 capture_output=True,21745 )21746 proc = subprocess.Popen( # noqa: S60321747 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21748 stdout=subprocess.DEVNULL,21749 stderr=subprocess.DEVNULL,21750 )21751 try:21752 deadline = time.monotonic() + 3021753 while (21754 subprocess.run( # noqa: S60321755 ["pg_isready", "-h", str(sockdir), "-U", "test"],21756 check=False,21757 capture_output=True,21758 ).returncode21759 != 021760 ):21761 # The socket appears before recovery finishes; createdb would21762 # fail with "the database system is starting up".21763 if time.monotonic() > deadline:21764 msg = "postgres did not start"21765> raise RuntimeError(msg)21766E RuntimeError: postgres did not start2176721768nixbot/tests/support.py:319: RuntimeError21769__ ERROR at setup of test_stale_event_reusing_old_build_does_not_cancel_newer __21770[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142177121772self = <Coroutine test_stale_event_reusing_old_build_does_not_cancel_newer>2177321774 def setup(self) -> None:21775 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21776 if runner_fixture_id not in self.fixturenames:21777 self.fixturenames.append(runner_fixture_id)21778 # When loop factories are configured, resolve the loop factory21779 # fixture early so that a factory variant change cascades cache21780 # invalidation before any async fixture checks its cache.21781 hook_caller = self.config.hook.pytest_asyncio_loop_factories21782 if hook_caller.get_hookimpls():21783 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21784> return super().setup()21785 ^^^^^^^^^^^^^^^2178621787/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21788_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21789nixbot/tests/conftest.py:33: in postgres_dsn21790 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21791 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21792/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21793 return next(self.gen)21794 ^^^^^^^^^^^^^^21795_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2179621797tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...atch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21798dbname = 'orchestrator'2179921800 @contextlib.contextmanager21801 def ephemeral_postgres(21802 tmp_path_factory: pytest.TempPathFactory, dbname: str21803 ) -> Iterator[str]:21804 """Throwaway Postgres on a unix socket with migrations applied."""21805 datadir = tmp_path_factory.mktemp("pgdata")21806 sockdir = tmp_path_factory.mktemp("pgsock")21807 subprocess.run( # noqa: S60321808 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21809 check=True,21810 capture_output=True,21811 )21812 proc = subprocess.Popen( # noqa: S60321813 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21814 stdout=subprocess.DEVNULL,21815 stderr=subprocess.DEVNULL,21816 )21817 try:21818 deadline = time.monotonic() + 3021819 while (21820 subprocess.run( # noqa: S60321821 ["pg_isready", "-h", str(sockdir), "-U", "test"],21822 check=False,21823 capture_output=True,21824 ).returncode21825 != 021826 ):21827 # The socket appears before recovery finishes; createdb would21828 # fail with "the database system is starting up".21829 if time.monotonic() > deadline:21830 msg = "postgres did not start"21831> raise RuntimeError(msg)21832E RuntimeError: postgres did not start2183321834nixbot/tests/support.py:319: RuntimeError21835______ ERROR at setup of test_reuse_for_default_branch_push_runs_effects _______21836[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142183721838self = <Coroutine test_reuse_for_default_branch_push_runs_effects>2183921840 def setup(self) -> None:21841 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21842 if runner_fixture_id not in self.fixturenames:21843 self.fixturenames.append(runner_fixture_id)21844 # When loop factories are configured, resolve the loop factory21845 # fixture early so that a factory variant change cascades cache21846 # invalidation before any async fixture checks its cache.21847 hook_caller = self.config.hook.pytest_asyncio_loop_factories21848 if hook_caller.get_hookimpls():21849 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21850> return super().setup()21851 ^^^^^^^^^^^^^^^2185221853/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21854_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21855nixbot/tests/conftest.py:33: in postgres_dsn21856 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21857 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21858/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21859 return next(self.gen)21860 ^^^^^^^^^^^^^^21861_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2186221863tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...atch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21864dbname = 'orchestrator'2186521866 @contextlib.contextmanager21867 def ephemeral_postgres(21868 tmp_path_factory: pytest.TempPathFactory, dbname: str21869 ) -> Iterator[str]:21870 """Throwaway Postgres on a unix socket with migrations applied."""21871 datadir = tmp_path_factory.mktemp("pgdata")21872 sockdir = tmp_path_factory.mktemp("pgsock")21873 subprocess.run( # noqa: S60321874 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21875 check=True,21876 capture_output=True,21877 )21878 proc = subprocess.Popen( # noqa: S60321879 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21880 stdout=subprocess.DEVNULL,21881 stderr=subprocess.DEVNULL,21882 )21883 try:21884 deadline = time.monotonic() + 3021885 while (21886 subprocess.run( # noqa: S60321887 ["pg_isready", "-h", str(sockdir), "-U", "test"],21888 check=False,21889 capture_output=True,21890 ).returncode21891 != 021892 ):21893 # The socket appears before recovery finishes; createdb would21894 # fail with "the database system is starting up".21895 if time.monotonic() > deadline:21896 msg = "postgres did not start"21897> raise RuntimeError(msg)21898E RuntimeError: postgres did not start2189921900nixbot/tests/support.py:319: RuntimeError21901_____ ERROR at setup of test_push_reusing_pr_build_delivers_build_finished _____21902[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142190321904self = <Coroutine test_push_reusing_pr_build_delivers_build_finished>2190521906 def setup(self) -> None:21907 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21908 if runner_fixture_id not in self.fixturenames:21909 self.fixturenames.append(runner_fixture_id)21910 # When loop factories are configured, resolve the loop factory21911 # fixture early so that a factory variant change cascades cache21912 # invalidation before any async fixture checks its cache.21913 hook_caller = self.config.hook.pytest_asyncio_loop_factories21914 if hook_caller.get_hookimpls():21915 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21916> return super().setup()21917 ^^^^^^^^^^^^^^^2191821919/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21920_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21921nixbot/tests/conftest.py:33: in postgres_dsn21922 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21923 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21924/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21925 return next(self.gen)21926 ^^^^^^^^^^^^^^21927_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2192821929tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...atch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21930dbname = 'orchestrator'2193121932 @contextlib.contextmanager21933 def ephemeral_postgres(21934 tmp_path_factory: pytest.TempPathFactory, dbname: str21935 ) -> Iterator[str]:21936 """Throwaway Postgres on a unix socket with migrations applied."""21937 datadir = tmp_path_factory.mktemp("pgdata")21938 sockdir = tmp_path_factory.mktemp("pgsock")21939 subprocess.run( # noqa: S60321940 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21941 check=True,21942 capture_output=True,21943 )21944 proc = subprocess.Popen( # noqa: S60321945 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21946 stdout=subprocess.DEVNULL,21947 stderr=subprocess.DEVNULL,21948 )21949 try:21950 deadline = time.monotonic() + 3021951 while (21952 subprocess.run( # noqa: S60321953 ["pg_isready", "-h", str(sockdir), "-U", "test"],21954 check=False,21955 capture_output=True,21956 ).returncode21957 != 021958 ):21959 # The socket appears before recovery finishes; createdb would21960 # fail with "the database system is starting up".21961 if time.monotonic() > deadline:21962 msg = "postgres did not start"21963> raise RuntimeError(msg)21964E RuntimeError: postgres did not start2196521966nixbot/tests/support.py:319: RuntimeError21967__ ERROR at setup of test_tag_reusing_deployed_build_delivers_its_own_effects __21968[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142196921970self = <Coroutine test_tag_reusing_deployed_build_delivers_its_own_effects>2197121972 def setup(self) -> None:21973 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21974 if runner_fixture_id not in self.fixturenames:21975 self.fixturenames.append(runner_fixture_id)21976 # When loop factories are configured, resolve the loop factory21977 # fixture early so that a factory variant change cascades cache21978 # invalidation before any async fixture checks its cache.21979 hook_caller = self.config.hook.pytest_asyncio_loop_factories21980 if hook_caller.get_hookimpls():21981 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21982> return super().setup()21983 ^^^^^^^^^^^^^^^2198421985/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21986_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21987nixbot/tests/conftest.py:33: in postgres_dsn21988 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21989 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21990/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21991 return next(self.gen)21992 ^^^^^^^^^^^^^^21993_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2199421995tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...atch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21996dbname = 'orchestrator'2199721998 @contextlib.contextmanager21999 def ephemeral_postgres(22000 tmp_path_factory: pytest.TempPathFactory, dbname: str22001 ) -> Iterator[str]:22002 """Throwaway Postgres on a unix socket with migrations applied."""22003 datadir = tmp_path_factory.mktemp("pgdata")22004 sockdir = tmp_path_factory.mktemp("pgsock")22005 subprocess.run( # noqa: S60322006 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22007 check=True,22008 capture_output=True,22009 )22010 proc = subprocess.Popen( # noqa: S60322011 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22012 stdout=subprocess.DEVNULL,22013 stderr=subprocess.DEVNULL,22014 )22015 try:22016 deadline = time.monotonic() + 3022017 while (22018 subprocess.run( # noqa: S60322019 ["pg_isready", "-h", str(sockdir), "-U", "test"],22020 check=False,22021 capture_output=True,22022 ).returncode22023 != 022024 ):22025 # The socket appears before recovery finishes; createdb would22026 # fail with "the database system is starting up".22027 if time.monotonic() > deadline:22028 msg = "postgres did not start"22029> raise RuntimeError(msg)22030E RuntimeError: postgres did not start2203122032nixbot/tests/support.py:319: RuntimeError22033__ ERROR at setup of test_tag_attached_to_in_flight_build_delivers_on_success __22034[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142203522036self = <Coroutine test_tag_attached_to_in_flight_build_delivers_on_success>2203722038 def setup(self) -> None:22039 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22040 if runner_fixture_id not in self.fixturenames:22041 self.fixturenames.append(runner_fixture_id)22042 # When loop factories are configured, resolve the loop factory22043 # fixture early so that a factory variant change cascades cache22044 # invalidation before any async fixture checks its cache.22045 hook_caller = self.config.hook.pytest_asyncio_loop_factories22046 if hook_caller.get_hookimpls():22047 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22048> return super().setup()22049 ^^^^^^^^^^^^^^^2205022051/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22052_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22053nixbot/tests/conftest.py:33: in postgres_dsn22054 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22055 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22056/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22057 return next(self.gen)22058 ^^^^^^^^^^^^^^22059_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2206022061tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...atch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22062dbname = 'orchestrator'2206322064 @contextlib.contextmanager22065 def ephemeral_postgres(22066 tmp_path_factory: pytest.TempPathFactory, dbname: str22067 ) -> Iterator[str]:22068 """Throwaway Postgres on a unix socket with migrations applied."""22069 datadir = tmp_path_factory.mktemp("pgdata")22070 sockdir = tmp_path_factory.mktemp("pgsock")22071 subprocess.run( # noqa: S60322072 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22073 check=True,22074 capture_output=True,22075 )22076 proc = subprocess.Popen( # noqa: S60322077 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22078 stdout=subprocess.DEVNULL,22079 stderr=subprocess.DEVNULL,22080 )22081 try:22082 deadline = time.monotonic() + 3022083 while (22084 subprocess.run( # noqa: S60322085 ["pg_isready", "-h", str(sockdir), "-U", "test"],22086 check=False,22087 capture_output=True,22088 ).returncode22089 != 022090 ):22091 # The socket appears before recovery finishes; createdb would22092 # fail with "the database system is starting up".22093 if time.monotonic() > deadline:22094 msg = "postgres did not start"22095> raise RuntimeError(msg)22096E RuntimeError: postgres did not start2209722098nixbot/tests/support.py:319: RuntimeError22099______ ERROR at setup of test_restart_of_gated_build_settles_effect_rows _______22100[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142210122102self = <Coroutine test_restart_of_gated_build_settles_effect_rows>2210322104 def setup(self) -> None:22105 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22106 if runner_fixture_id not in self.fixturenames:22107 self.fixturenames.append(runner_fixture_id)22108 # When loop factories are configured, resolve the loop factory22109 # fixture early so that a factory variant change cascades cache22110 # invalidation before any async fixture checks its cache.22111 hook_caller = self.config.hook.pytest_asyncio_loop_factories22112 if hook_caller.get_hookimpls():22113 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22114> return super().setup()22115 ^^^^^^^^^^^^^^^2211622117/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22118_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22119nixbot/tests/conftest.py:33: in postgres_dsn22120 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22121 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22122/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22123 return next(self.gen)22124 ^^^^^^^^^^^^^^22125_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2212622127tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...atch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22128dbname = 'orchestrator'2212922130 @contextlib.contextmanager22131 def ephemeral_postgres(22132 tmp_path_factory: pytest.TempPathFactory, dbname: str22133 ) -> Iterator[str]:22134 """Throwaway Postgres on a unix socket with migrations applied."""22135 datadir = tmp_path_factory.mktemp("pgdata")22136 sockdir = tmp_path_factory.mktemp("pgsock")22137 subprocess.run( # noqa: S60322138 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22139 check=True,22140 capture_output=True,22141 )22142 proc = subprocess.Popen( # noqa: S60322143 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22144 stdout=subprocess.DEVNULL,22145 stderr=subprocess.DEVNULL,22146 )22147 try:22148 deadline = time.monotonic() + 3022149 while (22150 subprocess.run( # noqa: S60322151 ["pg_isready", "-h", str(sockdir), "-U", "test"],22152 check=False,22153 capture_output=True,22154 ).returncode22155 != 022156 ):22157 # The socket appears before recovery finishes; createdb would22158 # fail with "the database system is starting up".22159 if time.monotonic() > deadline:22160 msg = "postgres did not start"22161> raise RuntimeError(msg)22162E RuntimeError: postgres did not start2216322164nixbot/tests/support.py:319: RuntimeError22165________ ERROR at setup of test_restart_build_drops_queued_effect_items ________22166[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142216722168self = <Coroutine test_restart_build_drops_queued_effect_items>2216922170 def setup(self) -> None:22171 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22172 if runner_fixture_id not in self.fixturenames:22173 self.fixturenames.append(runner_fixture_id)22174 # When loop factories are configured, resolve the loop factory22175 # fixture early so that a factory variant change cascades cache22176 # invalidation before any async fixture checks its cache.22177 hook_caller = self.config.hook.pytest_asyncio_loop_factories22178 if hook_caller.get_hookimpls():22179 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22180> return super().setup()22181 ^^^^^^^^^^^^^^^2218222183/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22184_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22185nixbot/tests/conftest.py:33: in postgres_dsn22186 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22187 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22188/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22189 return next(self.gen)22190 ^^^^^^^^^^^^^^22191_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2219222193tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...atch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22194dbname = 'orchestrator'2219522196 @contextlib.contextmanager22197 def ephemeral_postgres(22198 tmp_path_factory: pytest.TempPathFactory, dbname: str22199 ) -> Iterator[str]:22200 """Throwaway Postgres on a unix socket with migrations applied."""22201 datadir = tmp_path_factory.mktemp("pgdata")22202 sockdir = tmp_path_factory.mktemp("pgsock")22203 subprocess.run( # noqa: S60322204 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22205 check=True,22206 capture_output=True,22207 )22208 proc = subprocess.Popen( # noqa: S60322209 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22210 stdout=subprocess.DEVNULL,22211 stderr=subprocess.DEVNULL,22212 )22213 try:22214 deadline = time.monotonic() + 3022215 while (22216 subprocess.run( # noqa: S60322217 ["pg_isready", "-h", str(sockdir), "-U", "test"],22218 check=False,22219 capture_output=True,22220 ).returncode22221 != 022222 ):22223 # The socket appears before recovery finishes; createdb would22224 # fail with "the database system is starting up".22225 if time.monotonic() > deadline:22226 msg = "postgres did not start"22227> raise RuntimeError(msg)22228E RuntimeError: postgres did not start2222922230nixbot/tests/support.py:319: RuntimeError22231___ ERROR at setup of test_restart_effects_after_pr_attach_keeps_effects_ref ___22232[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142223322234self = <Coroutine test_restart_effects_after_pr_attach_keeps_effects_ref>2223522236 def setup(self) -> None:22237 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22238 if runner_fixture_id not in self.fixturenames:22239 self.fixturenames.append(runner_fixture_id)22240 # When loop factories are configured, resolve the loop factory22241 # fixture early so that a factory variant change cascades cache22242 # invalidation before any async fixture checks its cache.22243 hook_caller = self.config.hook.pytest_asyncio_loop_factories22244 if hook_caller.get_hookimpls():22245 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22246> return super().setup()22247 ^^^^^^^^^^^^^^^2224822249/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22250_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22251nixbot/tests/conftest.py:33: in postgres_dsn22252 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22253 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22254/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22255 return next(self.gen)22256 ^^^^^^^^^^^^^^22257_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2225822259tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...atch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22260dbname = 'orchestrator'2226122262 @contextlib.contextmanager22263 def ephemeral_postgres(22264 tmp_path_factory: pytest.TempPathFactory, dbname: str22265 ) -> Iterator[str]:22266 """Throwaway Postgres on a unix socket with migrations applied."""22267 datadir = tmp_path_factory.mktemp("pgdata")22268 sockdir = tmp_path_factory.mktemp("pgsock")22269 subprocess.run( # noqa: S60322270 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22271 check=True,22272 capture_output=True,22273 )22274 proc = subprocess.Popen( # noqa: S60322275 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22276 stdout=subprocess.DEVNULL,22277 stderr=subprocess.DEVNULL,22278 )22279 try:22280 deadline = time.monotonic() + 3022281 while (22282 subprocess.run( # noqa: S60322283 ["pg_isready", "-h", str(sockdir), "-U", "test"],22284 check=False,22285 capture_output=True,22286 ).returncode22287 != 022288 ):22289 # The socket appears before recovery finishes; createdb would22290 # fail with "the database system is starting up".22291 if time.monotonic() > deadline:22292 msg = "postgres did not start"22293> raise RuntimeError(msg)22294E RuntimeError: postgres did not start2229522296nixbot/tests/support.py:319: RuntimeError22297_______ ERROR at setup of test_gated_restart_then_allowed_reuse_deploys ________22298[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142229922300self = <Coroutine test_gated_restart_then_allowed_reuse_deploys>2230122302 def setup(self) -> None:22303 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22304 if runner_fixture_id not in self.fixturenames:22305 self.fixturenames.append(runner_fixture_id)22306 # When loop factories are configured, resolve the loop factory22307 # fixture early so that a factory variant change cascades cache22308 # invalidation before any async fixture checks its cache.22309 hook_caller = self.config.hook.pytest_asyncio_loop_factories22310 if hook_caller.get_hookimpls():22311 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22312> return super().setup()22313 ^^^^^^^^^^^^^^^2231422315/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22316_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22317nixbot/tests/conftest.py:33: in postgres_dsn22318 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22319 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22320/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22321 return next(self.gen)22322 ^^^^^^^^^^^^^^22323_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2232422325tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...atch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22326dbname = 'orchestrator'2232722328 @contextlib.contextmanager22329 def ephemeral_postgres(22330 tmp_path_factory: pytest.TempPathFactory, dbname: str22331 ) -> Iterator[str]:22332 """Throwaway Postgres on a unix socket with migrations applied."""22333 datadir = tmp_path_factory.mktemp("pgdata")22334 sockdir = tmp_path_factory.mktemp("pgsock")22335 subprocess.run( # noqa: S60322336 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22337 check=True,22338 capture_output=True,22339 )22340 proc = subprocess.Popen( # noqa: S60322341 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22342 stdout=subprocess.DEVNULL,22343 stderr=subprocess.DEVNULL,22344 )22345 try:22346 deadline = time.monotonic() + 3022347 while (22348 subprocess.run( # noqa: S60322349 ["pg_isready", "-h", str(sockdir), "-U", "test"],22350 check=False,22351 capture_output=True,22352 ).returncode22353 != 022354 ):22355 # The socket appears before recovery finishes; createdb would22356 # fail with "the database system is starting up".22357 if time.monotonic() > deadline:22358 msg = "postgres did not start"22359> raise RuntimeError(msg)22360E RuntimeError: postgres did not start2236122362nixbot/tests/support.py:319: RuntimeError22363_____ ERROR at setup of test_rerun_single_effect_takes_pending_dependents ______22364[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142236522366self = <Coroutine test_rerun_single_effect_takes_pending_dependents>2236722368 def setup(self) -> None:22369 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22370 if runner_fixture_id not in self.fixturenames:22371 self.fixturenames.append(runner_fixture_id)22372 # When loop factories are configured, resolve the loop factory22373 # fixture early so that a factory variant change cascades cache22374 # invalidation before any async fixture checks its cache.22375 hook_caller = self.config.hook.pytest_asyncio_loop_factories22376 if hook_caller.get_hookimpls():22377 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22378> return super().setup()22379 ^^^^^^^^^^^^^^^2238022381/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22382_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22383nixbot/tests/conftest.py:33: in postgres_dsn22384 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22385 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22386/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22387 return next(self.gen)22388 ^^^^^^^^^^^^^^22389_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2239022391tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...atch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22392dbname = 'orchestrator'2239322394 @contextlib.contextmanager22395 def ephemeral_postgres(22396 tmp_path_factory: pytest.TempPathFactory, dbname: str22397 ) -> Iterator[str]:22398 """Throwaway Postgres on a unix socket with migrations applied."""22399 datadir = tmp_path_factory.mktemp("pgdata")22400 sockdir = tmp_path_factory.mktemp("pgsock")22401 subprocess.run( # noqa: S60322402 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22403 check=True,22404 capture_output=True,22405 )22406 proc = subprocess.Popen( # noqa: S60322407 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22408 stdout=subprocess.DEVNULL,22409 stderr=subprocess.DEVNULL,22410 )22411 try:22412 deadline = time.monotonic() + 3022413 while (22414 subprocess.run( # noqa: S60322415 ["pg_isready", "-h", str(sockdir), "-U", "test"],22416 check=False,22417 capture_output=True,22418 ).returncode22419 != 022420 ):22421 # The socket appears before recovery finishes; createdb would22422 # fail with "the database system is starting up".22423 if time.monotonic() > deadline:22424 msg = "postgres did not start"22425> raise RuntimeError(msg)22426E RuntimeError: postgres did not start2242722428nixbot/tests/support.py:319: RuntimeError22429______ ERROR at setup of test_reuse_replays_effect_statuses_to_new_commit ______22430[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142243122432self = <Coroutine test_reuse_replays_effect_statuses_to_new_commit>2243322434 def setup(self) -> None:22435 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22436 if runner_fixture_id not in self.fixturenames:22437 self.fixturenames.append(runner_fixture_id)22438 # When loop factories are configured, resolve the loop factory22439 # fixture early so that a factory variant change cascades cache22440 # invalidation before any async fixture checks its cache.22441 hook_caller = self.config.hook.pytest_asyncio_loop_factories22442 if hook_caller.get_hookimpls():22443 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22444> return super().setup()22445 ^^^^^^^^^^^^^^^2244622447/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22448_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22449nixbot/tests/conftest.py:33: in postgres_dsn22450 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22451 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22452/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22453 return next(self.gen)22454 ^^^^^^^^^^^^^^22455_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2245622457tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...atch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22458dbname = 'orchestrator'2245922460 @contextlib.contextmanager22461 def ephemeral_postgres(22462 tmp_path_factory: pytest.TempPathFactory, dbname: str22463 ) -> Iterator[str]:22464 """Throwaway Postgres on a unix socket with migrations applied."""22465 datadir = tmp_path_factory.mktemp("pgdata")22466 sockdir = tmp_path_factory.mktemp("pgsock")22467 subprocess.run( # noqa: S60322468 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22469 check=True,22470 capture_output=True,22471 )22472 proc = subprocess.Popen( # noqa: S60322473 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22474 stdout=subprocess.DEVNULL,22475 stderr=subprocess.DEVNULL,22476 )22477 try:22478 deadline = time.monotonic() + 3022479 while (22480 subprocess.run( # noqa: S60322481 ["pg_isready", "-h", str(sockdir), "-U", "test"],22482 check=False,22483 capture_output=True,22484 ).returncode22485 != 022486 ):22487 # The socket appears before recovery finishes; createdb would22488 # fail with "the database system is starting up".22489 if time.monotonic() > deadline:22490 msg = "postgres did not start"22491> raise RuntimeError(msg)22492E RuntimeError: postgres did not start2249322494nixbot/tests/support.py:319: RuntimeError22495____ ERROR at setup of test_attach_to_already_terminal_build_replays_status ____22496[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142249722498self = <Coroutine test_attach_to_already_terminal_build_replays_status>2249922500 def setup(self) -> None:22501 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22502 if runner_fixture_id not in self.fixturenames:22503 self.fixturenames.append(runner_fixture_id)22504 # When loop factories are configured, resolve the loop factory22505 # fixture early so that a factory variant change cascades cache22506 # invalidation before any async fixture checks its cache.22507 hook_caller = self.config.hook.pytest_asyncio_loop_factories22508 if hook_caller.get_hookimpls():22509 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22510> return super().setup()22511 ^^^^^^^^^^^^^^^2251222513/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22514_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22515nixbot/tests/conftest.py:33: in postgres_dsn22516 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22517 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22518/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22519 return next(self.gen)22520 ^^^^^^^^^^^^^^22521_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2252222523tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...atch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22524dbname = 'orchestrator'2252522526 @contextlib.contextmanager22527 def ephemeral_postgres(22528 tmp_path_factory: pytest.TempPathFactory, dbname: str22529 ) -> Iterator[str]:22530 """Throwaway Postgres on a unix socket with migrations applied."""22531 datadir = tmp_path_factory.mktemp("pgdata")22532 sockdir = tmp_path_factory.mktemp("pgsock")22533 subprocess.run( # noqa: S60322534 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22535 check=True,22536 capture_output=True,22537 )22538 proc = subprocess.Popen( # noqa: S60322539 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22540 stdout=subprocess.DEVNULL,22541 stderr=subprocess.DEVNULL,22542 )22543 try:22544 deadline = time.monotonic() + 3022545 while (22546 subprocess.run( # noqa: S60322547 ["pg_isready", "-h", str(sockdir), "-U", "test"],22548 check=False,22549 capture_output=True,22550 ).returncode22551 != 022552 ):22553 # The socket appears before recovery finishes; createdb would22554 # fail with "the database system is starting up".22555 if time.monotonic() > deadline:22556 msg = "postgres did not start"22557> raise RuntimeError(msg)22558E RuntimeError: postgres did not start2255922560nixbot/tests/support.py:319: RuntimeError22561___ ERROR at setup of test_cancel_during_eval_resolves_linked_eval_contexts ____22562[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142256322564self = <Coroutine test_cancel_during_eval_resolves_linked_eval_contexts>2256522566 def setup(self) -> None:22567 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22568 if runner_fixture_id not in self.fixturenames:22569 self.fixturenames.append(runner_fixture_id)22570 # When loop factories are configured, resolve the loop factory22571 # fixture early so that a factory variant change cascades cache22572 # invalidation before any async fixture checks its cache.22573 hook_caller = self.config.hook.pytest_asyncio_loop_factories22574 if hook_caller.get_hookimpls():22575 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22576> return super().setup()22577 ^^^^^^^^^^^^^^^2257822579/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22580_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22581nixbot/tests/conftest.py:33: in postgres_dsn22582 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22583 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22584/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22585 return next(self.gen)22586 ^^^^^^^^^^^^^^22587_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2258822589tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...atch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22590dbname = 'orchestrator'2259122592 @contextlib.contextmanager22593 def ephemeral_postgres(22594 tmp_path_factory: pytest.TempPathFactory, dbname: str22595 ) -> Iterator[str]:22596 """Throwaway Postgres on a unix socket with migrations applied."""22597 datadir = tmp_path_factory.mktemp("pgdata")22598 sockdir = tmp_path_factory.mktemp("pgsock")22599 subprocess.run( # noqa: S60322600 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22601 check=True,22602 capture_output=True,22603 )22604 proc = subprocess.Popen( # noqa: S60322605 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22606 stdout=subprocess.DEVNULL,22607 stderr=subprocess.DEVNULL,22608 )22609 try:22610 deadline = time.monotonic() + 3022611 while (22612 subprocess.run( # noqa: S60322613 ["pg_isready", "-h", str(sockdir), "-U", "test"],22614 check=False,22615 capture_output=True,22616 ).returncode22617 != 022618 ):22619 # The socket appears before recovery finishes; createdb would22620 # fail with "the database system is starting up".22621 if time.monotonic() > deadline:22622 msg = "postgres did not start"22623> raise RuntimeError(msg)22624E RuntimeError: postgres did not start2262522626nixbot/tests/support.py:319: RuntimeError22627____ ERROR at setup of test_effect_log_does_not_collide_with_attribute_log _____22628[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142262922630self = <Coroutine test_effect_log_does_not_collide_with_attribute_log>2263122632 def setup(self) -> None:22633 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22634 if runner_fixture_id not in self.fixturenames:22635 self.fixturenames.append(runner_fixture_id)22636 # When loop factories are configured, resolve the loop factory22637 # fixture early so that a factory variant change cascades cache22638 # invalidation before any async fixture checks its cache.22639 hook_caller = self.config.hook.pytest_asyncio_loop_factories22640 if hook_caller.get_hookimpls():22641 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22642> return super().setup()22643 ^^^^^^^^^^^^^^^2264422645/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22646_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22647nixbot/tests/conftest.py:33: in postgres_dsn22648 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22649 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22650/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22651 return next(self.gen)22652 ^^^^^^^^^^^^^^22653_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2265422655tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...atch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22656dbname = 'orchestrator'2265722658 @contextlib.contextmanager22659 def ephemeral_postgres(22660 tmp_path_factory: pytest.TempPathFactory, dbname: str22661 ) -> Iterator[str]:22662 """Throwaway Postgres on a unix socket with migrations applied."""22663 datadir = tmp_path_factory.mktemp("pgdata")22664 sockdir = tmp_path_factory.mktemp("pgsock")22665 subprocess.run( # noqa: S60322666 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22667 check=True,22668 capture_output=True,22669 )22670 proc = subprocess.Popen( # noqa: S60322671 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22672 stdout=subprocess.DEVNULL,22673 stderr=subprocess.DEVNULL,22674 )22675 try:22676 deadline = time.monotonic() + 3022677 while (22678 subprocess.run( # noqa: S60322679 ["pg_isready", "-h", str(sockdir), "-U", "test"],22680 check=False,22681 capture_output=True,22682 ).returncode22683 != 022684 ):22685 # The socket appears before recovery finishes; createdb would22686 # fail with "the database system is starting up".22687 if time.monotonic() > deadline:22688 msg = "postgres did not start"22689> raise RuntimeError(msg)22690E RuntimeError: postgres did not start2269122692nixbot/tests/support.py:319: RuntimeError22693__________ ERROR at setup of test_post_process_paths_are_forge_scoped __________22694[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142269522696self = <Coroutine test_post_process_paths_are_forge_scoped>2269722698 def setup(self) -> None:22699 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22700 if runner_fixture_id not in self.fixturenames:22701 self.fixturenames.append(runner_fixture_id)22702 # When loop factories are configured, resolve the loop factory22703 # fixture early so that a factory variant change cascades cache22704 # invalidation before any async fixture checks its cache.22705 hook_caller = self.config.hook.pytest_asyncio_loop_factories22706 if hook_caller.get_hookimpls():22707 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22708> return super().setup()22709 ^^^^^^^^^^^^^^^2271022711/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22712_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22713nixbot/tests/conftest.py:33: in postgres_dsn22714 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22715 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22716/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22717 return next(self.gen)22718 ^^^^^^^^^^^^^^22719_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2272022721tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...atch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22722dbname = 'orchestrator'2272322724 @contextlib.contextmanager22725 def ephemeral_postgres(22726 tmp_path_factory: pytest.TempPathFactory, dbname: str22727 ) -> Iterator[str]:22728 """Throwaway Postgres on a unix socket with migrations applied."""22729 datadir = tmp_path_factory.mktemp("pgdata")22730 sockdir = tmp_path_factory.mktemp("pgsock")22731 subprocess.run( # noqa: S60322732 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22733 check=True,22734 capture_output=True,22735 )22736 proc = subprocess.Popen( # noqa: S60322737 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22738 stdout=subprocess.DEVNULL,22739 stderr=subprocess.DEVNULL,22740 )22741 try:22742 deadline = time.monotonic() + 3022743 while (22744 subprocess.run( # noqa: S60322745 ["pg_isready", "-h", str(sockdir), "-U", "test"],22746 check=False,22747 capture_output=True,22748 ).returncode22749 != 022750 ):22751 # The socket appears before recovery finishes; createdb would22752 # fail with "the database system is starting up".22753 if time.monotonic() > deadline:22754 msg = "postgres did not start"22755> raise RuntimeError(msg)22756E RuntimeError: postgres did not start2275722758nixbot/tests/support.py:319: RuntimeError22759_______ ERROR at setup of test_effects_phase_error_keeps_succeeded_build _______22760[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142276122762self = <Coroutine test_effects_phase_error_keeps_succeeded_build>2276322764 def setup(self) -> None:22765 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22766 if runner_fixture_id not in self.fixturenames:22767 self.fixturenames.append(runner_fixture_id)22768 # When loop factories are configured, resolve the loop factory22769 # fixture early so that a factory variant change cascades cache22770 # invalidation before any async fixture checks its cache.22771 hook_caller = self.config.hook.pytest_asyncio_loop_factories22772 if hook_caller.get_hookimpls():22773 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22774> return super().setup()22775 ^^^^^^^^^^^^^^^2277622777/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22778_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22779nixbot/tests/conftest.py:33: in postgres_dsn22780 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22781 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22782/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22783 return next(self.gen)22784 ^^^^^^^^^^^^^^22785_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2278622787tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...atch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22788dbname = 'orchestrator'2278922790 @contextlib.contextmanager22791 def ephemeral_postgres(22792 tmp_path_factory: pytest.TempPathFactory, dbname: str22793 ) -> Iterator[str]:22794 """Throwaway Postgres on a unix socket with migrations applied."""22795 datadir = tmp_path_factory.mktemp("pgdata")22796 sockdir = tmp_path_factory.mktemp("pgsock")22797 subprocess.run( # noqa: S60322798 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22799 check=True,22800 capture_output=True,22801 )22802 proc = subprocess.Popen( # noqa: S60322803 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22804 stdout=subprocess.DEVNULL,22805 stderr=subprocess.DEVNULL,22806 )22807 try:22808 deadline = time.monotonic() + 3022809 while (22810 subprocess.run( # noqa: S60322811 ["pg_isready", "-h", str(sockdir), "-U", "test"],22812 check=False,22813 capture_output=True,22814 ).returncode22815 != 022816 ):22817 # The socket appears before recovery finishes; createdb would22818 # fail with "the database system is starting up".22819 if time.monotonic() > deadline:22820 msg = "postgres did not start"22821> raise RuntimeError(msg)22822E RuntimeError: postgres did not start2282322824nixbot/tests/support.py:319: RuntimeError22825_____ ERROR at setup of test_reuse_post_process_error_still_reports_status _____22826[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142282722828self = <Coroutine test_reuse_post_process_error_still_reports_status>2282922830 def setup(self) -> None:22831 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22832 if runner_fixture_id not in self.fixturenames:22833 self.fixturenames.append(runner_fixture_id)22834 # When loop factories are configured, resolve the loop factory22835 # fixture early so that a factory variant change cascades cache22836 # invalidation before any async fixture checks its cache.22837 hook_caller = self.config.hook.pytest_asyncio_loop_factories22838 if hook_caller.get_hookimpls():22839 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22840> return super().setup()22841 ^^^^^^^^^^^^^^^2284222843/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22844_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22845nixbot/tests/conftest.py:33: in postgres_dsn22846 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22847 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22848/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22849 return next(self.gen)22850 ^^^^^^^^^^^^^^22851_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2285222853tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...atch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22854dbname = 'orchestrator'2285522856 @contextlib.contextmanager22857 def ephemeral_postgres(22858 tmp_path_factory: pytest.TempPathFactory, dbname: str22859 ) -> Iterator[str]:22860 """Throwaway Postgres on a unix socket with migrations applied."""22861 datadir = tmp_path_factory.mktemp("pgdata")22862 sockdir = tmp_path_factory.mktemp("pgsock")22863 subprocess.run( # noqa: S60322864 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22865 check=True,22866 capture_output=True,22867 )22868 proc = subprocess.Popen( # noqa: S60322869 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22870 stdout=subprocess.DEVNULL,22871 stderr=subprocess.DEVNULL,22872 )22873 try:22874 deadline = time.monotonic() + 3022875 while (22876 subprocess.run( # noqa: S60322877 ["pg_isready", "-h", str(sockdir), "-U", "test"],22878 check=False,22879 capture_output=True,22880 ).returncode22881 != 022882 ):22883 # The socket appears before recovery finishes; createdb would22884 # fail with "the database system is starting up".22885 if time.monotonic() > deadline:22886 msg = "postgres did not start"22887> raise RuntimeError(msg)22888E RuntimeError: postgres did not start2288922890nixbot/tests/support.py:319: RuntimeError22891____ ERROR at setup of test_reuse_with_missing_output_still_post_processes _____22892[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142289322894self = <Coroutine test_reuse_with_missing_output_still_post_processes>2289522896 def setup(self) -> None:22897 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22898 if runner_fixture_id not in self.fixturenames:22899 self.fixturenames.append(runner_fixture_id)22900 # When loop factories are configured, resolve the loop factory22901 # fixture early so that a factory variant change cascades cache22902 # invalidation before any async fixture checks its cache.22903 hook_caller = self.config.hook.pytest_asyncio_loop_factories22904 if hook_caller.get_hookimpls():22905 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22906> return super().setup()22907 ^^^^^^^^^^^^^^^2290822909/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22910_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22911nixbot/tests/conftest.py:33: in postgres_dsn22912 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22913 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22914/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22915 return next(self.gen)22916 ^^^^^^^^^^^^^^22917_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2291822919tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/3/scratch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/p...atch/ad7b25bbacc94655/build/pytest-of-_tribuchetbld3/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22920dbname = 'orchestrator'2292122922 @contextlib.contextmanager22923 def ephemeral_postgres(22924 tmp_path_factory: pytest.TempPathFactory, dbname: str22925 ) -> Iterator[str]:22926 """Throwaway Postgres on a unix socket with migrations applied."""22927 datadir = tmp_path_factory.mktemp("pgdata")22928 sockdir = tmp_path_factory.mktemp("pgsock")22929 subprocess.run( # noqa: S60322930 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22931 check=True,22932 capture_output=True,22933 )22934 proc = subprocess.Popen( # noqa: S60322935 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22936 stdout=subprocess.DEVNULL,22937 stderr=subprocess.DEVNULL,22938 )22939 try:22940 deadline = time.monotonic() + 3022941 while (22942 subprocess.run( # noqa: S60322943 ["pg_isready", "-h", str(sockdir), "-U", "test"],22944 check=False,22945 capture_output=True,22946 ).returncode22947 != 022948 ):22949 # The socket appears before recovery finishes; createdb would22950 # fail with "the database system is starting up".22951 if time.monotonic() > deadline:22952 msg = "postgres did not start"22953> raise RuntimeError(msg)22954E RuntimeError: postgres did not start2295522956nixbot/tests/support.py:319: RuntimeError22957=========================== short test summary info ============================22958ERROR nixbot/tests/test_service.py::test_scheduled_worktree_id_distinct_per_effect22959ERROR nixbot/tests/test_service.py::test_scheduled_worktree_id_sanitizes_traversal22960ERROR nixbot/tests/test_service.py::test_resolve_credential_path - RuntimeErr...22961ERROR nixbot/tests/test_service.py::test_build_service_accepts_asyncpg_dsn - ...22962ERROR nixbot/tests/test_service.py::test_visibility_fetcher_and_cache_ttl_wired22963ERROR nixbot/tests/test_service.py::test_aclose_cancels_in_flight_tasks - Run...22964ERROR nixbot/tests/test_service.py::test_pr_close_discards_queued_changes - R...22965ERROR nixbot/tests/test_service.py::test_build_branches_gates_branch_pushes22966ERROR nixbot/tests/test_service.py::test_tag_push_builds_peeled_commit - Runt...22967ERROR nixbot/tests/test_service.py::test_tag_push_waits_for_a_branch_to_build_its_commit22968ERROR nixbot/tests/test_service.py::test_pr_approval_gate - RuntimeError: pos...22969ERROR nixbot/tests/test_service.py::test_pr_approval_disabled_by_default - Ru...22970ERROR nixbot/tests/test_service.py::test_restart_gitlab_mr_build_fetches_mr_refs22971ERROR nixbot/tests/test_service.py::test_restart_eval_failed_build_reevaluates22972ERROR nixbot/tests/test_service.py::test_restart_clears_stale_error_and_warnings22973ERROR nixbot/tests/test_service.py::test_restart_unknown_attribute_is_a_noop22974ERROR nixbot/tests/test_recovery.py::test_resume_skips_terminal_attributes - ...22975ERROR nixbot/tests/test_service.py::test_restart_failed_eval_attribute_reevaluates22976ERROR nixbot/tests/test_recovery.py::test_settle_already_built - RuntimeError...22977ERROR nixbot/tests/test_service.py::test_interrupted_reeval_keeps_attribute_rows22978ERROR nixbot/tests/test_recovery.py::test_retention_cleanup - RuntimeError: p...22979ERROR nixbot/tests/test_service.py::test_restart_cancelled_build_reschedules_attributes22980ERROR nixbot/tests/test_service.py::test_restart_cancelled_mid_eval_reevaluates22981ERROR nixbot/tests/test_recovery.py::test_resume_includes_interrupted_building_attributes22982ERROR nixbot/tests/test_service.py::test_restart_while_unwinding_waits_then_runs22983ERROR nixbot/tests/test_recovery.py::test_retention_skips_restarted_builds - ...22984ERROR nixbot/tests/test_visibility.py::test_anonymous_sees_public_only - Runt...22985ERROR nixbot/tests/test_service.py::test_restart_attribute_while_build_running22986ERROR nixbot/tests/test_visibility.py::test_unauthorized_user_sees_public_only22987ERROR nixbot/tests/test_recovery.py::test_retention_ages_out_failed_caches - ...22988ERROR nixbot/tests/test_visibility.py::test_authorized_user_sees_private - Ru...22989ERROR nixbot/tests/test_service.py::test_cancel_not_running_posts_forge_status22990ERROR nixbot/tests/test_visibility.py::test_admin_sees_everything - RuntimeEr...22991ERROR nixbot/tests/test_recovery.py::test_rerun_clears_stale_eval_warnings - ...22992ERROR nixbot/tests/test_visibility.py::test_admin_sees_disabled_repos_without_search22993ERROR nixbot/tests/test_service.py::test_check_rerequested_dispatch - Runtime...22994ERROR nixbot/tests/test_recovery.py::test_interrupted_effects_fail_on_recovery22995ERROR nixbot/tests/test_service.py::test_cancel_not_running_settles_attribute_rows22996ERROR nixbot/tests/test_recovery.py::test_interrupted_effects_sweep_spares_live_effects22997ERROR nixbot/tests/test_visibility.py::test_non_admin_does_not_see_disabled_repos22998ERROR nixbot/tests/test_service.py::test_cancel_attribute_not_running_reaggregates_build22999ERROR nixbot/tests/test_visibility.py::test_api_token_sees_private - RuntimeE...23000ERROR nixbot/tests/test_service.py::test_pull_based_projects_synced_and_buildable23001ERROR nixbot/tests/test_visibility.py::test_admin_api_token_sees_private - Ru...23002ERROR nixbot/tests/test_visibility.py::test_forge_repo_admins_can_toggle_their_repos23003ERROR nixbot/tests/test_visibility.py::test_forge_repo_writers_can_control_their_repos23004ERROR nixbot/tests/test_visibility.py::test_fetch_errors_are_not_cached - Run...23005ERROR nixbot/tests/test_visibility.py::test_access_cache_used - RuntimeError:...23006ERROR nixbot/tests/test_service.py::test_topic_does_not_hard_filter_discovery23007ERROR nixbot/tests/test_visibility.py::test_metrics_unauthenticated_no_private_names23008ERROR nixbot/tests/test_visibility.py::test_configured_viewers_see_private - ...23009ERROR nixbot/tests/test_service.py::test_startup_reevaluates_interrupted_eval23010ERROR nixbot/tests/test_visibility.py::test_api_token_inherits_login_groups23011ERROR nixbot/tests/test_service.py::test_rerun_of_interrupted_eval_reevaluates23012ERROR nixbot/tests/test_visibility.py::test_logout_invalidates_access_cache23013ERROR nixbot/tests/test_service.py::test_rerun_resumes_building_rows_and_keeps_finished23014ERROR nixbot/tests/test_service.py::test_rerun_reevaluates_when_drv_paths_were_garbage_collected23015ERROR nixbot/tests/test_service.py::test_reeval_failure_marks_build_failed - ...23016ERROR nixbot/tests/test_control.py::test_control_buttons_hidden_without_permission23017ERROR nixbot/tests/test_control.py::test_admin_can_restart_and_cancel - Runti...23018ERROR nixbot/tests/test_service.py::test_gitlab_discovery_and_hook_registration23019ERROR nixbot/tests/test_control.py::test_pr_author_can_control_own_pr - Runti...23020ERROR nixbot/tests/test_control.py::test_repo_writer_can_control_without_admin_or_authorship23021ERROR nixbot/tests/test_service.py::test_health_serves_while_startup_blocks23022ERROR nixbot/tests/test_control.py::test_approve_pr_requires_writer_not_author23023ERROR nixbot/tests/test_control.py::test_cancel_all_requires_admin - RuntimeE...23024ERROR nixbot/tests/test_control.py::test_cancel_all_cancels_pending_and_running_builds23025ERROR nixbot/tests/test_control.py::test_cancel_all_button_admin_only - Runti...23026ERROR nixbot/tests/test_control.py::test_csrf_cross_origin_rejected - Runtime...23027ERROR nixbot/tests/test_control.py::test_restart_single_attribute - RuntimeEr...23028ERROR nixbot/tests/test_control.py::test_restart_unknown_attribute_is_404 - R...23029ERROR nixbot/tests/test_control.py::test_restart_attribute_with_special_chars_redirects_encoded23030ERROR nixbot/tests/test_control.py::test_admin_project_toggle - RuntimeError:...23031ERROR nixbot/tests/test_control.py::test_toggle_activates_newly_enabled_project23032ERROR nixbot/tests/test_cli_api.py::test_repos_and_builds - RuntimeError: pos...23033ERROR nixbot/tests/test_control.py::test_run_schedule - RuntimeError: postgre...23034ERROR nixbot/tests/test_cli_api.py::test_finished_attrs_cursor - RuntimeError...23035ERROR nixbot/tests/test_control.py::test_schedules_are_listed_on_the_effects_page23036ERROR nixbot/tests/test_cli_api.py::test_control_requires_token - RuntimeErro...23037ERROR nixbot/tests/test_control.py::test_repo_refresh - RuntimeError: postgre...23038ERROR nixbot/tests/test_cli_api.py::test_enable_disable - RuntimeError: postg...23039ERROR nixbot/tests/test_control.py::test_api_enable_disable - RuntimeError: p...23040ERROR nixbot/tests/test_cli_api.py::test_log_toc_and_text - RuntimeError: pos...23041ERROR nixbot/tests/test_control.py::test_api_restart_and_cancel - RuntimeErro...23042ERROR nixbot/tests/test_cli_api.py::test_effect_run_text_and_stream - Runtime...23043ERROR nixbot/tests/test_control.py::test_api_token_lifecycle - RuntimeError: ...23044ERROR nixbot/tests/test_control.py::test_expired_api_tokens_pruned - RuntimeE...23045ERROR nixbot/tests/test_control.py::test_token_creation_with_expiry - Runtime...23046ERROR nixbot/tests/test_cli.py::test_repo_list_and_toggle - RuntimeError: pos...23047ERROR nixbot/tests/test_control.py::test_proxy_user_can_manage_api_tokens - R...23048ERROR nixbot/tests/test_control.py::test_bearer_token_cannot_manage_api_tokens23049ERROR nixbot/tests/test_cli.py::test_build_list_and_view - RuntimeError: post...23050ERROR nixbot/tests/test_control.py::test_api_token_controls_build - RuntimeEr...23051ERROR nixbot/tests/test_cli.py::test_build_restart_cancel - RuntimeError: pos...23052ERROR nixbot/tests/test_web.py::test_html_error_pages - RuntimeError: postgre...23053ERROR nixbot/tests/test_deliver.py::test_match_skip_and_run - RuntimeError: p...23054ERROR nixbot/tests/test_orchestrator.py::test_full_lifecycle - RuntimeError: ...23055ERROR nixbot/tests/test_db.py::test_migrations_idempotent - RuntimeError: pos...23056ERROR nixbot/tests/test_schedules.py::test_replace_schedules_preserves_last_run_for_unchanged_spec23057ERROR nixbot/tests/test_cli.py::test_log_summary_attr_and_drv - RuntimeError:...23058ERROR nixbot/tests/test_control.py::test_build_service_composition - RuntimeE...23059ERROR nixbot/tests/test_web.py::test_api_strips_ansi_from_errors - RuntimeErr...23060ERROR nixbot/tests/test_cli.py::test_repo_and_build_inference - RuntimeError:...23061ERROR nixbot/tests/test_deliver.py::test_permission_denied_records_reason - R...23062ERROR nixbot/tests/test_orchestrator.py::test_failure_aggregation - RuntimeEr...23063ERROR nixbot/tests/test_cli.py::test_auth_status - RuntimeError: postgres did...23064ERROR nixbot/tests/test_db.py::test_failed_migration_error_not_masked - Runti...23065ERROR nixbot/tests/test_web.py::test_homepage - RuntimeError: postgres did no...23066ERROR nixbot/tests/test_schedules.py::test_replace_schedules_tolerates_duplicate_effect_names23067ERROR nixbot/tests/test_control.py::test_restart_removes_stale_logs - Runtime...23068ERROR nixbot/tests/test_deliver.py::test_modified_files_gate - RuntimeError: ...23069ERROR nixbot/tests/test_web.py::test_project_page_with_filters - RuntimeError...23070ERROR nixbot/tests/test_orchestrator.py::test_tree_hash_reuse - RuntimeError:...23071ERROR nixbot/tests/test_schedules.py::test_store_roundtrip_and_due - RuntimeE...23072ERROR nixbot/tests/test_web.py::test_status_badge_urls - RuntimeError: postgr...23073ERROR nixbot/tests/test_db.py::test_edited_migration_rejected - RuntimeError:...23074ERROR nixbot/tests/test_control.py::test_restart_clears_failed_cache - Runtim...23075ERROR nixbot/tests/test_deliver.py::test_forge_outage_is_retried - RuntimeErr...23076ERROR nixbot/tests/test_orchestrator.py::test_eval_reuse_from_cancelled_build23077ERROR nixbot/tests/test_web.py::test_all_digit_branch_is_filterable - Runtime...23078ERROR nixbot/tests/test_control.py::test_webhook_setup_shown_to_admin_only - ...23079ERROR nixbot/tests/test_schedules.py::test_due_effects_window_and_bad_spec - ...23080ERROR nixbot/tests/test_db.py::test_catchup_migration_repairs_pre_0033_schema23081ERROR nixbot/tests/test_work_queue.py::test_enqueue_dedupes_pending - Runtime...23082ERROR nixbot/tests/test_deliver.py::test_forge_outage_gives_up - RuntimeError...23083ERROR nixbot/tests/test_web.py::test_build_page - RuntimeError: postgres did ...23084ERROR nixbot/tests/test_forge.py::test_project_store_sync_and_legacy_import23085ERROR nixbot/tests/test_control.py::test_webhook_secret_regeneration - Runtim...23086ERROR nixbot/tests/test_orchestrator.py::test_eval_reuse_skipped_when_drvs_gone23087ERROR nixbot/tests/test_upload.py::test_chunk_args_splits_on_byte_limit - Run...23088ERROR nixbot/tests/test_web.py::test_attribute_rows_fragment_paginates - Runt...23089ERROR nixbot/tests/test_control.py::test_retry_after_parsing - RuntimeError: ...23090ERROR nixbot/tests/test_schedules.py::test_run_recording_and_overview - Runti...23091ERROR nixbot/tests/test_upload.py::test_parse_path_info_both_formats - Runtim...23092ERROR nixbot/tests/test_deliver.py::test_lock_shared_with_push_effect_and_supersession23093ERROR nixbot/tests/test_db.py::test_huge_attr_name_does_not_break_notify_trigger23094ERROR nixbot/tests/test_web.py::test_build_page_shows_eval_warning_groups - R...23095ERROR nixbot/tests/test_orchestrator.py::test_main_push_promotes_reused_pr_build23096ERROR nixbot/tests/test_work_queue.py::test_claim_serializes_per_key - Runtim...23097ERROR nixbot/tests/test_forge.py::test_legacy_import_runs_despite_pull_based_rows23098ERROR nixbot/tests/test_control.py::test_work_retry_delay_honors_retry_after23099ERROR nixbot/tests/test_upload.py::test_final_upload_reports_and_clears_queue23100ERROR nixbot/tests/test_web.py::test_build_page_shows_per_attribute_eval_warnings23101ERROR nixbot/tests/test_db.py::test_schema_constraints - RuntimeError: postgr...23102ERROR nixbot/tests/test_deliver.py::test_checkout_is_pr_head_without_token - ...23103ERROR nixbot/tests/test_orchestrator.py::test_merge_conflict_fails_build - Ru...23104ERROR nixbot/tests/test_work_queue.py::test_settle_interrupted_requeues - Run...23105ERROR nixbot/tests/test_forge.py::test_legacy_import_scopes_topics_per_forge23106ERROR nixbot/tests/test_web.py::test_build_page_renders_ansi_in_error - Runti...23107ERROR nixbot/tests/test_control.py::test_report_retry - RuntimeError: postgre...23108ERROR nixbot/tests/test_web.py::test_running_build_shows_progress - RuntimeEr...23109ERROR nixbot/tests/test_upload.py::test_intermediates_batch_with_final_and_drop_invalid23110ERROR nixbot/tests/test_db.py::test_check_run_store_round_trip - RuntimeError...23111ERROR nixbot/tests/test_orchestrator.py::test_build_reuse_clears_pr_author_in_other_context23112ERROR nixbot/tests/test_forge.py::test_prune_missing_disabled_projects - Runt...23113ERROR nixbot/tests/test_web.py::test_build_page_live_markers - RuntimeError: ...23114ERROR nixbot/tests/test_control.py::test_effect_item_setup_failure_settles_row23115ERROR nixbot/tests/test_upload.py::test_stdin_mode - RuntimeError: postgres d...23116ERROR nixbot/tests/test_web.py::test_attribute_history - RuntimeError: postgr...23117ERROR nixbot/tests/test_db.py::test_failed_status_store_component - RuntimeEr...23118ERROR nixbot/tests/test_orchestrator.py::test_effects_started_flag - RuntimeE...23119ERROR nixbot/tests/test_forge.py::test_project_store_sync_skips_unchanged_rows23120ERROR nixbot/tests/test_control.py::test_restart_attribute_posts_pending - Ru...23121ERROR nixbot/tests/test_upload.py::test_pending_paths_survive_restart - Runti...23122ERROR nixbot/tests/test_web.py::test_overview_ignores_pr_branches - RuntimeEr...23123ERROR nixbot/tests/test_db.py::test_failed_build_cache_component - RuntimeErr...23124ERROR nixbot/tests/test_deliver.py::test_build_success_enqueues_delivery - Ru...23125ERROR nixbot/tests/test_forge.py::test_gitea_hook_registration - RuntimeError...23126ERROR nixbot/tests/test_upload.py::test_uploader_factory_picks_stream - Runti...23127ERROR nixbot/tests/test_web.py::test_pending_build_shows_eval_blocker - Runti...23128ERROR nixbot/tests/test_orchestrator.py::test_aggregation_generation_monotonic23129ERROR nixbot/tests/test_control.py::test_recovery_reports_interrupted_effects23130ERROR nixbot/tests/test_web.py::test_project_filter_escapes_like_wildcards - ...23131ERROR nixbot/tests/test_db.py::test_get_or_create_build_concurrent_no_duplicates23132ERROR nixbot/tests/test_deliver.py::test_comment_and_close_webhooks_deliver23133ERROR nixbot/tests/test_forge.py::test_gitlab_heads_carry_target_branch_base23134ERROR nixbot/tests/test_upload.py::test_stream_reports_per_path_and_clears_queue23135ERROR nixbot/tests/test_orchestrator.py::test_internal_error_not_recorded_in_failed_build_cache23136ERROR nixbot/tests/test_web.py::test_page_out_of_range_does_not_error - Runti...23137ERROR nixbot/tests/test_control.py::test_work_dispatch - RuntimeError: postgr...23138ERROR nixbot/tests/test_db.py::test_commit_eval_result_atomic - RuntimeError:...23139ERROR nixbot/tests/test_deliver.py::test_close_after_merge_push_reused_build23140ERROR nixbot/tests/test_forge.py::test_gitea_heads_encode_slashed_default_branch23141ERROR nixbot/tests/test_web.py::test_activity_page - RuntimeError: postgres d...23142ERROR nixbot/tests/test_upload.py::test_stream_error_is_reported_with_message23143ERROR nixbot/tests/test_control.py::test_restart_resets_effects - RuntimeErro...23144ERROR nixbot/tests/test_orchestrator.py::test_log_path_attribute_name_sanitized23145ERROR nixbot/tests/test_db.py::test_cancelled_build_not_reused - RuntimeError...23146ERROR nixbot/tests/test_web.py::test_activity_no_sentinel_on_exact_page - Run...23147ERROR nixbot/tests/test_forge.py::test_reconcile_unbuilt_heads - RuntimeError...23148ERROR nixbot/tests/test_deliver.py::test_build_finished_transitions - Runtime...23149ERROR nixbot/tests/test_control.py::test_effects_restart_route - RuntimeError...23150ERROR nixbot/tests/test_upload.py::test_stream_child_crash_refeeds_pending - ...23151ERROR nixbot/tests/test_web.py::test_activity_rows_fragment_pagination - Runt...23152ERROR nixbot/tests/test_orchestrator.py::test_cancel_interrupts_evaluation - ...23153ERROR nixbot/tests/test_db.py::test_reuse_backfills_pr_fields - RuntimeError:...23154ERROR nixbot/tests/test_control.py::test_single_effect_restart_route - Runtim...23155ERROR nixbot/tests/test_web.py::test_project_rows_fragment_filters - RuntimeE...23156ERROR nixbot/tests/test_deliver.py::test_build_finished_names_the_pushed_commit23157ERROR nixbot/tests/test_forge.py::test_gitea_watermark_stops_pagination - Run...23158ERROR nixbot/tests/test_control.py::test_effect_cancel_route - RuntimeError: ...23159ERROR nixbot/tests/test_upload.py::test_failure_reports_retries_and_gives_up23160ERROR nixbot/tests/test_web.py::test_metrics_are_gauges - RuntimeError: postg...23161ERROR nixbot/tests/test_db.py::test_reuse_by_other_pr_clears_both_identity_fields23162ERROR nixbot/tests/test_orchestrator.py::test_build_waiting_for_eval_slot_stays_pending23163ERROR nixbot/tests/test_control.py::test_webhook_panel_is_forge_aware - Runti...23164ERROR nixbot/tests/test_deliver.py::test_command_while_running_gets_notice - ...23165ERROR nixbot/tests/test_web.py::test_metrics_are_cached - RuntimeError: postg...23166ERROR nixbot/tests/test_forge.py::test_gitlab_heads_filter_updated_after - Ru...23167ERROR nixbot/tests/test_control.py::test_api_attr_and_effects_control - Runti...23168ERROR nixbot/tests/test_db.py::test_branch_push_takes_over_reused_pr_build - ...23169ERROR nixbot/tests/test_orchestrator.py::test_pending_attribute_rows_recorded_for_crash_recovery23170ERROR nixbot/tests/test_web.py::test_static_urls_carry_content_version - Runt...23171ERROR nixbot/tests/test_deliver.py::test_other_command_does_not_supersede - R...23172ERROR nixbot/tests/test_cli.py::test_log_follow_finished_attr_falls_back_to_stored_log23173ERROR nixbot/tests/test_forge.py::test_reconcile_watermark_store - RuntimeErr...23174ERROR nixbot/tests/test_web.py::test_legacy_project_urls_redirect - RuntimeEr...23175ERROR nixbot/tests/test_db.py::test_pr_does_not_capture_branch_push_build - R...23176ERROR nixbot/tests/test_orchestrator.py::test_eval_warnings_null_when_empty23177ERROR nixbot/tests/test_deliver.py::test_label_change_redelivers_pull_request23178ERROR nixbot/tests/test_web.py::test_private_repo_public_badge_bypasses_session_visibility23179ERROR nixbot/tests/test_cli.py::test_log_effect_by_name_and_id - RuntimeError...23180ERROR nixbot/tests/test_forge.py::test_register_repo_hook_without_admin_warns23181ERROR nixbot/tests/test_db.py::test_complete_attribute_preserves_eval_outputs23182ERROR nixbot/tests/test_web.py::test_legacy_redirect_hides_invisible_projects23183ERROR nixbot/tests/test_orchestrator.py::test_rerun_flips_stale_red_eval_status23184ERROR nixbot/tests/test_cli.py::test_log_effect_is_not_shadowed_by_attributes23185ERROR nixbot/tests/test_deliver.py::test_build_outcome_and_restart_leave_event_history23186ERROR nixbot/tests/test_web.py::test_legacy_redirect_404s_on_ambiguous_owner_name23187ERROR nixbot/tests/test_forge.py::test_gitlab_hook_registration - RuntimeErro...23188ERROR nixbot/tests/test_db.py::test_complete_attribute_marks_substituted_as_cached23189ERROR nixbot/tests/test_orchestrator.py::test_recovery_rerun_failures_not_cached23190ERROR nixbot/tests/test_web.py::test_health_and_static - RuntimeError: postgr...23191ERROR nixbot/tests/test_deliver.py::test_restart_event_effect_reruns_with_stored_payload23192ERROR nixbot/tests/test_web.py::test_404s - RuntimeError: postgres did not start23193ERROR nixbot/tests/test_db.py::test_complete_attribute_replaces_log_metadata23194ERROR nixbot/tests/test_orchestrator.py::test_gitlab_mr_fetches_merge_request_refs23195ERROR nixbot/tests/test_deliver.py::test_listing_failure_recorded_on_build - ...23196ERROR nixbot/tests/test_db.py::test_record_attributes_persists_pending_rows_with_outputs23197ERROR nixbot/tests/test_orchestrator.py::test_rerun_fetches_forge_change_request_refs[github]23198ERROR nixbot/tests/test_deliver.py::test_tag_runs_onpush_effects_with_tag - R...23199ERROR nixbot/tests/test_web.py::test_log_viewer_and_raw - RuntimeError: postg...23200ERROR nixbot/tests/test_forge.py::test_register_repo_hook_500_with_403_in_body_raises23201ERROR nixbot/tests/test_web.py::test_structured_log_endpoints - RuntimeError:...23202ERROR nixbot/tests/test_db.py::test_mark_attribute_building_does_not_resurrect_cancelled_rows23203ERROR nixbot/tests/test_orchestrator.py::test_rerun_fetches_forge_change_request_refs[gitlab]23204ERROR nixbot/tests/test_deliver.py::test_tag_waits_for_a_running_release - Ru...23205ERROR nixbot/tests/test_web.py::test_structured_log_window_caps_huge_derivation23206ERROR nixbot/tests/test_forge.py::test_gitlab_register_repo_hook_status_classification23207ERROR nixbot/tests/test_orchestrator.py::test_cancelled_build_reuse_rebuilds23208ERROR nixbot/tests/test_db.py::test_mark_attribute_building_sets_status_and_started_at23209ERROR nixbot/tests/test_web.py::test_attr_named_dot_txt_not_shadowed_by_raw_route23210ERROR nixbot/tests/test_deliver.py::test_tag_listing_failure_recorded_apart_from_build_effects23211ERROR nixbot/tests/test_forge.py::test_gitea_legacy_hook_delete_failure_warns23212ERROR nixbot/tests/test_web.py::test_attr_names_with_special_characters - Run...23213ERROR nixbot/tests/test_orchestrator.py::test_inflight_share_fans_out_final_status23214ERROR nixbot/tests/test_db.py::test_complete_attribute_if_unfinished_skips_terminal_rows23215ERROR nixbot/tests/test_web.py::test_log_viewer_waits_for_queued_attribute - ...23216ERROR nixbot/tests/test_forge.py::test_sync_tolerates_in_batch_duplicates - R...23217ERROR nixbot/tests/test_web.py::test_log_viewer_unavailable_for_logless_status23218ERROR nixbot/tests/test_orchestrator.py::test_stale_event_does_not_supersede_newer_build23219ERROR nixbot/tests/test_db.py::test_failed_build_cache_scoped_per_project - R...23220ERROR nixbot/tests/test_web.py::test_eval_error_served_like_build_log - Runti...23221ERROR nixbot/tests/test_orchestrator.py::test_eval_failure_cleans_cancel_events23222ERROR nixbot/tests/test_db.py::test_eval_stats_lifecycle - RuntimeError: post...23223ERROR nixbot/tests/test_web.py::test_api_projects_and_builds - RuntimeError: ...23224ERROR nixbot/tests/test_web.py::test_build_rows_link_refs - RuntimeError: pos...23225ERROR nixbot/tests/test_orchestrator.py::test_eval_settings_wired - RuntimeEr...23226ERROR nixbot/tests/test_web.py::test_attributes_sort_building_before_pending23227ERROR nixbot/tests/test_web.py::test_queue_sorts_active_before_pending - Runt...23228ERROR nixbot/tests/test_orchestrator.py::test_eval_netrc_withheld_from_pr_with_instance_wide_creds23229ERROR nixbot/tests/test_web.py::test_queue_position_is_global_and_skips_running23230ERROR nixbot/tests/test_orchestrator.py::test_eval_gcroots_dir_removed_after_build23231ERROR nixbot/tests/test_web.py::test_openapi_docs - RuntimeError: postgres di...23232ERROR nixbot/tests/test_web.py::test_structured_live_stream - RuntimeError: p...23233ERROR nixbot/tests/test_orchestrator.py::test_effects_run_after_default_branch_success23234ERROR nixbot/tests/test_web.py::test_drv_raw_serves_running_attribute - Runti...23235ERROR nixbot/tests/test_web.py::test_log_sse_stream_caps_history_backlog - Ru...23236ERROR nixbot/tests/test_orchestrator.py::test_when_changed_reuses_the_last_success23237ERROR nixbot/tests/test_web.py::test_log_sse_stream_neutralizes_carriage_returns23238ERROR nixbot/tests/test_orchestrator.py::test_when_changed_decides_when_the_lock_is_free23239ERROR nixbot/tests/test_web.py::test_api_builds_commit_filter - RuntimeError:...23240ERROR nixbot/tests/test_web.py::test_log_tail_param - RuntimeError: postgres ...23241ERROR nixbot/tests/test_orchestrator.py::test_when_changed_ignores_failures_and_follows_a_restart23242ERROR nixbot/tests/test_web.py::test_api_build_failures - RuntimeError: postg...23243ERROR nixbot/tests/test_web.py::test_api_build_failures_rejects_non_positive_tail23244ERROR nixbot/tests/test_orchestrator.py::test_pr_worktree_config_cannot_grant_effects23245ERROR nixbot/tests/test_orchestrator.py::test_rerun_effects_runs_effects_again23246ERROR nixbot/tests/test_web.py::test_llms_txt - RuntimeError: postgres did no...23247ERROR nixbot/tests/test_orchestrator.py::test_rerun_effects_cancels_hung_effect23248ERROR nixbot/tests/test_web.py::test_event_broker_pushes_status_changes - Run...23249ERROR nixbot/tests/test_orchestrator.py::test_cancel_hung_effect - RuntimeErr...23250ERROR nixbot/tests/test_web.py::test_events_stream_coalesces_burst - RuntimeE...23251ERROR nixbot/tests/test_web.py::test_events_stream_refreshes_visibility - Run...23252ERROR nixbot/tests/test_orchestrator.py::test_rerun_single_effect - RuntimeEr...23253ERROR nixbot/tests/test_web.py::test_attribute_search - RuntimeError: postgre...23254ERROR nixbot/tests/test_web.py::test_build_page_shows_effects - RuntimeError:...23255ERROR nixbot/tests/test_orchestrator.py::test_recovery_rerun_runs_effects - R...23256ERROR nixbot/tests/test_web.py::test_build_page_shows_event_effects - Runtime...23257ERROR nixbot/tests/test_orchestrator.py::test_unsupported_system_attr_does_not_block_aggregation23258ERROR nixbot/tests/test_web.py::test_build_page_groups_dependency_checks_apart23259ERROR nixbot/tests/test_web.py::test_effect_log_raw_text - RuntimeError: post...23260ERROR nixbot/tests/test_orchestrator.py::test_linked_context_reported_on_eval_failure23261ERROR nixbot/tests/test_web.py::test_effect_log_viewer_status_icon - RuntimeE...23262ERROR nixbot/tests/test_web.py::test_effect_changes_notify_build_events - Run...23263ERROR nixbot/tests/test_web.py::test_effects_state_api - RuntimeError: postgr...23264ERROR nixbot/tests/test_web.py::test_pr_comment_api - RuntimeError: postgres ...23265ERROR nixbot/tests/test_orchestrator.py::test_eval_failure_settles_streamed_attributes23266ERROR nixbot/tests/test_web.py::test_workload_identity_api - RuntimeError: po...23267ERROR nixbot/tests/test_web.py::test_logout_revokes_session_cookie - RuntimeE...23268ERROR nixbot/tests/test_orchestrator.py::test_effect_rows_roundtrip - Runtime...23269ERROR nixbot/tests/test_web.py::test_gitlab_nested_group_routes - RuntimeErro...23270ERROR nixbot/tests/test_web.py::test_scheduled_run_viewer_renders_ansi - Runt...23271ERROR nixbot/tests/test_orchestrator.py::test_effect_items_resume_only_pending23272ERROR nixbot/tests/test_web.py::test_scheduled_run_viewer_cross_project_40423273ERROR nixbot/tests/test_orchestrator.py::test_effect_crash_settles_the_row - ...23274ERROR nixbot/tests/test_web.py::test_scheduled_run_log_unavailable_placeholder23275ERROR nixbot/tests/test_web.py::test_scheduled_run_viewer_waiting_before_log23276ERROR nixbot/tests/test_orchestrator.py::test_concurrent_effects_use_independent_worktrees23277ERROR nixbot/tests/test_web.py::test_project_tabs_link_builds_and_effects - R...23278ERROR nixbot/tests/test_web.py::test_failing_badge_counts_effects_whose_latest_run_failed23279ERROR nixbot/tests/test_orchestrator.py::test_locked_effect_gets_shared_dedup_key23280ERROR nixbot/tests/test_web.py::test_old_schedule_history_url_redirects - Run...23281ERROR nixbot/tests/test_orchestrator.py::test_effect_item_not_claimable_until_dep_settles23282ERROR nixbot/tests/test_web.py::test_project_effects_filter_and_paginate - Ru...23283ERROR nixbot/tests/test_web.py::test_scheduled_run_stream_replays_history - R...23284ERROR nixbot/tests/test_orchestrator.py::test_effect_dep_failure_skips_dependent23285ERROR nixbot/tests/test_web.py::test_scheduled_run_notify_build_events - Runt...23286ERROR nixbot/tests/test_web.py::test_api_log_toc_and_text - RuntimeError: pos...23287ERROR nixbot/tests/test_orchestrator.py::test_lock_serializes_builds_without_interleaving23288ERROR nixbot/tests/test_web.py::test_api_log_toc_flat_log_fallback - RuntimeE...23289ERROR nixbot/tests/test_web.py::test_api_log_stream_json - RuntimeError: post...23290ERROR nixbot/tests/test_orchestrator.py::test_effect_dep_cycle_fails_discovery23291ERROR nixbot/tests/test_web.py::test_build_eval_stats_surface - RuntimeError:...23292ERROR nixbot/tests/test_orchestrator.py::test_failed_effect_reports_failure_status23293ERROR nixbot/tests/test_orchestrator.py::test_post_process_error_does_not_wedge_build23294ERROR nixbot/tests/test_orchestrator.py::test_unexpected_eval_path_error_settles_build23295ERROR nixbot/tests/test_orchestrator.py::test_reuse_empty_succeeded_build_posts_eval_success23296ERROR nixbot/tests/test_orchestrator.py::test_stale_event_reusing_old_build_does_not_cancel_newer23297ERROR nixbot/tests/test_orchestrator.py::test_reuse_for_default_branch_push_runs_effects23298ERROR nixbot/tests/test_orchestrator.py::test_push_reusing_pr_build_delivers_build_finished23299ERROR nixbot/tests/test_orchestrator.py::test_tag_reusing_deployed_build_delivers_its_own_effects23300ERROR nixbot/tests/test_orchestrator.py::test_tag_attached_to_in_flight_build_delivers_on_success23301ERROR nixbot/tests/test_orchestrator.py::test_restart_of_gated_build_settles_effect_rows23302ERROR nixbot/tests/test_orchestrator.py::test_restart_build_drops_queued_effect_items23303ERROR nixbot/tests/test_orchestrator.py::test_restart_effects_after_pr_attach_keeps_effects_ref23304ERROR nixbot/tests/test_orchestrator.py::test_gated_restart_then_allowed_reuse_deploys23305ERROR nixbot/tests/test_orchestrator.py::test_rerun_single_effect_takes_pending_dependents23306ERROR nixbot/tests/test_orchestrator.py::test_reuse_replays_effect_statuses_to_new_commit23307ERROR nixbot/tests/test_orchestrator.py::test_attach_to_already_terminal_build_replays_status23308ERROR nixbot/tests/test_orchestrator.py::test_cancel_during_eval_resolves_linked_eval_contexts23309ERROR nixbot/tests/test_orchestrator.py::test_effect_log_does_not_collide_with_attribute_log23310ERROR nixbot/tests/test_orchestrator.py::test_post_process_paths_are_forge_scoped23311ERROR nixbot/tests/test_orchestrator.py::test_effects_phase_error_keeps_succeeded_build23312ERROR nixbot/tests/test_orchestrator.py::test_reuse_post_process_error_still_reports_status23313ERROR nixbot/tests/test_orchestrator.py::test_reuse_with_missing_output_still_post_processes23314================= 477 passed, 29 skipped, 356 errors in 39.33s =================