nixbot

builds

failed python3.14-nixbot-tests checks.aarch64-darwin.nixbot-tests · build #442 · 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/hh64ahv50hg36i1sf325c5jk1d65nx8a-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/7/scratch/de432e2b0487899e/build/ in /nix/store/6ncfin74zppfvrxz1ybwj5bb4wllymhb-python3.14-nixbot-tests...38patching script interpreter paths in /nix/store/6ncfin74zppfvrxz1ybwj5bb4wllymhb-python3.14-nixbot-tests39stripping (with command strip and flags -S) in /nix/store/6ncfin74zppfvrxz1ybwj5bb4wllymhb-python3.14-nixbot-tests/lib /nix/store/6ncfin74zppfvrxz1ybwj5bb4wllymhb-python3.14-nixbot-tests/bin40checking for references to /private/var/tb/7/scratch/de432e2b0487899e/build/ in /nix/store/zn3xj95llik70aiiqb3jz6f8qr9sq35m-python3.14-nixbot-tests-dist...41patching script interpreter paths in /nix/store/zn3xj95llik70aiiqb3jz6f8qr9sq35m-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/6ncfin74zppfvrxz1ybwj5bb4wllymhb-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/7/scratch/de432e2b0487899e/build/nixbot104configfile: pyproject.toml105plugins: asyncio-1.4.0, timeout-2.4.0, xdist-3.8.0, benchmark-5.2.3, anyio-4.14.2106asyncio: mode=Mode.AUTO, debug=False, asyncio_default_fixture_loop_scope=None, asyncio_default_test_loop_scope=function107timeout: 60.0s108timeout method: signal109timeout func_only: False110created: 24/24 workers11124 workers [870 items]112113.................ss.........s.s..s........................ss......s..... [ 8%]114...s..........................................s.s....s.................. [ 16%]115....................s....s.....sss......s....s..............s...s....... [ 24%]116........................................................................ [ 33%]117................ssss.................................................s.. [ 41%]118........................................................................ [ 49%]119............................s..EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE [ 57%]120EE..EEE........EEEEEEEEEEEEEsEE.EEEEE.EEEEEEE.EE.EE..EEE..sEEEEEEE.EEEEE [ 66%]121EEEEEEEEEEEEEEEEEEEEEEEEEE.EEEEE.EEEEEE..EEEE.E.E.EEEEEEEEEEEEEEEEEEEEEE [ 74%]122EEEEEEEEEEEE.EEEEEEEE.EE.E.E.EEEEEE.EEEE......EEEEEEEE.EEEEEEEEEEEEEEEEE [ 82%]123EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE.EEE.EEEEEEE [ 91%]124EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE [ 99%]125EEEEEE [100%]126==================================== ERRORS ====================================127___________________ ERROR at setup of test_html_error_pages ____________________128[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14129130fixturedef = <FixtureDef argname='postgres_dsn' scope='module' baseid='nixbot/tests'>131request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>132133 @pytest.hookimpl(wrapper=True)134 def pytest_fixture_setup(fixturedef: FixtureDef, request) -> object | None:135 if (136 fixturedef.argname == "event_loop_policy"137 and fixturedef.func.__module__ != __name__138 ):139 warnings.warn(140 PytestDeprecationWarning(_EVENT_LOOP_POLICY_FIXTURE_DEPRECATION_WARNING),141 )142 asyncio_mode = _get_asyncio_mode(request.config)143 if not _is_asyncio_fixture_function(fixturedef.func):144 if asyncio_mode == Mode.STRICT:145 # Ignore async fixtures without explicit asyncio mark in strict mode146 # This applies to pytest_trio fixtures, for example147 return (yield)148 if not _is_coroutine_or_asyncgen(fixturedef.func):149> return (yield)150 ^^^^^151152/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:926: 153_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 154nixbot/tests/conftest.py:33: in postgres_dsn155 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:156 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^157/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__158 return next(self.gen)159 ^^^^^^^^^^^^^^160_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 161162tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')163dbname = 'web'164165 @contextlib.contextmanager166 def ephemeral_postgres(167 tmp_path_factory: pytest.TempPathFactory, dbname: str168 ) -> Iterator[str]:169 """Throwaway Postgres on a unix socket with migrations applied."""170 datadir = tmp_path_factory.mktemp("pgdata")171 sockdir = tmp_path_factory.mktemp("pgsock")172 subprocess.run( # noqa: S603173 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],174 check=True,175 capture_output=True,176 )177 proc = subprocess.Popen( # noqa: S603178 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],179 stdout=subprocess.DEVNULL,180 stderr=subprocess.DEVNULL,181 )182 try:183 deadline = time.monotonic() + 30184 while (185 subprocess.run( # noqa: S603186 ["pg_isready", "-h", str(sockdir), "-U", "test"],187 check=False,188 capture_output=True,189 ).returncode190 != 0191 ):192 # The socket appears before recovery finishes; createdb would193 # fail with "the database system is starting up".194 if time.monotonic() > deadline:195 msg = "postgres did not start"196> raise RuntimeError(msg)197E RuntimeError: postgres did not start198199nixbot/tests/support.py:319: RuntimeError200______________ ERROR at setup of test_api_strips_ansi_from_errors ______________201[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14202203request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>204tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')205206 @pytest.fixture(scope="module")207 def postgres_dsn(208 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory209 ) -> Iterator[str]:210 if shutil.which("initdb") is None:211 pytest.skip("postgresql not available")212 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")213> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:214 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^215216nixbot/tests/conftest.py:33: 217_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 218/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__219 return next(self.gen)220 ^^^^^^^^^^^^^^221_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 222223tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')224dbname = 'web'225226 @contextlib.contextmanager227 def ephemeral_postgres(228 tmp_path_factory: pytest.TempPathFactory, dbname: str229 ) -> Iterator[str]:230 """Throwaway Postgres on a unix socket with migrations applied."""231 datadir = tmp_path_factory.mktemp("pgdata")232 sockdir = tmp_path_factory.mktemp("pgsock")233 subprocess.run( # noqa: S603234 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],235 check=True,236 capture_output=True,237 )238 proc = subprocess.Popen( # noqa: S603239 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],240 stdout=subprocess.DEVNULL,241 stderr=subprocess.DEVNULL,242 )243 try:244 deadline = time.monotonic() + 30245 while (246 subprocess.run( # noqa: S603247 ["pg_isready", "-h", str(sockdir), "-U", "test"],248 check=False,249 capture_output=True,250 ).returncode251 != 0252 ):253 # The socket appears before recovery finishes; createdb would254 # fail with "the database system is starting up".255 if time.monotonic() > deadline:256 msg = "postgres did not start"257> raise RuntimeError(msg)258E RuntimeError: postgres did not start259260nixbot/tests/support.py:319: RuntimeError261_______________________ ERROR at setup of test_homepage ________________________262[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14263264request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>265tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')266267 @pytest.fixture(scope="module")268 def postgres_dsn(269 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory270 ) -> Iterator[str]:271 if shutil.which("initdb") is None:272 pytest.skip("postgresql not available")273 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")274> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:275 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^276277nixbot/tests/conftest.py:33: 278_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 279/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__280 return next(self.gen)281 ^^^^^^^^^^^^^^282_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 283284tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')285dbname = 'web'286287 @contextlib.contextmanager288 def ephemeral_postgres(289 tmp_path_factory: pytest.TempPathFactory, dbname: str290 ) -> Iterator[str]:291 """Throwaway Postgres on a unix socket with migrations applied."""292 datadir = tmp_path_factory.mktemp("pgdata")293 sockdir = tmp_path_factory.mktemp("pgsock")294 subprocess.run( # noqa: S603295 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],296 check=True,297 capture_output=True,298 )299 proc = subprocess.Popen( # noqa: S603300 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],301 stdout=subprocess.DEVNULL,302 stderr=subprocess.DEVNULL,303 )304 try:305 deadline = time.monotonic() + 30306 while (307 subprocess.run( # noqa: S603308 ["pg_isready", "-h", str(sockdir), "-U", "test"],309 check=False,310 capture_output=True,311 ).returncode312 != 0313 ):314 # The socket appears before recovery finishes; createdb would315 # fail with "the database system is starting up".316 if time.monotonic() > deadline:317 msg = "postgres did not start"318> raise RuntimeError(msg)319E RuntimeError: postgres did not start320321nixbot/tests/support.py:319: RuntimeError322_______________ ERROR at setup of test_project_page_with_filters _______________323[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14324325request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>326tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')327328 @pytest.fixture(scope="module")329 def postgres_dsn(330 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory331 ) -> Iterator[str]:332 if shutil.which("initdb") is None:333 pytest.skip("postgresql not available")334 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")335> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:336 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^337338nixbot/tests/conftest.py:33: 339_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 340/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__341 return next(self.gen)342 ^^^^^^^^^^^^^^343_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 344345tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')346dbname = 'web'347348 @contextlib.contextmanager349 def ephemeral_postgres(350 tmp_path_factory: pytest.TempPathFactory, dbname: str351 ) -> Iterator[str]:352 """Throwaway Postgres on a unix socket with migrations applied."""353 datadir = tmp_path_factory.mktemp("pgdata")354 sockdir = tmp_path_factory.mktemp("pgsock")355 subprocess.run( # noqa: S603356 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],357 check=True,358 capture_output=True,359 )360 proc = subprocess.Popen( # noqa: S603361 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],362 stdout=subprocess.DEVNULL,363 stderr=subprocess.DEVNULL,364 )365 try:366 deadline = time.monotonic() + 30367 while (368 subprocess.run( # noqa: S603369 ["pg_isready", "-h", str(sockdir), "-U", "test"],370 check=False,371 capture_output=True,372 ).returncode373 != 0374 ):375 # The socket appears before recovery finishes; createdb would376 # fail with "the database system is starting up".377 if time.monotonic() > deadline:378 msg = "postgres did not start"379> raise RuntimeError(msg)380E RuntimeError: postgres did not start381382nixbot/tests/support.py:319: RuntimeError383___________________ ERROR at setup of test_status_badge_urls ___________________384[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14385386request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>387tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')388389 @pytest.fixture(scope="module")390 def postgres_dsn(391 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory392 ) -> Iterator[str]:393 if shutil.which("initdb") is None:394 pytest.skip("postgresql not available")395 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")396> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:397 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^398399nixbot/tests/conftest.py:33: 400_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 401/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__402 return next(self.gen)403 ^^^^^^^^^^^^^^404_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 405406tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')407dbname = 'web'408409 @contextlib.contextmanager410 def ephemeral_postgres(411 tmp_path_factory: pytest.TempPathFactory, dbname: str412 ) -> Iterator[str]:413 """Throwaway Postgres on a unix socket with migrations applied."""414 datadir = tmp_path_factory.mktemp("pgdata")415 sockdir = tmp_path_factory.mktemp("pgsock")416 subprocess.run( # noqa: S603417 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],418 check=True,419 capture_output=True,420 )421 proc = subprocess.Popen( # noqa: S603422 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],423 stdout=subprocess.DEVNULL,424 stderr=subprocess.DEVNULL,425 )426 try:427 deadline = time.monotonic() + 30428 while (429 subprocess.run( # noqa: S603430 ["pg_isready", "-h", str(sockdir), "-U", "test"],431 check=False,432 capture_output=True,433 ).returncode434 != 0435 ):436 # The socket appears before recovery finishes; createdb would437 # fail with "the database system is starting up".438 if time.monotonic() > deadline:439 msg = "postgres did not start"440> raise RuntimeError(msg)441E RuntimeError: postgres did not start442443nixbot/tests/support.py:319: RuntimeError444____________ ERROR at setup of test_all_digit_branch_is_filterable _____________445[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14446447request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>448tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')449450 @pytest.fixture(scope="module")451 def postgres_dsn(452 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory453 ) -> Iterator[str]:454 if shutil.which("initdb") is None:455 pytest.skip("postgresql not available")456 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")457> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:458 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^459460nixbot/tests/conftest.py:33: 461_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 462/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__463 return next(self.gen)464 ^^^^^^^^^^^^^^465_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 466467tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')468dbname = 'web'469470 @contextlib.contextmanager471 def ephemeral_postgres(472 tmp_path_factory: pytest.TempPathFactory, dbname: str473 ) -> Iterator[str]:474 """Throwaway Postgres on a unix socket with migrations applied."""475 datadir = tmp_path_factory.mktemp("pgdata")476 sockdir = tmp_path_factory.mktemp("pgsock")477 subprocess.run( # noqa: S603478 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],479 check=True,480 capture_output=True,481 )482 proc = subprocess.Popen( # noqa: S603483 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],484 stdout=subprocess.DEVNULL,485 stderr=subprocess.DEVNULL,486 )487 try:488 deadline = time.monotonic() + 30489 while (490 subprocess.run( # noqa: S603491 ["pg_isready", "-h", str(sockdir), "-U", "test"],492 check=False,493 capture_output=True,494 ).returncode495 != 0496 ):497 # The socket appears before recovery finishes; createdb would498 # fail with "the database system is starting up".499 if time.monotonic() > deadline:500 msg = "postgres did not start"501> raise RuntimeError(msg)502E RuntimeError: postgres did not start503504nixbot/tests/support.py:319: RuntimeError505______________________ ERROR at setup of test_build_page _______________________506[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14507508request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>509tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')510511 @pytest.fixture(scope="module")512 def postgres_dsn(513 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory514 ) -> Iterator[str]:515 if shutil.which("initdb") is None:516 pytest.skip("postgresql not available")517 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")518> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:519 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^520521nixbot/tests/conftest.py:33: 522_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 523/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__524 return next(self.gen)525 ^^^^^^^^^^^^^^526_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 527528tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')529dbname = 'web'530531 @contextlib.contextmanager532 def ephemeral_postgres(533 tmp_path_factory: pytest.TempPathFactory, dbname: str534 ) -> Iterator[str]:535 """Throwaway Postgres on a unix socket with migrations applied."""536 datadir = tmp_path_factory.mktemp("pgdata")537 sockdir = tmp_path_factory.mktemp("pgsock")538 subprocess.run( # noqa: S603539 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],540 check=True,541 capture_output=True,542 )543 proc = subprocess.Popen( # noqa: S603544 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],545 stdout=subprocess.DEVNULL,546 stderr=subprocess.DEVNULL,547 )548 try:549 deadline = time.monotonic() + 30550 while (551 subprocess.run( # noqa: S603552 ["pg_isready", "-h", str(sockdir), "-U", "test"],553 check=False,554 capture_output=True,555 ).returncode556 != 0557 ):558 # The socket appears before recovery finishes; createdb would559 # fail with "the database system is starting up".560 if time.monotonic() > deadline:561 msg = "postgres did not start"562> raise RuntimeError(msg)563E RuntimeError: postgres did not start564565nixbot/tests/support.py:319: RuntimeError566___________ ERROR at setup of test_attribute_rows_fragment_paginates ___________567[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14568569request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>570tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')571572 @pytest.fixture(scope="module")573 def postgres_dsn(574 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory575 ) -> Iterator[str]:576 if shutil.which("initdb") is None:577 pytest.skip("postgresql not available")578 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")579> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:580 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^581582nixbot/tests/conftest.py:33: 583_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 584/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__585 return next(self.gen)586 ^^^^^^^^^^^^^^587_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 588589tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')590dbname = 'web'591592 @contextlib.contextmanager593 def ephemeral_postgres(594 tmp_path_factory: pytest.TempPathFactory, dbname: str595 ) -> Iterator[str]:596 """Throwaway Postgres on a unix socket with migrations applied."""597 datadir = tmp_path_factory.mktemp("pgdata")598 sockdir = tmp_path_factory.mktemp("pgsock")599 subprocess.run( # noqa: S603600 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],601 check=True,602 capture_output=True,603 )604 proc = subprocess.Popen( # noqa: S603605 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],606 stdout=subprocess.DEVNULL,607 stderr=subprocess.DEVNULL,608 )609 try:610 deadline = time.monotonic() + 30611 while (612 subprocess.run( # noqa: S603613 ["pg_isready", "-h", str(sockdir), "-U", "test"],614 check=False,615 capture_output=True,616 ).returncode617 != 0618 ):619 # The socket appears before recovery finishes; createdb would620 # fail with "the database system is starting up".621 if time.monotonic() > deadline:622 msg = "postgres did not start"623> raise RuntimeError(msg)624E RuntimeError: postgres did not start625626nixbot/tests/support.py:319: RuntimeError627_________ ERROR at setup of test_build_page_shows_eval_warning_groups __________628[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14629630request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>631tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')632633 @pytest.fixture(scope="module")634 def postgres_dsn(635 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory636 ) -> Iterator[str]:637 if shutil.which("initdb") is None:638 pytest.skip("postgresql not available")639 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")640> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:641 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^642643nixbot/tests/conftest.py:33: 644_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 645/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__646 return next(self.gen)647 ^^^^^^^^^^^^^^648_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 649650tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')651dbname = 'web'652653 @contextlib.contextmanager654 def ephemeral_postgres(655 tmp_path_factory: pytest.TempPathFactory, dbname: str656 ) -> Iterator[str]:657 """Throwaway Postgres on a unix socket with migrations applied."""658 datadir = tmp_path_factory.mktemp("pgdata")659 sockdir = tmp_path_factory.mktemp("pgsock")660 subprocess.run( # noqa: S603661 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],662 check=True,663 capture_output=True,664 )665 proc = subprocess.Popen( # noqa: S603666 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],667 stdout=subprocess.DEVNULL,668 stderr=subprocess.DEVNULL,669 )670 try:671 deadline = time.monotonic() + 30672 while (673 subprocess.run( # noqa: S603674 ["pg_isready", "-h", str(sockdir), "-U", "test"],675 check=False,676 capture_output=True,677 ).returncode678 != 0679 ):680 # The socket appears before recovery finishes; createdb would681 # fail with "the database system is starting up".682 if time.monotonic() > deadline:683 msg = "postgres did not start"684> raise RuntimeError(msg)685E RuntimeError: postgres did not start686687nixbot/tests/support.py:319: RuntimeError688_____ ERROR at setup of test_build_page_shows_per_attribute_eval_warnings ______689[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14690691request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>692tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')693694 @pytest.fixture(scope="module")695 def postgres_dsn(696 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory697 ) -> Iterator[str]:698 if shutil.which("initdb") is None:699 pytest.skip("postgresql not available")700 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")701> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:702 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^703704nixbot/tests/conftest.py:33: 705_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 706/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__707 return next(self.gen)708 ^^^^^^^^^^^^^^709_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 710711tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')712dbname = 'web'713714 @contextlib.contextmanager715 def ephemeral_postgres(716 tmp_path_factory: pytest.TempPathFactory, dbname: str717 ) -> Iterator[str]:718 """Throwaway Postgres on a unix socket with migrations applied."""719 datadir = tmp_path_factory.mktemp("pgdata")720 sockdir = tmp_path_factory.mktemp("pgsock")721 subprocess.run( # noqa: S603722 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],723 check=True,724 capture_output=True,725 )726 proc = subprocess.Popen( # noqa: S603727 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],728 stdout=subprocess.DEVNULL,729 stderr=subprocess.DEVNULL,730 )731 try:732 deadline = time.monotonic() + 30733 while (734 subprocess.run( # noqa: S603735 ["pg_isready", "-h", str(sockdir), "-U", "test"],736 check=False,737 capture_output=True,738 ).returncode739 != 0740 ):741 # The socket appears before recovery finishes; createdb would742 # fail with "the database system is starting up".743 if time.monotonic() > deadline:744 msg = "postgres did not start"745> raise RuntimeError(msg)746E RuntimeError: postgres did not start747748nixbot/tests/support.py:319: RuntimeError749___________ ERROR at setup of test_build_page_renders_ansi_in_error ____________750[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14751752request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>753tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')754755 @pytest.fixture(scope="module")756 def postgres_dsn(757 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory758 ) -> Iterator[str]:759 if shutil.which("initdb") is None:760 pytest.skip("postgresql not available")761 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")762> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:763 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^764765nixbot/tests/conftest.py:33: 766_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 767/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__768 return next(self.gen)769 ^^^^^^^^^^^^^^770_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 771772tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')773dbname = 'web'774775 @contextlib.contextmanager776 def ephemeral_postgres(777 tmp_path_factory: pytest.TempPathFactory, dbname: str778 ) -> Iterator[str]:779 """Throwaway Postgres on a unix socket with migrations applied."""780 datadir = tmp_path_factory.mktemp("pgdata")781 sockdir = tmp_path_factory.mktemp("pgsock")782 subprocess.run( # noqa: S603783 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],784 check=True,785 capture_output=True,786 )787 proc = subprocess.Popen( # noqa: S603788 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],789 stdout=subprocess.DEVNULL,790 stderr=subprocess.DEVNULL,791 )792 try:793 deadline = time.monotonic() + 30794 while (795 subprocess.run( # noqa: S603796 ["pg_isready", "-h", str(sockdir), "-U", "test"],797 check=False,798 capture_output=True,799 ).returncode800 != 0801 ):802 # The socket appears before recovery finishes; createdb would803 # fail with "the database system is starting up".804 if time.monotonic() > deadline:805 msg = "postgres did not start"806> raise RuntimeError(msg)807E RuntimeError: postgres did not start808809nixbot/tests/support.py:319: RuntimeError810_____________ ERROR at setup of test_running_build_shows_progress ______________811[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14812813request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>814tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')815816 @pytest.fixture(scope="module")817 def postgres_dsn(818 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory819 ) -> Iterator[str]:820 if shutil.which("initdb") is None:821 pytest.skip("postgresql not available")822 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")823> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:824 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^825826nixbot/tests/conftest.py:33: 827_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 828/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__829 return next(self.gen)830 ^^^^^^^^^^^^^^831_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 832833tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')834dbname = 'web'835836 @contextlib.contextmanager837 def ephemeral_postgres(838 tmp_path_factory: pytest.TempPathFactory, dbname: str839 ) -> Iterator[str]:840 """Throwaway Postgres on a unix socket with migrations applied."""841 datadir = tmp_path_factory.mktemp("pgdata")842 sockdir = tmp_path_factory.mktemp("pgsock")843 subprocess.run( # noqa: S603844 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],845 check=True,846 capture_output=True,847 )848 proc = subprocess.Popen( # noqa: S603849 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],850 stdout=subprocess.DEVNULL,851 stderr=subprocess.DEVNULL,852 )853 try:854 deadline = time.monotonic() + 30855 while (856 subprocess.run( # noqa: S603857 ["pg_isready", "-h", str(sockdir), "-U", "test"],858 check=False,859 capture_output=True,860 ).returncode861 != 0862 ):863 # The socket appears before recovery finishes; createdb would864 # fail with "the database system is starting up".865 if time.monotonic() > deadline:866 msg = "postgres did not start"867> raise RuntimeError(msg)868E RuntimeError: postgres did not start869870nixbot/tests/support.py:319: RuntimeError871________________ ERROR at setup of test_build_page_live_markers ________________872[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14873874request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>875tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')876877 @pytest.fixture(scope="module")878 def postgres_dsn(879 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory880 ) -> Iterator[str]:881 if shutil.which("initdb") is None:882 pytest.skip("postgresql not available")883 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")884> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:885 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^886887nixbot/tests/conftest.py:33: 888_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 889/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__890 return next(self.gen)891 ^^^^^^^^^^^^^^892_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 893894tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')895dbname = 'web'896897 @contextlib.contextmanager898 def ephemeral_postgres(899 tmp_path_factory: pytest.TempPathFactory, dbname: str900 ) -> Iterator[str]:901 """Throwaway Postgres on a unix socket with migrations applied."""902 datadir = tmp_path_factory.mktemp("pgdata")903 sockdir = tmp_path_factory.mktemp("pgsock")904 subprocess.run( # noqa: S603905 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],906 check=True,907 capture_output=True,908 )909 proc = subprocess.Popen( # noqa: S603910 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],911 stdout=subprocess.DEVNULL,912 stderr=subprocess.DEVNULL,913 )914 try:915 deadline = time.monotonic() + 30916 while (917 subprocess.run( # noqa: S603918 ["pg_isready", "-h", str(sockdir), "-U", "test"],919 check=False,920 capture_output=True,921 ).returncode922 != 0923 ):924 # The socket appears before recovery finishes; createdb would925 # fail with "the database system is starting up".926 if time.monotonic() > deadline:927 msg = "postgres did not start"928> raise RuntimeError(msg)929E RuntimeError: postgres did not start930931nixbot/tests/support.py:319: RuntimeError932___________________ ERROR at setup of test_attribute_history ___________________933[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14934935request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>936tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')937938 @pytest.fixture(scope="module")939 def postgres_dsn(940 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory941 ) -> Iterator[str]:942 if shutil.which("initdb") is None:943 pytest.skip("postgresql not available")944 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")945> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:946 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^947948nixbot/tests/conftest.py:33: 949_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 950/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__951 return next(self.gen)952 ^^^^^^^^^^^^^^953_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 954955tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')956dbname = 'web'957958 @contextlib.contextmanager959 def ephemeral_postgres(960 tmp_path_factory: pytest.TempPathFactory, dbname: str961 ) -> Iterator[str]:962 """Throwaway Postgres on a unix socket with migrations applied."""963 datadir = tmp_path_factory.mktemp("pgdata")964 sockdir = tmp_path_factory.mktemp("pgsock")965 subprocess.run( # noqa: S603966 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],967 check=True,968 capture_output=True,969 )970 proc = subprocess.Popen( # noqa: S603971 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],972 stdout=subprocess.DEVNULL,973 stderr=subprocess.DEVNULL,974 )975 try:976 deadline = time.monotonic() + 30977 while (978 subprocess.run( # noqa: S603979 ["pg_isready", "-h", str(sockdir), "-U", "test"],980 check=False,981 capture_output=True,982 ).returncode983 != 0984 ):985 # The socket appears before recovery finishes; createdb would986 # fail with "the database system is starting up".987 if time.monotonic() > deadline:988 msg = "postgres did not start"989> raise RuntimeError(msg)990E RuntimeError: postgres did not start991992nixbot/tests/support.py:319: RuntimeError993_____________ ERROR at setup of test_overview_ignores_pr_branches ______________994[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14995996request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>997tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')998999 @pytest.fixture(scope="module")1000 def postgres_dsn(1001 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory1002 ) -> Iterator[str]:1003 if shutil.which("initdb") is None:1004 pytest.skip("postgresql not available")1005 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")1006> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1007 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^10081009nixbot/tests/conftest.py:33: 1010_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1011/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1012 return next(self.gen)1013 ^^^^^^^^^^^^^^1014_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10151016tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')1017dbname = 'web'10181019 @contextlib.contextmanager1020 def ephemeral_postgres(1021 tmp_path_factory: pytest.TempPathFactory, dbname: str1022 ) -> Iterator[str]:1023 """Throwaway Postgres on a unix socket with migrations applied."""1024 datadir = tmp_path_factory.mktemp("pgdata")1025 sockdir = tmp_path_factory.mktemp("pgsock")1026 subprocess.run( # noqa: S6031027 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1028 check=True,1029 capture_output=True,1030 )1031 proc = subprocess.Popen( # noqa: S6031032 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1033 stdout=subprocess.DEVNULL,1034 stderr=subprocess.DEVNULL,1035 )1036 try:1037 deadline = time.monotonic() + 301038 while (1039 subprocess.run( # noqa: S6031040 ["pg_isready", "-h", str(sockdir), "-U", "test"],1041 check=False,1042 capture_output=True,1043 ).returncode1044 != 01045 ):1046 # The socket appears before recovery finishes; createdb would1047 # fail with "the database system is starting up".1048 if time.monotonic() > deadline:1049 msg = "postgres did not start"1050> raise RuntimeError(msg)1051E RuntimeError: postgres did not start10521053nixbot/tests/support.py:319: RuntimeError1054___________ ERROR at setup of test_pending_build_shows_eval_blocker ____________1055[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1410561057request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>1058tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')10591060 @pytest.fixture(scope="module")1061 def postgres_dsn(1062 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory1063 ) -> Iterator[str]:1064 if shutil.which("initdb") is None:1065 pytest.skip("postgresql not available")1066 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")1067> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1068 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^10691070nixbot/tests/conftest.py:33: 1071_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1072/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1073 return next(self.gen)1074 ^^^^^^^^^^^^^^1075_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10761077tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')1078dbname = 'web'10791080 @contextlib.contextmanager1081 def ephemeral_postgres(1082 tmp_path_factory: pytest.TempPathFactory, dbname: str1083 ) -> Iterator[str]:1084 """Throwaway Postgres on a unix socket with migrations applied."""1085 datadir = tmp_path_factory.mktemp("pgdata")1086 sockdir = tmp_path_factory.mktemp("pgsock")1087 subprocess.run( # noqa: S6031088 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1089 check=True,1090 capture_output=True,1091 )1092 proc = subprocess.Popen( # noqa: S6031093 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1094 stdout=subprocess.DEVNULL,1095 stderr=subprocess.DEVNULL,1096 )1097 try:1098 deadline = time.monotonic() + 301099 while (1100 subprocess.run( # noqa: S6031101 ["pg_isready", "-h", str(sockdir), "-U", "test"],1102 check=False,1103 capture_output=True,1104 ).returncode1105 != 01106 ):1107 # The socket appears before recovery finishes; createdb would1108 # fail with "the database system is starting up".1109 if time.monotonic() > deadline:1110 msg = "postgres did not start"1111> raise RuntimeError(msg)1112E RuntimeError: postgres did not start11131114nixbot/tests/support.py:319: RuntimeError1115_________ ERROR at setup of test_project_filter_escapes_like_wildcards _________1116[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1411171118request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>1119tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')11201121 @pytest.fixture(scope="module")1122 def postgres_dsn(1123 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory1124 ) -> Iterator[str]:1125 if shutil.which("initdb") is None:1126 pytest.skip("postgresql not available")1127 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")1128> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1129 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^11301131nixbot/tests/conftest.py:33: 1132_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1133/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1134 return next(self.gen)1135 ^^^^^^^^^^^^^^1136_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 11371138tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')1139dbname = 'web'11401141 @contextlib.contextmanager1142 def ephemeral_postgres(1143 tmp_path_factory: pytest.TempPathFactory, dbname: str1144 ) -> Iterator[str]:1145 """Throwaway Postgres on a unix socket with migrations applied."""1146 datadir = tmp_path_factory.mktemp("pgdata")1147 sockdir = tmp_path_factory.mktemp("pgsock")1148 subprocess.run( # noqa: S6031149 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1150 check=True,1151 capture_output=True,1152 )1153 proc = subprocess.Popen( # noqa: S6031154 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1155 stdout=subprocess.DEVNULL,1156 stderr=subprocess.DEVNULL,1157 )1158 try:1159 deadline = time.monotonic() + 301160 while (1161 subprocess.run( # noqa: S6031162 ["pg_isready", "-h", str(sockdir), "-U", "test"],1163 check=False,1164 capture_output=True,1165 ).returncode1166 != 01167 ):1168 # The socket appears before recovery finishes; createdb would1169 # fail with "the database system is starting up".1170 if time.monotonic() > deadline:1171 msg = "postgres did not start"1172> raise RuntimeError(msg)1173E RuntimeError: postgres did not start11741175nixbot/tests/support.py:319: RuntimeError1176_________ ERROR at setup of test_project_store_sync_and_legacy_import __________1177[gw5] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1411781179self = <Coroutine test_project_store_sync_and_legacy_import>11801181 def setup(self) -> None:1182 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1183 if runner_fixture_id not in self.fixturenames:1184 self.fixturenames.append(runner_fixture_id)1185 # When loop factories are configured, resolve the loop factory1186 # fixture early so that a factory variant change cascades cache1187 # invalidation before any async fixture checks its cache.1188 hook_caller = self.config.hook.pytest_asyncio_loop_factories1189 if hook_caller.get_hookimpls():1190 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1191> return super().setup()1192 ^^^^^^^^^^^^^^^11931194/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1195_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1196/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:926: in pytest_fixture_setup1197 return (yield)1198 ^^^^^1199nixbot/tests/conftest.py:33: in postgres_dsn1200 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1201 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1202/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1203 return next(self.gen)1204 ^^^^^^^^^^^^^^1205_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 12061207tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw5'), _retention_count=3, _retention_policy='all')1208dbname = 'forge'12091210 @contextlib.contextmanager1211 def ephemeral_postgres(1212 tmp_path_factory: pytest.TempPathFactory, dbname: str1213 ) -> Iterator[str]:1214 """Throwaway Postgres on a unix socket with migrations applied."""1215 datadir = tmp_path_factory.mktemp("pgdata")1216 sockdir = tmp_path_factory.mktemp("pgsock")1217 subprocess.run( # noqa: S6031218 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1219 check=True,1220 capture_output=True,1221 )1222 proc = subprocess.Popen( # noqa: S6031223 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1224 stdout=subprocess.DEVNULL,1225 stderr=subprocess.DEVNULL,1226 )1227 try:1228 deadline = time.monotonic() + 301229 while (1230 subprocess.run( # noqa: S6031231 ["pg_isready", "-h", str(sockdir), "-U", "test"],1232 check=False,1233 capture_output=True,1234 ).returncode1235 != 01236 ):1237 # The socket appears before recovery finishes; createdb would1238 # fail with "the database system is starting up".1239 if time.monotonic() > deadline:1240 msg = "postgres did not start"1241> raise RuntimeError(msg)1242E RuntimeError: postgres did not start12431244nixbot/tests/support.py:319: RuntimeError1245___________ ERROR at setup of test_page_out_of_range_does_not_error ____________1246[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1412471248request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>1249tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')12501251 @pytest.fixture(scope="module")1252 def postgres_dsn(1253 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory1254 ) -> Iterator[str]:1255 if shutil.which("initdb") is None:1256 pytest.skip("postgresql not available")1257 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")1258> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1259 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^12601261nixbot/tests/conftest.py:33: 1262_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1263/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1264 return next(self.gen)1265 ^^^^^^^^^^^^^^1266_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 12671268tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')1269dbname = 'web'12701271 @contextlib.contextmanager1272 def ephemeral_postgres(1273 tmp_path_factory: pytest.TempPathFactory, dbname: str1274 ) -> Iterator[str]:1275 """Throwaway Postgres on a unix socket with migrations applied."""1276 datadir = tmp_path_factory.mktemp("pgdata")1277 sockdir = tmp_path_factory.mktemp("pgsock")1278 subprocess.run( # noqa: S6031279 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1280 check=True,1281 capture_output=True,1282 )1283 proc = subprocess.Popen( # noqa: S6031284 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1285 stdout=subprocess.DEVNULL,1286 stderr=subprocess.DEVNULL,1287 )1288 try:1289 deadline = time.monotonic() + 301290 while (1291 subprocess.run( # noqa: S6031292 ["pg_isready", "-h", str(sockdir), "-U", "test"],1293 check=False,1294 capture_output=True,1295 ).returncode1296 != 01297 ):1298 # The socket appears before recovery finishes; createdb would1299 # fail with "the database system is starting up".1300 if time.monotonic() > deadline:1301 msg = "postgres did not start"1302> raise RuntimeError(msg)1303E RuntimeError: postgres did not start13041305nixbot/tests/support.py:319: RuntimeError1306_____________________ ERROR at setup of test_activity_page _____________________1307[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1413081309request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>1310tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')13111312 @pytest.fixture(scope="module")1313 def postgres_dsn(1314 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory1315 ) -> Iterator[str]:1316 if shutil.which("initdb") is None:1317 pytest.skip("postgresql not available")1318 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")1319> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1320 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^13211322nixbot/tests/conftest.py:33: 1323_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1324/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1325 return next(self.gen)1326 ^^^^^^^^^^^^^^1327_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 13281329tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')1330dbname = 'web'13311332 @contextlib.contextmanager1333 def ephemeral_postgres(1334 tmp_path_factory: pytest.TempPathFactory, dbname: str1335 ) -> Iterator[str]:1336 """Throwaway Postgres on a unix socket with migrations applied."""1337 datadir = tmp_path_factory.mktemp("pgdata")1338 sockdir = tmp_path_factory.mktemp("pgsock")1339 subprocess.run( # noqa: S6031340 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1341 check=True,1342 capture_output=True,1343 )1344 proc = subprocess.Popen( # noqa: S6031345 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1346 stdout=subprocess.DEVNULL,1347 stderr=subprocess.DEVNULL,1348 )1349 try:1350 deadline = time.monotonic() + 301351 while (1352 subprocess.run( # noqa: S6031353 ["pg_isready", "-h", str(sockdir), "-U", "test"],1354 check=False,1355 capture_output=True,1356 ).returncode1357 != 01358 ):1359 # The socket appears before recovery finishes; createdb would1360 # fail with "the database system is starting up".1361 if time.monotonic() > deadline:1362 msg = "postgres did not start"1363> raise RuntimeError(msg)1364E RuntimeError: postgres did not start13651366nixbot/tests/support.py:319: RuntimeError1367______ ERROR at setup of test_legacy_import_runs_despite_pull_based_rows _______1368[gw5] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1413691370self = <Coroutine test_legacy_import_runs_despite_pull_based_rows>13711372 def setup(self) -> None:1373 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1374 if runner_fixture_id not in self.fixturenames:1375 self.fixturenames.append(runner_fixture_id)1376 # When loop factories are configured, resolve the loop factory1377 # fixture early so that a factory variant change cascades cache1378 # invalidation before any async fixture checks its cache.1379 hook_caller = self.config.hook.pytest_asyncio_loop_factories1380 if hook_caller.get_hookimpls():1381 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1382> return super().setup()1383 ^^^^^^^^^^^^^^^13841385/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1386_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1387nixbot/tests/conftest.py:33: in postgres_dsn1388 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1389 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1390/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1391 return next(self.gen)1392 ^^^^^^^^^^^^^^1393_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 13941395tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw5'), _retention_count=3, _retention_policy='all')1396dbname = 'forge'13971398 @contextlib.contextmanager1399 def ephemeral_postgres(1400 tmp_path_factory: pytest.TempPathFactory, dbname: str1401 ) -> Iterator[str]:1402 """Throwaway Postgres on a unix socket with migrations applied."""1403 datadir = tmp_path_factory.mktemp("pgdata")1404 sockdir = tmp_path_factory.mktemp("pgsock")1405 subprocess.run( # noqa: S6031406 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1407 check=True,1408 capture_output=True,1409 )1410 proc = subprocess.Popen( # noqa: S6031411 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1412 stdout=subprocess.DEVNULL,1413 stderr=subprocess.DEVNULL,1414 )1415 try:1416 deadline = time.monotonic() + 301417 while (1418 subprocess.run( # noqa: S6031419 ["pg_isready", "-h", str(sockdir), "-U", "test"],1420 check=False,1421 capture_output=True,1422 ).returncode1423 != 01424 ):1425 # The socket appears before recovery finishes; createdb would1426 # fail with "the database system is starting up".1427 if time.monotonic() > deadline:1428 msg = "postgres did not start"1429> raise RuntimeError(msg)1430E RuntimeError: postgres did not start14311432nixbot/tests/support.py:319: RuntimeError1433__________ ERROR at setup of test_activity_no_sentinel_on_exact_page ___________1434[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1414351436request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>1437tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')14381439 @pytest.fixture(scope="module")1440 def postgres_dsn(1441 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory1442 ) -> Iterator[str]:1443 if shutil.which("initdb") is None:1444 pytest.skip("postgresql not available")1445 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")1446> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1447 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^14481449nixbot/tests/conftest.py:33: 1450_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1451/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1452 return next(self.gen)1453 ^^^^^^^^^^^^^^1454_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 14551456tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')1457dbname = 'web'14581459 @contextlib.contextmanager1460 def ephemeral_postgres(1461 tmp_path_factory: pytest.TempPathFactory, dbname: str1462 ) -> Iterator[str]:1463 """Throwaway Postgres on a unix socket with migrations applied."""1464 datadir = tmp_path_factory.mktemp("pgdata")1465 sockdir = tmp_path_factory.mktemp("pgsock")1466 subprocess.run( # noqa: S6031467 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1468 check=True,1469 capture_output=True,1470 )1471 proc = subprocess.Popen( # noqa: S6031472 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1473 stdout=subprocess.DEVNULL,1474 stderr=subprocess.DEVNULL,1475 )1476 try:1477 deadline = time.monotonic() + 301478 while (1479 subprocess.run( # noqa: S6031480 ["pg_isready", "-h", str(sockdir), "-U", "test"],1481 check=False,1482 capture_output=True,1483 ).returncode1484 != 01485 ):1486 # The socket appears before recovery finishes; createdb would1487 # fail with "the database system is starting up".1488 if time.monotonic() > deadline:1489 msg = "postgres did not start"1490> raise RuntimeError(msg)1491E RuntimeError: postgres did not start14921493nixbot/tests/support.py:319: RuntimeError1494___________ ERROR at setup of test_activity_rows_fragment_pagination ___________1495[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1414961497request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>1498tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')14991500 @pytest.fixture(scope="module")1501 def postgres_dsn(1502 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory1503 ) -> Iterator[str]:1504 if shutil.which("initdb") is None:1505 pytest.skip("postgresql not available")1506 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")1507> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1508 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^15091510nixbot/tests/conftest.py:33: 1511_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1512/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1513 return next(self.gen)1514 ^^^^^^^^^^^^^^1515_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 15161517tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')1518dbname = 'web'15191520 @contextlib.contextmanager1521 def ephemeral_postgres(1522 tmp_path_factory: pytest.TempPathFactory, dbname: str1523 ) -> Iterator[str]:1524 """Throwaway Postgres on a unix socket with migrations applied."""1525 datadir = tmp_path_factory.mktemp("pgdata")1526 sockdir = tmp_path_factory.mktemp("pgsock")1527 subprocess.run( # noqa: S6031528 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1529 check=True,1530 capture_output=True,1531 )1532 proc = subprocess.Popen( # noqa: S6031533 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1534 stdout=subprocess.DEVNULL,1535 stderr=subprocess.DEVNULL,1536 )1537 try:1538 deadline = time.monotonic() + 301539 while (1540 subprocess.run( # noqa: S6031541 ["pg_isready", "-h", str(sockdir), "-U", "test"],1542 check=False,1543 capture_output=True,1544 ).returncode1545 != 01546 ):1547 # The socket appears before recovery finishes; createdb would1548 # fail with "the database system is starting up".1549 if time.monotonic() > deadline:1550 msg = "postgres did not start"1551> raise RuntimeError(msg)1552E RuntimeError: postgres did not start15531554nixbot/tests/support.py:319: RuntimeError1555_________ ERROR at setup of test_legacy_import_scopes_topics_per_forge _________1556[gw5] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1415571558self = <Coroutine test_legacy_import_scopes_topics_per_forge>15591560 def setup(self) -> None:1561 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1562 if runner_fixture_id not in self.fixturenames:1563 self.fixturenames.append(runner_fixture_id)1564 # When loop factories are configured, resolve the loop factory1565 # fixture early so that a factory variant change cascades cache1566 # invalidation before any async fixture checks its cache.1567 hook_caller = self.config.hook.pytest_asyncio_loop_factories1568 if hook_caller.get_hookimpls():1569 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1570> return super().setup()1571 ^^^^^^^^^^^^^^^15721573/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1574_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1575nixbot/tests/conftest.py:33: in postgres_dsn1576 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1577 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1578/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1579 return next(self.gen)1580 ^^^^^^^^^^^^^^1581_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 15821583tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw5'), _retention_count=3, _retention_policy='all')1584dbname = 'forge'15851586 @contextlib.contextmanager1587 def ephemeral_postgres(1588 tmp_path_factory: pytest.TempPathFactory, dbname: str1589 ) -> Iterator[str]:1590 """Throwaway Postgres on a unix socket with migrations applied."""1591 datadir = tmp_path_factory.mktemp("pgdata")1592 sockdir = tmp_path_factory.mktemp("pgsock")1593 subprocess.run( # noqa: S6031594 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1595 check=True,1596 capture_output=True,1597 )1598 proc = subprocess.Popen( # noqa: S6031599 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1600 stdout=subprocess.DEVNULL,1601 stderr=subprocess.DEVNULL,1602 )1603 try:1604 deadline = time.monotonic() + 301605 while (1606 subprocess.run( # noqa: S6031607 ["pg_isready", "-h", str(sockdir), "-U", "test"],1608 check=False,1609 capture_output=True,1610 ).returncode1611 != 01612 ):1613 # The socket appears before recovery finishes; createdb would1614 # fail with "the database system is starting up".1615 if time.monotonic() > deadline:1616 msg = "postgres did not start"1617> raise RuntimeError(msg)1618E RuntimeError: postgres did not start16191620nixbot/tests/support.py:319: RuntimeError1621_____________ ERROR at setup of test_project_rows_fragment_filters _____________1622[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1416231624request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>1625tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')16261627 @pytest.fixture(scope="module")1628 def postgres_dsn(1629 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory1630 ) -> Iterator[str]:1631 if shutil.which("initdb") is None:1632 pytest.skip("postgresql not available")1633 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")1634> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1635 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^16361637nixbot/tests/conftest.py:33: 1638_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1639/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1640 return next(self.gen)1641 ^^^^^^^^^^^^^^1642_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 16431644tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')1645dbname = 'web'16461647 @contextlib.contextmanager1648 def ephemeral_postgres(1649 tmp_path_factory: pytest.TempPathFactory, dbname: str1650 ) -> Iterator[str]:1651 """Throwaway Postgres on a unix socket with migrations applied."""1652 datadir = tmp_path_factory.mktemp("pgdata")1653 sockdir = tmp_path_factory.mktemp("pgsock")1654 subprocess.run( # noqa: S6031655 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1656 check=True,1657 capture_output=True,1658 )1659 proc = subprocess.Popen( # noqa: S6031660 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1661 stdout=subprocess.DEVNULL,1662 stderr=subprocess.DEVNULL,1663 )1664 try:1665 deadline = time.monotonic() + 301666 while (1667 subprocess.run( # noqa: S6031668 ["pg_isready", "-h", str(sockdir), "-U", "test"],1669 check=False,1670 capture_output=True,1671 ).returncode1672 != 01673 ):1674 # The socket appears before recovery finishes; createdb would1675 # fail with "the database system is starting up".1676 if time.monotonic() > deadline:1677 msg = "postgres did not start"1678> raise RuntimeError(msg)1679E RuntimeError: postgres did not start16801681nixbot/tests/support.py:319: RuntimeError1682__________________ ERROR at setup of test_metrics_are_gauges ___________________1683[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1416841685request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>1686tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')16871688 @pytest.fixture(scope="module")1689 def postgres_dsn(1690 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory1691 ) -> Iterator[str]:1692 if shutil.which("initdb") is None:1693 pytest.skip("postgresql not available")1694 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")1695> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1696 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^16971698nixbot/tests/conftest.py:33: 1699_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1700/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1701 return next(self.gen)1702 ^^^^^^^^^^^^^^1703_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 17041705tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')1706dbname = 'web'17071708 @contextlib.contextmanager1709 def ephemeral_postgres(1710 tmp_path_factory: pytest.TempPathFactory, dbname: str1711 ) -> Iterator[str]:1712 """Throwaway Postgres on a unix socket with migrations applied."""1713 datadir = tmp_path_factory.mktemp("pgdata")1714 sockdir = tmp_path_factory.mktemp("pgsock")1715 subprocess.run( # noqa: S6031716 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1717 check=True,1718 capture_output=True,1719 )1720 proc = subprocess.Popen( # noqa: S6031721 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1722 stdout=subprocess.DEVNULL,1723 stderr=subprocess.DEVNULL,1724 )1725 try:1726 deadline = time.monotonic() + 301727 while (1728 subprocess.run( # noqa: S6031729 ["pg_isready", "-h", str(sockdir), "-U", "test"],1730 check=False,1731 capture_output=True,1732 ).returncode1733 != 01734 ):1735 # The socket appears before recovery finishes; createdb would1736 # fail with "the database system is starting up".1737 if time.monotonic() > deadline:1738 msg = "postgres did not start"1739> raise RuntimeError(msg)1740E RuntimeError: postgres did not start17411742nixbot/tests/support.py:319: RuntimeError1743____________ ERROR at setup of test_prune_missing_disabled_projects ____________1744[gw5] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1417451746self = <Coroutine test_prune_missing_disabled_projects>17471748 def setup(self) -> None:1749 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1750 if runner_fixture_id not in self.fixturenames:1751 self.fixturenames.append(runner_fixture_id)1752 # When loop factories are configured, resolve the loop factory1753 # fixture early so that a factory variant change cascades cache1754 # invalidation before any async fixture checks its cache.1755 hook_caller = self.config.hook.pytest_asyncio_loop_factories1756 if hook_caller.get_hookimpls():1757 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1758> return super().setup()1759 ^^^^^^^^^^^^^^^17601761/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1762_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1763nixbot/tests/conftest.py:33: in postgres_dsn1764 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1765 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1766/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1767 return next(self.gen)1768 ^^^^^^^^^^^^^^1769_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 17701771tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw5'), _retention_count=3, _retention_policy='all')1772dbname = 'forge'17731774 @contextlib.contextmanager1775 def ephemeral_postgres(1776 tmp_path_factory: pytest.TempPathFactory, dbname: str1777 ) -> Iterator[str]:1778 """Throwaway Postgres on a unix socket with migrations applied."""1779 datadir = tmp_path_factory.mktemp("pgdata")1780 sockdir = tmp_path_factory.mktemp("pgsock")1781 subprocess.run( # noqa: S6031782 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1783 check=True,1784 capture_output=True,1785 )1786 proc = subprocess.Popen( # noqa: S6031787 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1788 stdout=subprocess.DEVNULL,1789 stderr=subprocess.DEVNULL,1790 )1791 try:1792 deadline = time.monotonic() + 301793 while (1794 subprocess.run( # noqa: S6031795 ["pg_isready", "-h", str(sockdir), "-U", "test"],1796 check=False,1797 capture_output=True,1798 ).returncode1799 != 01800 ):1801 # The socket appears before recovery finishes; createdb would1802 # fail with "the database system is starting up".1803 if time.monotonic() > deadline:1804 msg = "postgres did not start"1805> raise RuntimeError(msg)1806E RuntimeError: postgres did not start18071808nixbot/tests/support.py:319: RuntimeError1809__________________ ERROR at setup of test_metrics_are_cached ___________________1810[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1418111812request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>1813tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')18141815 @pytest.fixture(scope="module")1816 def postgres_dsn(1817 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory1818 ) -> Iterator[str]:1819 if shutil.which("initdb") is None:1820 pytest.skip("postgresql not available")1821 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")1822> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1823 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^18241825nixbot/tests/conftest.py:33: 1826_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1827/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1828 return next(self.gen)1829 ^^^^^^^^^^^^^^1830_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 18311832tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')1833dbname = 'web'18341835 @contextlib.contextmanager1836 def ephemeral_postgres(1837 tmp_path_factory: pytest.TempPathFactory, dbname: str1838 ) -> Iterator[str]:1839 """Throwaway Postgres on a unix socket with migrations applied."""1840 datadir = tmp_path_factory.mktemp("pgdata")1841 sockdir = tmp_path_factory.mktemp("pgsock")1842 subprocess.run( # noqa: S6031843 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1844 check=True,1845 capture_output=True,1846 )1847 proc = subprocess.Popen( # noqa: S6031848 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1849 stdout=subprocess.DEVNULL,1850 stderr=subprocess.DEVNULL,1851 )1852 try:1853 deadline = time.monotonic() + 301854 while (1855 subprocess.run( # noqa: S6031856 ["pg_isready", "-h", str(sockdir), "-U", "test"],1857 check=False,1858 capture_output=True,1859 ).returncode1860 != 01861 ):1862 # The socket appears before recovery finishes; createdb would1863 # fail with "the database system is starting up".1864 if time.monotonic() > deadline:1865 msg = "postgres did not start"1866> raise RuntimeError(msg)1867E RuntimeError: postgres did not start18681869nixbot/tests/support.py:319: RuntimeError1870________ ERROR at setup of test_project_store_sync_skips_unchanged_rows ________1871[gw5] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1418721873self = <Coroutine test_project_store_sync_skips_unchanged_rows>18741875 def setup(self) -> None:1876 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1877 if runner_fixture_id not in self.fixturenames:1878 self.fixturenames.append(runner_fixture_id)1879 # When loop factories are configured, resolve the loop factory1880 # fixture early so that a factory variant change cascades cache1881 # invalidation before any async fixture checks its cache.1882 hook_caller = self.config.hook.pytest_asyncio_loop_factories1883 if hook_caller.get_hookimpls():1884 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1885> return super().setup()1886 ^^^^^^^^^^^^^^^18871888/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1889_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1890nixbot/tests/conftest.py:33: in postgres_dsn1891 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1892 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1893/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1894 return next(self.gen)1895 ^^^^^^^^^^^^^^1896_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 18971898tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw5'), _retention_count=3, _retention_policy='all')1899dbname = 'forge'19001901 @contextlib.contextmanager1902 def ephemeral_postgres(1903 tmp_path_factory: pytest.TempPathFactory, dbname: str1904 ) -> Iterator[str]:1905 """Throwaway Postgres on a unix socket with migrations applied."""1906 datadir = tmp_path_factory.mktemp("pgdata")1907 sockdir = tmp_path_factory.mktemp("pgsock")1908 subprocess.run( # noqa: S6031909 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1910 check=True,1911 capture_output=True,1912 )1913 proc = subprocess.Popen( # noqa: S6031914 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1915 stdout=subprocess.DEVNULL,1916 stderr=subprocess.DEVNULL,1917 )1918 try:1919 deadline = time.monotonic() + 301920 while (1921 subprocess.run( # noqa: S6031922 ["pg_isready", "-h", str(sockdir), "-U", "test"],1923 check=False,1924 capture_output=True,1925 ).returncode1926 != 01927 ):1928 # The socket appears before recovery finishes; createdb would1929 # fail with "the database system is starting up".1930 if time.monotonic() > deadline:1931 msg = "postgres did not start"1932> raise RuntimeError(msg)1933E RuntimeError: postgres did not start19341935nixbot/tests/support.py:319: RuntimeError1936___________ ERROR at setup of test_static_urls_carry_content_version ___________1937[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1419381939request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>1940tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')19411942 @pytest.fixture(scope="module")1943 def postgres_dsn(1944 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory1945 ) -> Iterator[str]:1946 if shutil.which("initdb") is None:1947 pytest.skip("postgresql not available")1948 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")1949> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1950 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^19511952nixbot/tests/conftest.py:33: 1953_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1954/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1955 return next(self.gen)1956 ^^^^^^^^^^^^^^1957_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 19581959tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')1960dbname = 'web'19611962 @contextlib.contextmanager1963 def ephemeral_postgres(1964 tmp_path_factory: pytest.TempPathFactory, dbname: str1965 ) -> Iterator[str]:1966 """Throwaway Postgres on a unix socket with migrations applied."""1967 datadir = tmp_path_factory.mktemp("pgdata")1968 sockdir = tmp_path_factory.mktemp("pgsock")1969 subprocess.run( # noqa: S6031970 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1971 check=True,1972 capture_output=True,1973 )1974 proc = subprocess.Popen( # noqa: S6031975 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1976 stdout=subprocess.DEVNULL,1977 stderr=subprocess.DEVNULL,1978 )1979 try:1980 deadline = time.monotonic() + 301981 while (1982 subprocess.run( # noqa: S6031983 ["pg_isready", "-h", str(sockdir), "-U", "test"],1984 check=False,1985 capture_output=True,1986 ).returncode1987 != 01988 ):1989 # The socket appears before recovery finishes; createdb would1990 # fail with "the database system is starting up".1991 if time.monotonic() > deadline:1992 msg = "postgres did not start"1993> raise RuntimeError(msg)1994E RuntimeError: postgres did not start19951996nixbot/tests/support.py:319: RuntimeError1997_____________ ERROR at setup of test_legacy_project_urls_redirect ______________1998[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1419992000request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>20855 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"20856 if runner_fixture_id not in self.fixturenames:20857 self.fixturenames.append(runner_fixture_id)20858 # When loop factories are configured, resolve the loop factory20859 # fixture early so that a factory variant change cascades cache20860 # invalidation before any async fixture checks its cache.20861 hook_caller = self.config.hook.pytest_asyncio_loop_factories20862 if hook_caller.get_hookimpls():20863 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)20864> return super().setup()20865 ^^^^^^^^^^^^^^^2086620867/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 20868_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20869nixbot/tests/conftest.py:33: in postgres_dsn20870 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:20871 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^20872/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__20873 return next(self.gen)20874 ^^^^^^^^^^^^^^20875_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2087620877tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')20878dbname = 'orchestrator'2087920880 @contextlib.contextmanager20881 def ephemeral_postgres(20882 tmp_path_factory: pytest.TempPathFactory, dbname: str20883 ) -> Iterator[str]:20884 """Throwaway Postgres on a unix socket with migrations applied."""20885 datadir = tmp_path_factory.mktemp("pgdata")20886 sockdir = tmp_path_factory.mktemp("pgsock")20887 subprocess.run( # noqa: S60320888 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],20889 check=True,20890 capture_output=True,20891 )20892 proc = subprocess.Popen( # noqa: S60320893 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],20894 stdout=subprocess.DEVNULL,20895 stderr=subprocess.DEVNULL,20896 )20897 try:20898 deadline = time.monotonic() + 3020899 while (20900 subprocess.run( # noqa: S60320901 ["pg_isready", "-h", str(sockdir), "-U", "test"],20902 check=False,20903 capture_output=True,20904 ).returncode20905 != 020906 ):20907 # The socket appears before recovery finishes; createdb would20908 # fail with "the database system is starting up".20909 if time.monotonic() > deadline:20910 msg = "postgres did not start"20911> raise RuntimeError(msg)20912E RuntimeError: postgres did not start2091320914nixbot/tests/support.py:319: RuntimeError20915___________ ERROR at setup of test_rerun_effects_runs_effects_again ____________20916[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142091720918self = <Coroutine test_rerun_effects_runs_effects_again>2091920920 def setup(self) -> None:20921 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"20922 if runner_fixture_id not in self.fixturenames:20923 self.fixturenames.append(runner_fixture_id)20924 # When loop factories are configured, resolve the loop factory20925 # fixture early so that a factory variant change cascades cache20926 # invalidation before any async fixture checks its cache.20927 hook_caller = self.config.hook.pytest_asyncio_loop_factories20928 if hook_caller.get_hookimpls():20929 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)20930> return super().setup()20931 ^^^^^^^^^^^^^^^2093220933/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 20934_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20935nixbot/tests/conftest.py:33: in postgres_dsn20936 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:20937 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^20938/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__20939 return next(self.gen)20940 ^^^^^^^^^^^^^^20941_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2094220943tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')20944dbname = 'orchestrator'2094520946 @contextlib.contextmanager20947 def ephemeral_postgres(20948 tmp_path_factory: pytest.TempPathFactory, dbname: str20949 ) -> Iterator[str]:20950 """Throwaway Postgres on a unix socket with migrations applied."""20951 datadir = tmp_path_factory.mktemp("pgdata")20952 sockdir = tmp_path_factory.mktemp("pgsock")20953 subprocess.run( # noqa: S60320954 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],20955 check=True,20956 capture_output=True,20957 )20958 proc = subprocess.Popen( # noqa: S60320959 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],20960 stdout=subprocess.DEVNULL,20961 stderr=subprocess.DEVNULL,20962 )20963 try:20964 deadline = time.monotonic() + 3020965 while (20966 subprocess.run( # noqa: S60320967 ["pg_isready", "-h", str(sockdir), "-U", "test"],20968 check=False,20969 capture_output=True,20970 ).returncode20971 != 020972 ):20973 # The socket appears before recovery finishes; createdb would20974 # fail with "the database system is starting up".20975 if time.monotonic() > deadline:20976 msg = "postgres did not start"20977> raise RuntimeError(msg)20978E RuntimeError: postgres did not start2097920980nixbot/tests/support.py:319: RuntimeError20981___________ ERROR at setup of test_rerun_effects_cancels_hung_effect ___________20982[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142098320984self = <Coroutine test_rerun_effects_cancels_hung_effect>2098520986 def setup(self) -> None:20987 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"20988 if runner_fixture_id not in self.fixturenames:20989 self.fixturenames.append(runner_fixture_id)20990 # When loop factories are configured, resolve the loop factory20991 # fixture early so that a factory variant change cascades cache20992 # invalidation before any async fixture checks its cache.20993 hook_caller = self.config.hook.pytest_asyncio_loop_factories20994 if hook_caller.get_hookimpls():20995 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)20996> return super().setup()20997 ^^^^^^^^^^^^^^^2099820999/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21000_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21001nixbot/tests/conftest.py:33: in postgres_dsn21002 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21003 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21004/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21005 return next(self.gen)21006 ^^^^^^^^^^^^^^21007_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2100821009tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21010dbname = 'orchestrator'2101121012 @contextlib.contextmanager21013 def ephemeral_postgres(21014 tmp_path_factory: pytest.TempPathFactory, dbname: str21015 ) -> Iterator[str]:21016 """Throwaway Postgres on a unix socket with migrations applied."""21017 datadir = tmp_path_factory.mktemp("pgdata")21018 sockdir = tmp_path_factory.mktemp("pgsock")21019 subprocess.run( # noqa: S60321020 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21021 check=True,21022 capture_output=True,21023 )21024 proc = subprocess.Popen( # noqa: S60321025 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21026 stdout=subprocess.DEVNULL,21027 stderr=subprocess.DEVNULL,21028 )21029 try:21030 deadline = time.monotonic() + 3021031 while (21032 subprocess.run( # noqa: S60321033 ["pg_isready", "-h", str(sockdir), "-U", "test"],21034 check=False,21035 capture_output=True,21036 ).returncode21037 != 021038 ):21039 # The socket appears before recovery finishes; createdb would21040 # fail with "the database system is starting up".21041 if time.monotonic() > deadline:21042 msg = "postgres did not start"21043> raise RuntimeError(msg)21044E RuntimeError: postgres did not start2104521046nixbot/tests/support.py:319: RuntimeError21047__________________ ERROR at setup of test_cancel_hung_effect ___________________21048[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142104921050self = <Coroutine test_cancel_hung_effect>2105121052 def setup(self) -> None:21053 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21054 if runner_fixture_id not in self.fixturenames:21055 self.fixturenames.append(runner_fixture_id)21056 # When loop factories are configured, resolve the loop factory21057 # fixture early so that a factory variant change cascades cache21058 # invalidation before any async fixture checks its cache.21059 hook_caller = self.config.hook.pytest_asyncio_loop_factories21060 if hook_caller.get_hookimpls():21061 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21062> return super().setup()21063 ^^^^^^^^^^^^^^^2106421065/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21066_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21067nixbot/tests/conftest.py:33: in postgres_dsn21068 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21069 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21070/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21071 return next(self.gen)21072 ^^^^^^^^^^^^^^21073_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2107421075tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21076dbname = 'orchestrator'2107721078 @contextlib.contextmanager21079 def ephemeral_postgres(21080 tmp_path_factory: pytest.TempPathFactory, dbname: str21081 ) -> Iterator[str]:21082 """Throwaway Postgres on a unix socket with migrations applied."""21083 datadir = tmp_path_factory.mktemp("pgdata")21084 sockdir = tmp_path_factory.mktemp("pgsock")21085 subprocess.run( # noqa: S60321086 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21087 check=True,21088 capture_output=True,21089 )21090 proc = subprocess.Popen( # noqa: S60321091 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21092 stdout=subprocess.DEVNULL,21093 stderr=subprocess.DEVNULL,21094 )21095 try:21096 deadline = time.monotonic() + 3021097 while (21098 subprocess.run( # noqa: S60321099 ["pg_isready", "-h", str(sockdir), "-U", "test"],21100 check=False,21101 capture_output=True,21102 ).returncode21103 != 021104 ):21105 # The socket appears before recovery finishes; createdb would21106 # fail with "the database system is starting up".21107 if time.monotonic() > deadline:21108 msg = "postgres did not start"21109> raise RuntimeError(msg)21110E RuntimeError: postgres did not start2111121112nixbot/tests/support.py:319: RuntimeError21113__________________ ERROR at setup of test_rerun_single_effect __________________21114[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142111521116self = <Coroutine test_rerun_single_effect>2111721118 def setup(self) -> None:21119 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21120 if runner_fixture_id not in self.fixturenames:21121 self.fixturenames.append(runner_fixture_id)21122 # When loop factories are configured, resolve the loop factory21123 # fixture early so that a factory variant change cascades cache21124 # invalidation before any async fixture checks its cache.21125 hook_caller = self.config.hook.pytest_asyncio_loop_factories21126 if hook_caller.get_hookimpls():21127 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21128> return super().setup()21129 ^^^^^^^^^^^^^^^2113021131/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21132_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21133nixbot/tests/conftest.py:33: in postgres_dsn21134 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21135 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21136/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21137 return next(self.gen)21138 ^^^^^^^^^^^^^^21139_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2114021141tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21142dbname = 'orchestrator'2114321144 @contextlib.contextmanager21145 def ephemeral_postgres(21146 tmp_path_factory: pytest.TempPathFactory, dbname: str21147 ) -> Iterator[str]:21148 """Throwaway Postgres on a unix socket with migrations applied."""21149 datadir = tmp_path_factory.mktemp("pgdata")21150 sockdir = tmp_path_factory.mktemp("pgsock")21151 subprocess.run( # noqa: S60321152 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21153 check=True,21154 capture_output=True,21155 )21156 proc = subprocess.Popen( # noqa: S60321157 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21158 stdout=subprocess.DEVNULL,21159 stderr=subprocess.DEVNULL,21160 )21161 try:21162 deadline = time.monotonic() + 3021163 while (21164 subprocess.run( # noqa: S60321165 ["pg_isready", "-h", str(sockdir), "-U", "test"],21166 check=False,21167 capture_output=True,21168 ).returncode21169 != 021170 ):21171 # The socket appears before recovery finishes; createdb would21172 # fail with "the database system is starting up".21173 if time.monotonic() > deadline:21174 msg = "postgres did not start"21175> raise RuntimeError(msg)21176E RuntimeError: postgres did not start2117721178nixbot/tests/support.py:319: RuntimeError21179______________ ERROR at setup of test_recovery_rerun_runs_effects ______________21180[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142118121182self = <Coroutine test_recovery_rerun_runs_effects>2118321184 def setup(self) -> None:21185 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21186 if runner_fixture_id not in self.fixturenames:21187 self.fixturenames.append(runner_fixture_id)21188 # When loop factories are configured, resolve the loop factory21189 # fixture early so that a factory variant change cascades cache21190 # invalidation before any async fixture checks its cache.21191 hook_caller = self.config.hook.pytest_asyncio_loop_factories21192 if hook_caller.get_hookimpls():21193 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21194> return super().setup()21195 ^^^^^^^^^^^^^^^2119621197/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21198_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21199nixbot/tests/conftest.py:33: in postgres_dsn21200 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21201 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21202/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21203 return next(self.gen)21204 ^^^^^^^^^^^^^^21205_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2120621207tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21208dbname = 'orchestrator'2120921210 @contextlib.contextmanager21211 def ephemeral_postgres(21212 tmp_path_factory: pytest.TempPathFactory, dbname: str21213 ) -> Iterator[str]:21214 """Throwaway Postgres on a unix socket with migrations applied."""21215 datadir = tmp_path_factory.mktemp("pgdata")21216 sockdir = tmp_path_factory.mktemp("pgsock")21217 subprocess.run( # noqa: S60321218 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21219 check=True,21220 capture_output=True,21221 )21222 proc = subprocess.Popen( # noqa: S60321223 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21224 stdout=subprocess.DEVNULL,21225 stderr=subprocess.DEVNULL,21226 )21227 try:21228 deadline = time.monotonic() + 3021229 while (21230 subprocess.run( # noqa: S60321231 ["pg_isready", "-h", str(sockdir), "-U", "test"],21232 check=False,21233 capture_output=True,21234 ).returncode21235 != 021236 ):21237 # The socket appears before recovery finishes; createdb would21238 # fail with "the database system is starting up".21239 if time.monotonic() > deadline:21240 msg = "postgres did not start"21241> raise RuntimeError(msg)21242E RuntimeError: postgres did not start2124321244nixbot/tests/support.py:319: RuntimeError21245__ ERROR at setup of test_unsupported_system_attr_does_not_block_aggregation ___21246[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142124721248self = <Coroutine test_unsupported_system_attr_does_not_block_aggregation>2124921250 def setup(self) -> None:21251 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21252 if runner_fixture_id not in self.fixturenames:21253 self.fixturenames.append(runner_fixture_id)21254 # When loop factories are configured, resolve the loop factory21255 # fixture early so that a factory variant change cascades cache21256 # invalidation before any async fixture checks its cache.21257 hook_caller = self.config.hook.pytest_asyncio_loop_factories21258 if hook_caller.get_hookimpls():21259 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21260> return super().setup()21261 ^^^^^^^^^^^^^^^2126221263/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21264_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21265nixbot/tests/conftest.py:33: in postgres_dsn21266 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21267 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21268/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21269 return next(self.gen)21270 ^^^^^^^^^^^^^^21271_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2127221273tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21274dbname = 'orchestrator'2127521276 @contextlib.contextmanager21277 def ephemeral_postgres(21278 tmp_path_factory: pytest.TempPathFactory, dbname: str21279 ) -> Iterator[str]:21280 """Throwaway Postgres on a unix socket with migrations applied."""21281 datadir = tmp_path_factory.mktemp("pgdata")21282 sockdir = tmp_path_factory.mktemp("pgsock")21283 subprocess.run( # noqa: S60321284 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21285 check=True,21286 capture_output=True,21287 )21288 proc = subprocess.Popen( # noqa: S60321289 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21290 stdout=subprocess.DEVNULL,21291 stderr=subprocess.DEVNULL,21292 )21293 try:21294 deadline = time.monotonic() + 3021295 while (21296 subprocess.run( # noqa: S60321297 ["pg_isready", "-h", str(sockdir), "-U", "test"],21298 check=False,21299 capture_output=True,21300 ).returncode21301 != 021302 ):21303 # The socket appears before recovery finishes; createdb would21304 # fail with "the database system is starting up".21305 if time.monotonic() > deadline:21306 msg = "postgres did not start"21307> raise RuntimeError(msg)21308E RuntimeError: postgres did not start2130921310nixbot/tests/support.py:319: RuntimeError21311________ ERROR at setup of test_linked_context_reported_on_eval_failure ________21312[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142131321314self = <Coroutine test_linked_context_reported_on_eval_failure>2131521316 def setup(self) -> None:21317 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21318 if runner_fixture_id not in self.fixturenames:21319 self.fixturenames.append(runner_fixture_id)21320 # When loop factories are configured, resolve the loop factory21321 # fixture early so that a factory variant change cascades cache21322 # invalidation before any async fixture checks its cache.21323 hook_caller = self.config.hook.pytest_asyncio_loop_factories21324 if hook_caller.get_hookimpls():21325 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21326> return super().setup()21327 ^^^^^^^^^^^^^^^2132821329/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21330_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21331nixbot/tests/conftest.py:33: in postgres_dsn21332 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21333 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21334/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21335 return next(self.gen)21336 ^^^^^^^^^^^^^^21337_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2133821339tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21340dbname = 'orchestrator'2134121342 @contextlib.contextmanager21343 def ephemeral_postgres(21344 tmp_path_factory: pytest.TempPathFactory, dbname: str21345 ) -> Iterator[str]:21346 """Throwaway Postgres on a unix socket with migrations applied."""21347 datadir = tmp_path_factory.mktemp("pgdata")21348 sockdir = tmp_path_factory.mktemp("pgsock")21349 subprocess.run( # noqa: S60321350 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21351 check=True,21352 capture_output=True,21353 )21354 proc = subprocess.Popen( # noqa: S60321355 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21356 stdout=subprocess.DEVNULL,21357 stderr=subprocess.DEVNULL,21358 )21359 try:21360 deadline = time.monotonic() + 3021361 while (21362 subprocess.run( # noqa: S60321363 ["pg_isready", "-h", str(sockdir), "-U", "test"],21364 check=False,21365 capture_output=True,21366 ).returncode21367 != 021368 ):21369 # The socket appears before recovery finishes; createdb would21370 # fail with "the database system is starting up".21371 if time.monotonic() > deadline:21372 msg = "postgres did not start"21373> raise RuntimeError(msg)21374E RuntimeError: postgres did not start2137521376nixbot/tests/support.py:319: RuntimeError21377_______ ERROR at setup of test_eval_failure_settles_streamed_attributes ________21378[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142137921380self = <Coroutine test_eval_failure_settles_streamed_attributes>2138121382 def setup(self) -> None:21383 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21384 if runner_fixture_id not in self.fixturenames:21385 self.fixturenames.append(runner_fixture_id)21386 # When loop factories are configured, resolve the loop factory21387 # fixture early so that a factory variant change cascades cache21388 # invalidation before any async fixture checks its cache.21389 hook_caller = self.config.hook.pytest_asyncio_loop_factories21390 if hook_caller.get_hookimpls():21391 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21392> return super().setup()21393 ^^^^^^^^^^^^^^^2139421395/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21396_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21397nixbot/tests/conftest.py:33: in postgres_dsn21398 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21399 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21400/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21401 return next(self.gen)21402 ^^^^^^^^^^^^^^21403_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2140421405tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21406dbname = 'orchestrator'2140721408 @contextlib.contextmanager21409 def ephemeral_postgres(21410 tmp_path_factory: pytest.TempPathFactory, dbname: str21411 ) -> Iterator[str]:21412 """Throwaway Postgres on a unix socket with migrations applied."""21413 datadir = tmp_path_factory.mktemp("pgdata")21414 sockdir = tmp_path_factory.mktemp("pgsock")21415 subprocess.run( # noqa: S60321416 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21417 check=True,21418 capture_output=True,21419 )21420 proc = subprocess.Popen( # noqa: S60321421 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21422 stdout=subprocess.DEVNULL,21423 stderr=subprocess.DEVNULL,21424 )21425 try:21426 deadline = time.monotonic() + 3021427 while (21428 subprocess.run( # noqa: S60321429 ["pg_isready", "-h", str(sockdir), "-U", "test"],21430 check=False,21431 capture_output=True,21432 ).returncode21433 != 021434 ):21435 # The socket appears before recovery finishes; createdb would21436 # fail with "the database system is starting up".21437 if time.monotonic() > deadline:21438 msg = "postgres did not start"21439> raise RuntimeError(msg)21440E RuntimeError: postgres did not start2144121442nixbot/tests/support.py:319: RuntimeError21443_________________ ERROR at setup of test_effect_rows_roundtrip _________________21444[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142144521446self = <Coroutine test_effect_rows_roundtrip>2144721448 def setup(self) -> None:21449 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21450 if runner_fixture_id not in self.fixturenames:21451 self.fixturenames.append(runner_fixture_id)21452 # When loop factories are configured, resolve the loop factory21453 # fixture early so that a factory variant change cascades cache21454 # invalidation before any async fixture checks its cache.21455 hook_caller = self.config.hook.pytest_asyncio_loop_factories21456 if hook_caller.get_hookimpls():21457 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21458> return super().setup()21459 ^^^^^^^^^^^^^^^2146021461/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21462_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21463nixbot/tests/conftest.py:33: in postgres_dsn21464 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21465 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21466/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21467 return next(self.gen)21468 ^^^^^^^^^^^^^^21469_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2147021471tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21472dbname = 'orchestrator'2147321474 @contextlib.contextmanager21475 def ephemeral_postgres(21476 tmp_path_factory: pytest.TempPathFactory, dbname: str21477 ) -> Iterator[str]:21478 """Throwaway Postgres on a unix socket with migrations applied."""21479 datadir = tmp_path_factory.mktemp("pgdata")21480 sockdir = tmp_path_factory.mktemp("pgsock")21481 subprocess.run( # noqa: S60321482 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21483 check=True,21484 capture_output=True,21485 )21486 proc = subprocess.Popen( # noqa: S60321487 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21488 stdout=subprocess.DEVNULL,21489 stderr=subprocess.DEVNULL,21490 )21491 try:21492 deadline = time.monotonic() + 3021493 while (21494 subprocess.run( # noqa: S60321495 ["pg_isready", "-h", str(sockdir), "-U", "test"],21496 check=False,21497 capture_output=True,21498 ).returncode21499 != 021500 ):21501 # The socket appears before recovery finishes; createdb would21502 # fail with "the database system is starting up".21503 if time.monotonic() > deadline:21504 msg = "postgres did not start"21505> raise RuntimeError(msg)21506E RuntimeError: postgres did not start2150721508nixbot/tests/support.py:319: RuntimeError21509_________ ERROR at setup of test_pending_effects_replace_skipped_rows __________21510[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142151121512self = <Coroutine test_pending_effects_replace_skipped_rows>2151321514 def setup(self) -> None:21515 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21516 if runner_fixture_id not in self.fixturenames:21517 self.fixturenames.append(runner_fixture_id)21518 # When loop factories are configured, resolve the loop factory21519 # fixture early so that a factory variant change cascades cache21520 # invalidation before any async fixture checks its cache.21521 hook_caller = self.config.hook.pytest_asyncio_loop_factories21522 if hook_caller.get_hookimpls():21523 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21524> return super().setup()21525 ^^^^^^^^^^^^^^^2152621527/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21528_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21529nixbot/tests/conftest.py:33: in postgres_dsn21530 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21531 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21532/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21533 return next(self.gen)21534 ^^^^^^^^^^^^^^21535_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2153621537tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21538dbname = 'orchestrator'2153921540 @contextlib.contextmanager21541 def ephemeral_postgres(21542 tmp_path_factory: pytest.TempPathFactory, dbname: str21543 ) -> Iterator[str]:21544 """Throwaway Postgres on a unix socket with migrations applied."""21545 datadir = tmp_path_factory.mktemp("pgdata")21546 sockdir = tmp_path_factory.mktemp("pgsock")21547 subprocess.run( # noqa: S60321548 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21549 check=True,21550 capture_output=True,21551 )21552 proc = subprocess.Popen( # noqa: S60321553 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21554 stdout=subprocess.DEVNULL,21555 stderr=subprocess.DEVNULL,21556 )21557 try:21558 deadline = time.monotonic() + 3021559 while (21560 subprocess.run( # noqa: S60321561 ["pg_isready", "-h", str(sockdir), "-U", "test"],21562 check=False,21563 capture_output=True,21564 ).returncode21565 != 021566 ):21567 # The socket appears before recovery finishes; createdb would21568 # fail with "the database system is starting up".21569 if time.monotonic() > deadline:21570 msg = "postgres did not start"21571> raise RuntimeError(msg)21572E RuntimeError: postgres did not start2157321574nixbot/tests/support.py:319: RuntimeError21575___________ ERROR at setup of test_effect_items_resume_only_pending ____________21576[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142157721578self = <Coroutine test_effect_items_resume_only_pending>2157921580 def setup(self) -> None:21581 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21582 if runner_fixture_id not in self.fixturenames:21583 self.fixturenames.append(runner_fixture_id)21584 # When loop factories are configured, resolve the loop factory21585 # fixture early so that a factory variant change cascades cache21586 # invalidation before any async fixture checks its cache.21587 hook_caller = self.config.hook.pytest_asyncio_loop_factories21588 if hook_caller.get_hookimpls():21589 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21590> return super().setup()21591 ^^^^^^^^^^^^^^^2159221593/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21594_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21595nixbot/tests/conftest.py:33: in postgres_dsn21596 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21597 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21598/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21599 return next(self.gen)21600 ^^^^^^^^^^^^^^21601_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2160221603tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21604dbname = 'orchestrator'2160521606 @contextlib.contextmanager21607 def ephemeral_postgres(21608 tmp_path_factory: pytest.TempPathFactory, dbname: str21609 ) -> Iterator[str]:21610 """Throwaway Postgres on a unix socket with migrations applied."""21611 datadir = tmp_path_factory.mktemp("pgdata")21612 sockdir = tmp_path_factory.mktemp("pgsock")21613 subprocess.run( # noqa: S60321614 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21615 check=True,21616 capture_output=True,21617 )21618 proc = subprocess.Popen( # noqa: S60321619 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21620 stdout=subprocess.DEVNULL,21621 stderr=subprocess.DEVNULL,21622 )21623 try:21624 deadline = time.monotonic() + 3021625 while (21626 subprocess.run( # noqa: S60321627 ["pg_isready", "-h", str(sockdir), "-U", "test"],21628 check=False,21629 capture_output=True,21630 ).returncode21631 != 021632 ):21633 # The socket appears before recovery finishes; createdb would21634 # fail with "the database system is starting up".21635 if time.monotonic() > deadline:21636 msg = "postgres did not start"21637> raise RuntimeError(msg)21638E RuntimeError: postgres did not start2163921640nixbot/tests/support.py:319: RuntimeError21641_____________ ERROR at setup of test_effect_crash_settles_the_row ______________21642[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142164321644self = <Coroutine test_effect_crash_settles_the_row>2164521646 def setup(self) -> None:21647 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21648 if runner_fixture_id not in self.fixturenames:21649 self.fixturenames.append(runner_fixture_id)21650 # When loop factories are configured, resolve the loop factory21651 # fixture early so that a factory variant change cascades cache21652 # invalidation before any async fixture checks its cache.21653 hook_caller = self.config.hook.pytest_asyncio_loop_factories21654 if hook_caller.get_hookimpls():21655 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21656> return super().setup()21657 ^^^^^^^^^^^^^^^2165821659/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21660_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21661nixbot/tests/conftest.py:33: in postgres_dsn21662 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21663 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21664/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21665 return next(self.gen)21666 ^^^^^^^^^^^^^^21667_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2166821669tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21670dbname = 'orchestrator'2167121672 @contextlib.contextmanager21673 def ephemeral_postgres(21674 tmp_path_factory: pytest.TempPathFactory, dbname: str21675 ) -> Iterator[str]:21676 """Throwaway Postgres on a unix socket with migrations applied."""21677 datadir = tmp_path_factory.mktemp("pgdata")21678 sockdir = tmp_path_factory.mktemp("pgsock")21679 subprocess.run( # noqa: S60321680 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21681 check=True,21682 capture_output=True,21683 )21684 proc = subprocess.Popen( # noqa: S60321685 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21686 stdout=subprocess.DEVNULL,21687 stderr=subprocess.DEVNULL,21688 )21689 try:21690 deadline = time.monotonic() + 3021691 while (21692 subprocess.run( # noqa: S60321693 ["pg_isready", "-h", str(sockdir), "-U", "test"],21694 check=False,21695 capture_output=True,21696 ).returncode21697 != 021698 ):21699 # The socket appears before recovery finishes; createdb would21700 # fail with "the database system is starting up".21701 if time.monotonic() > deadline:21702 msg = "postgres did not start"21703> raise RuntimeError(msg)21704E RuntimeError: postgres did not start2170521706nixbot/tests/support.py:319: RuntimeError21707_____ ERROR at setup of test_concurrent_effects_use_independent_worktrees ______21708[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142170921710self = <Coroutine test_concurrent_effects_use_independent_worktrees>2171121712 def setup(self) -> None:21713 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21714 if runner_fixture_id not in self.fixturenames:21715 self.fixturenames.append(runner_fixture_id)21716 # When loop factories are configured, resolve the loop factory21717 # fixture early so that a factory variant change cascades cache21718 # invalidation before any async fixture checks its cache.21719 hook_caller = self.config.hook.pytest_asyncio_loop_factories21720 if hook_caller.get_hookimpls():21721 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21722> return super().setup()21723 ^^^^^^^^^^^^^^^2172421725/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21726_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21727nixbot/tests/conftest.py:33: in postgres_dsn21728 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21729 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21730/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21731 return next(self.gen)21732 ^^^^^^^^^^^^^^21733_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2173421735tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21736dbname = 'orchestrator'2173721738 @contextlib.contextmanager21739 def ephemeral_postgres(21740 tmp_path_factory: pytest.TempPathFactory, dbname: str21741 ) -> Iterator[str]:21742 """Throwaway Postgres on a unix socket with migrations applied."""21743 datadir = tmp_path_factory.mktemp("pgdata")21744 sockdir = tmp_path_factory.mktemp("pgsock")21745 subprocess.run( # noqa: S60321746 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21747 check=True,21748 capture_output=True,21749 )21750 proc = subprocess.Popen( # noqa: S60321751 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21752 stdout=subprocess.DEVNULL,21753 stderr=subprocess.DEVNULL,21754 )21755 try:21756 deadline = time.monotonic() + 3021757 while (21758 subprocess.run( # noqa: S60321759 ["pg_isready", "-h", str(sockdir), "-U", "test"],21760 check=False,21761 capture_output=True,21762 ).returncode21763 != 021764 ):21765 # The socket appears before recovery finishes; createdb would21766 # fail with "the database system is starting up".21767 if time.monotonic() > deadline:21768 msg = "postgres did not start"21769> raise RuntimeError(msg)21770E RuntimeError: postgres did not start2177121772nixbot/tests/support.py:319: RuntimeError21773__________ ERROR at setup of test_locked_effect_gets_shared_dedup_key __________21774[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142177521776self = <Coroutine test_locked_effect_gets_shared_dedup_key>2177721778 def setup(self) -> None:21779 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21780 if runner_fixture_id not in self.fixturenames:21781 self.fixturenames.append(runner_fixture_id)21782 # When loop factories are configured, resolve the loop factory21783 # fixture early so that a factory variant change cascades cache21784 # invalidation before any async fixture checks its cache.21785 hook_caller = self.config.hook.pytest_asyncio_loop_factories21786 if hook_caller.get_hookimpls():21787 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21788> return super().setup()21789 ^^^^^^^^^^^^^^^2179021791/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21792_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21793nixbot/tests/conftest.py:33: in postgres_dsn21794 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21795 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21796/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21797 return next(self.gen)21798 ^^^^^^^^^^^^^^21799_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2180021801tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21802dbname = 'orchestrator'2180321804 @contextlib.contextmanager21805 def ephemeral_postgres(21806 tmp_path_factory: pytest.TempPathFactory, dbname: str21807 ) -> Iterator[str]:21808 """Throwaway Postgres on a unix socket with migrations applied."""21809 datadir = tmp_path_factory.mktemp("pgdata")21810 sockdir = tmp_path_factory.mktemp("pgsock")21811 subprocess.run( # noqa: S60321812 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21813 check=True,21814 capture_output=True,21815 )21816 proc = subprocess.Popen( # noqa: S60321817 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21818 stdout=subprocess.DEVNULL,21819 stderr=subprocess.DEVNULL,21820 )21821 try:21822 deadline = time.monotonic() + 3021823 while (21824 subprocess.run( # noqa: S60321825 ["pg_isready", "-h", str(sockdir), "-U", "test"],21826 check=False,21827 capture_output=True,21828 ).returncode21829 != 021830 ):21831 # The socket appears before recovery finishes; createdb would21832 # fail with "the database system is starting up".21833 if time.monotonic() > deadline:21834 msg = "postgres did not start"21835> raise RuntimeError(msg)21836E RuntimeError: postgres did not start2183721838nixbot/tests/support.py:319: RuntimeError21839______ ERROR at setup of test_effect_item_not_claimable_until_dep_settles ______21840[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142184121842self = <Coroutine test_effect_item_not_claimable_until_dep_settles>2184321844 def setup(self) -> None:21845 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21846 if runner_fixture_id not in self.fixturenames:21847 self.fixturenames.append(runner_fixture_id)21848 # When loop factories are configured, resolve the loop factory21849 # fixture early so that a factory variant change cascades cache21850 # invalidation before any async fixture checks its cache.21851 hook_caller = self.config.hook.pytest_asyncio_loop_factories21852 if hook_caller.get_hookimpls():21853 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21854> return super().setup()21855 ^^^^^^^^^^^^^^^2185621857/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21858_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21859nixbot/tests/conftest.py:33: in postgres_dsn21860 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21861 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21862/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21863 return next(self.gen)21864 ^^^^^^^^^^^^^^21865_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2186621867tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21868dbname = 'orchestrator'2186921870 @contextlib.contextmanager21871 def ephemeral_postgres(21872 tmp_path_factory: pytest.TempPathFactory, dbname: str21873 ) -> Iterator[str]:21874 """Throwaway Postgres on a unix socket with migrations applied."""21875 datadir = tmp_path_factory.mktemp("pgdata")21876 sockdir = tmp_path_factory.mktemp("pgsock")21877 subprocess.run( # noqa: S60321878 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21879 check=True,21880 capture_output=True,21881 )21882 proc = subprocess.Popen( # noqa: S60321883 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21884 stdout=subprocess.DEVNULL,21885 stderr=subprocess.DEVNULL,21886 )21887 try:21888 deadline = time.monotonic() + 3021889 while (21890 subprocess.run( # noqa: S60321891 ["pg_isready", "-h", str(sockdir), "-U", "test"],21892 check=False,21893 capture_output=True,21894 ).returncode21895 != 021896 ):21897 # The socket appears before recovery finishes; createdb would21898 # fail with "the database system is starting up".21899 if time.monotonic() > deadline:21900 msg = "postgres did not start"21901> raise RuntimeError(msg)21902E RuntimeError: postgres did not start2190321904nixbot/tests/support.py:319: RuntimeError21905__________ ERROR at setup of test_effect_dep_failure_skips_dependent ___________21906[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142190721908self = <Coroutine test_effect_dep_failure_skips_dependent>2190921910 def setup(self) -> None:21911 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21912 if runner_fixture_id not in self.fixturenames:21913 self.fixturenames.append(runner_fixture_id)21914 # When loop factories are configured, resolve the loop factory21915 # fixture early so that a factory variant change cascades cache21916 # invalidation before any async fixture checks its cache.21917 hook_caller = self.config.hook.pytest_asyncio_loop_factories21918 if hook_caller.get_hookimpls():21919 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21920> return super().setup()21921 ^^^^^^^^^^^^^^^2192221923/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21924_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21925nixbot/tests/conftest.py:33: in postgres_dsn21926 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21927 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21928/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21929 return next(self.gen)21930 ^^^^^^^^^^^^^^21931_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2193221933tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21934dbname = 'orchestrator'2193521936 @contextlib.contextmanager21937 def ephemeral_postgres(21938 tmp_path_factory: pytest.TempPathFactory, dbname: str21939 ) -> Iterator[str]:21940 """Throwaway Postgres on a unix socket with migrations applied."""21941 datadir = tmp_path_factory.mktemp("pgdata")21942 sockdir = tmp_path_factory.mktemp("pgsock")21943 subprocess.run( # noqa: S60321944 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21945 check=True,21946 capture_output=True,21947 )21948 proc = subprocess.Popen( # noqa: S60321949 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21950 stdout=subprocess.DEVNULL,21951 stderr=subprocess.DEVNULL,21952 )21953 try:21954 deadline = time.monotonic() + 3021955 while (21956 subprocess.run( # noqa: S60321957 ["pg_isready", "-h", str(sockdir), "-U", "test"],21958 check=False,21959 capture_output=True,21960 ).returncode21961 != 021962 ):21963 # The socket appears before recovery finishes; createdb would21964 # fail with "the database system is starting up".21965 if time.monotonic() > deadline:21966 msg = "postgres did not start"21967> raise RuntimeError(msg)21968E RuntimeError: postgres did not start2196921970nixbot/tests/support.py:319: RuntimeError21971______ ERROR at setup of test_lock_serializes_builds_without_interleaving ______21972[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142197321974self = <Coroutine test_lock_serializes_builds_without_interleaving>2197521976 def setup(self) -> None:21977 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21978 if runner_fixture_id not in self.fixturenames:21979 self.fixturenames.append(runner_fixture_id)21980 # When loop factories are configured, resolve the loop factory21981 # fixture early so that a factory variant change cascades cache21982 # invalidation before any async fixture checks its cache.21983 hook_caller = self.config.hook.pytest_asyncio_loop_factories21984 if hook_caller.get_hookimpls():21985 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21986> return super().setup()21987 ^^^^^^^^^^^^^^^2198821989/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21990_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21991nixbot/tests/conftest.py:33: in postgres_dsn21992 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21993 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21994/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21995 return next(self.gen)21996 ^^^^^^^^^^^^^^21997_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2199821999tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22000dbname = 'orchestrator'2200122002 @contextlib.contextmanager22003 def ephemeral_postgres(22004 tmp_path_factory: pytest.TempPathFactory, dbname: str22005 ) -> Iterator[str]:22006 """Throwaway Postgres on a unix socket with migrations applied."""22007 datadir = tmp_path_factory.mktemp("pgdata")22008 sockdir = tmp_path_factory.mktemp("pgsock")22009 subprocess.run( # noqa: S60322010 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22011 check=True,22012 capture_output=True,22013 )22014 proc = subprocess.Popen( # noqa: S60322015 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22016 stdout=subprocess.DEVNULL,22017 stderr=subprocess.DEVNULL,22018 )22019 try:22020 deadline = time.monotonic() + 3022021 while (22022 subprocess.run( # noqa: S60322023 ["pg_isready", "-h", str(sockdir), "-U", "test"],22024 check=False,22025 capture_output=True,22026 ).returncode22027 != 022028 ):22029 # The socket appears before recovery finishes; createdb would22030 # fail with "the database system is starting up".22031 if time.monotonic() > deadline:22032 msg = "postgres did not start"22033> raise RuntimeError(msg)22034E RuntimeError: postgres did not start2203522036nixbot/tests/support.py:319: RuntimeError22037___________ ERROR at setup of test_effect_dep_cycle_fails_discovery ____________22038[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142203922040self = <Coroutine test_effect_dep_cycle_fails_discovery>2204122042 def setup(self) -> None:22043 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22044 if runner_fixture_id not in self.fixturenames:22045 self.fixturenames.append(runner_fixture_id)22046 # When loop factories are configured, resolve the loop factory22047 # fixture early so that a factory variant change cascades cache22048 # invalidation before any async fixture checks its cache.22049 hook_caller = self.config.hook.pytest_asyncio_loop_factories22050 if hook_caller.get_hookimpls():22051 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22052> return super().setup()22053 ^^^^^^^^^^^^^^^2205422055/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22056_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22057nixbot/tests/conftest.py:33: in postgres_dsn22058 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22059 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22060/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22061 return next(self.gen)22062 ^^^^^^^^^^^^^^22063_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2206422065tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22066dbname = 'orchestrator'2206722068 @contextlib.contextmanager22069 def ephemeral_postgres(22070 tmp_path_factory: pytest.TempPathFactory, dbname: str22071 ) -> Iterator[str]:22072 """Throwaway Postgres on a unix socket with migrations applied."""22073 datadir = tmp_path_factory.mktemp("pgdata")22074 sockdir = tmp_path_factory.mktemp("pgsock")22075 subprocess.run( # noqa: S60322076 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22077 check=True,22078 capture_output=True,22079 )22080 proc = subprocess.Popen( # noqa: S60322081 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22082 stdout=subprocess.DEVNULL,22083 stderr=subprocess.DEVNULL,22084 )22085 try:22086 deadline = time.monotonic() + 3022087 while (22088 subprocess.run( # noqa: S60322089 ["pg_isready", "-h", str(sockdir), "-U", "test"],22090 check=False,22091 capture_output=True,22092 ).returncode22093 != 022094 ):22095 # The socket appears before recovery finishes; createdb would22096 # fail with "the database system is starting up".22097 if time.monotonic() > deadline:22098 msg = "postgres did not start"22099> raise RuntimeError(msg)22100E RuntimeError: postgres did not start2210122102nixbot/tests/support.py:319: RuntimeError22103_________ ERROR at setup of test_failed_effect_reports_failure_status __________22104[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142210522106self = <Coroutine test_failed_effect_reports_failure_status>2210722108 def setup(self) -> None:22109 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22110 if runner_fixture_id not in self.fixturenames:22111 self.fixturenames.append(runner_fixture_id)22112 # When loop factories are configured, resolve the loop factory22113 # fixture early so that a factory variant change cascades cache22114 # invalidation before any async fixture checks its cache.22115 hook_caller = self.config.hook.pytest_asyncio_loop_factories22116 if hook_caller.get_hookimpls():22117 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22118> return super().setup()22119 ^^^^^^^^^^^^^^^2212022121/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22122_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22123nixbot/tests/conftest.py:33: in postgres_dsn22124 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22125 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22126/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22127 return next(self.gen)22128 ^^^^^^^^^^^^^^22129_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2213022131tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22132dbname = 'orchestrator'2213322134 @contextlib.contextmanager22135 def ephemeral_postgres(22136 tmp_path_factory: pytest.TempPathFactory, dbname: str22137 ) -> Iterator[str]:22138 """Throwaway Postgres on a unix socket with migrations applied."""22139 datadir = tmp_path_factory.mktemp("pgdata")22140 sockdir = tmp_path_factory.mktemp("pgsock")22141 subprocess.run( # noqa: S60322142 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22143 check=True,22144 capture_output=True,22145 )22146 proc = subprocess.Popen( # noqa: S60322147 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22148 stdout=subprocess.DEVNULL,22149 stderr=subprocess.DEVNULL,22150 )22151 try:22152 deadline = time.monotonic() + 3022153 while (22154 subprocess.run( # noqa: S60322155 ["pg_isready", "-h", str(sockdir), "-U", "test"],22156 check=False,22157 capture_output=True,22158 ).returncode22159 != 022160 ):22161 # The socket appears before recovery finishes; createdb would22162 # fail with "the database system is starting up".22163 if time.monotonic() > deadline:22164 msg = "postgres did not start"22165> raise RuntimeError(msg)22166E RuntimeError: postgres did not start2216722168nixbot/tests/support.py:319: RuntimeError22169________ ERROR at setup of test_post_process_error_does_not_wedge_build ________22170[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142217122172self = <Coroutine test_post_process_error_does_not_wedge_build>2217322174 def setup(self) -> None:22175 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22176 if runner_fixture_id not in self.fixturenames:22177 self.fixturenames.append(runner_fixture_id)22178 # When loop factories are configured, resolve the loop factory22179 # fixture early so that a factory variant change cascades cache22180 # invalidation before any async fixture checks its cache.22181 hook_caller = self.config.hook.pytest_asyncio_loop_factories22182 if hook_caller.get_hookimpls():22183 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22184> return super().setup()22185 ^^^^^^^^^^^^^^^2218622187/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22188_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22189nixbot/tests/conftest.py:33: in postgres_dsn22190 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22191 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22192/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22193 return next(self.gen)22194 ^^^^^^^^^^^^^^22195_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2219622197tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22198dbname = 'orchestrator'2219922200 @contextlib.contextmanager22201 def ephemeral_postgres(22202 tmp_path_factory: pytest.TempPathFactory, dbname: str22203 ) -> Iterator[str]:22204 """Throwaway Postgres on a unix socket with migrations applied."""22205 datadir = tmp_path_factory.mktemp("pgdata")22206 sockdir = tmp_path_factory.mktemp("pgsock")22207 subprocess.run( # noqa: S60322208 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22209 check=True,22210 capture_output=True,22211 )22212 proc = subprocess.Popen( # noqa: S60322213 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22214 stdout=subprocess.DEVNULL,22215 stderr=subprocess.DEVNULL,22216 )22217 try:22218 deadline = time.monotonic() + 3022219 while (22220 subprocess.run( # noqa: S60322221 ["pg_isready", "-h", str(sockdir), "-U", "test"],22222 check=False,22223 capture_output=True,22224 ).returncode22225 != 022226 ):22227 # The socket appears before recovery finishes; createdb would22228 # fail with "the database system is starting up".22229 if time.monotonic() > deadline:22230 msg = "postgres did not start"22231> raise RuntimeError(msg)22232E RuntimeError: postgres did not start2223322234nixbot/tests/support.py:319: RuntimeError22235_______ ERROR at setup of test_unexpected_eval_path_error_settles_build ________22236[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142223722238self = <Coroutine test_unexpected_eval_path_error_settles_build>2223922240 def setup(self) -> None:22241 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22242 if runner_fixture_id not in self.fixturenames:22243 self.fixturenames.append(runner_fixture_id)22244 # When loop factories are configured, resolve the loop factory22245 # fixture early so that a factory variant change cascades cache22246 # invalidation before any async fixture checks its cache.22247 hook_caller = self.config.hook.pytest_asyncio_loop_factories22248 if hook_caller.get_hookimpls():22249 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22250> return super().setup()22251 ^^^^^^^^^^^^^^^2225222253/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22254_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22255nixbot/tests/conftest.py:33: in postgres_dsn22256 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22257 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22258/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22259 return next(self.gen)22260 ^^^^^^^^^^^^^^22261_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2226222263tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22264dbname = 'orchestrator'2226522266 @contextlib.contextmanager22267 def ephemeral_postgres(22268 tmp_path_factory: pytest.TempPathFactory, dbname: str22269 ) -> Iterator[str]:22270 """Throwaway Postgres on a unix socket with migrations applied."""22271 datadir = tmp_path_factory.mktemp("pgdata")22272 sockdir = tmp_path_factory.mktemp("pgsock")22273 subprocess.run( # noqa: S60322274 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22275 check=True,22276 capture_output=True,22277 )22278 proc = subprocess.Popen( # noqa: S60322279 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22280 stdout=subprocess.DEVNULL,22281 stderr=subprocess.DEVNULL,22282 )22283 try:22284 deadline = time.monotonic() + 3022285 while (22286 subprocess.run( # noqa: S60322287 ["pg_isready", "-h", str(sockdir), "-U", "test"],22288 check=False,22289 capture_output=True,22290 ).returncode22291 != 022292 ):22293 # The socket appears before recovery finishes; createdb would22294 # fail with "the database system is starting up".22295 if time.monotonic() > deadline:22296 msg = "postgres did not start"22297> raise RuntimeError(msg)22298E RuntimeError: postgres did not start2229922300nixbot/tests/support.py:319: RuntimeError22301____ ERROR at setup of test_reuse_empty_succeeded_build_posts_eval_success _____22302[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142230322304self = <Coroutine test_reuse_empty_succeeded_build_posts_eval_success>2230522306 def setup(self) -> None:22307 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22308 if runner_fixture_id not in self.fixturenames:22309 self.fixturenames.append(runner_fixture_id)22310 # When loop factories are configured, resolve the loop factory22311 # fixture early so that a factory variant change cascades cache22312 # invalidation before any async fixture checks its cache.22313 hook_caller = self.config.hook.pytest_asyncio_loop_factories22314 if hook_caller.get_hookimpls():22315 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22316> return super().setup()22317 ^^^^^^^^^^^^^^^2231822319/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22320_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22321nixbot/tests/conftest.py:33: in postgres_dsn22322 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22323 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22324/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22325 return next(self.gen)22326 ^^^^^^^^^^^^^^22327_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2232822329tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22330dbname = 'orchestrator'2233122332 @contextlib.contextmanager22333 def ephemeral_postgres(22334 tmp_path_factory: pytest.TempPathFactory, dbname: str22335 ) -> Iterator[str]:22336 """Throwaway Postgres on a unix socket with migrations applied."""22337 datadir = tmp_path_factory.mktemp("pgdata")22338 sockdir = tmp_path_factory.mktemp("pgsock")22339 subprocess.run( # noqa: S60322340 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22341 check=True,22342 capture_output=True,22343 )22344 proc = subprocess.Popen( # noqa: S60322345 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22346 stdout=subprocess.DEVNULL,22347 stderr=subprocess.DEVNULL,22348 )22349 try:22350 deadline = time.monotonic() + 3022351 while (22352 subprocess.run( # noqa: S60322353 ["pg_isready", "-h", str(sockdir), "-U", "test"],22354 check=False,22355 capture_output=True,22356 ).returncode22357 != 022358 ):22359 # The socket appears before recovery finishes; createdb would22360 # fail with "the database system is starting up".22361 if time.monotonic() > deadline:22362 msg = "postgres did not start"22363> raise RuntimeError(msg)22364E RuntimeError: postgres did not start2236522366nixbot/tests/support.py:319: RuntimeError22367__ ERROR at setup of test_stale_event_reusing_old_build_does_not_cancel_newer __22368[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142236922370self = <Coroutine test_stale_event_reusing_old_build_does_not_cancel_newer>2237122372 def setup(self) -> None:22373 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22374 if runner_fixture_id not in self.fixturenames:22375 self.fixturenames.append(runner_fixture_id)22376 # When loop factories are configured, resolve the loop factory22377 # fixture early so that a factory variant change cascades cache22378 # invalidation before any async fixture checks its cache.22379 hook_caller = self.config.hook.pytest_asyncio_loop_factories22380 if hook_caller.get_hookimpls():22381 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22382> return super().setup()22383 ^^^^^^^^^^^^^^^2238422385/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22386_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22387nixbot/tests/conftest.py:33: in postgres_dsn22388 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22389 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22390/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22391 return next(self.gen)22392 ^^^^^^^^^^^^^^22393_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2239422395tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22396dbname = 'orchestrator'2239722398 @contextlib.contextmanager22399 def ephemeral_postgres(22400 tmp_path_factory: pytest.TempPathFactory, dbname: str22401 ) -> Iterator[str]:22402 """Throwaway Postgres on a unix socket with migrations applied."""22403 datadir = tmp_path_factory.mktemp("pgdata")22404 sockdir = tmp_path_factory.mktemp("pgsock")22405 subprocess.run( # noqa: S60322406 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22407 check=True,22408 capture_output=True,22409 )22410 proc = subprocess.Popen( # noqa: S60322411 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22412 stdout=subprocess.DEVNULL,22413 stderr=subprocess.DEVNULL,22414 )22415 try:22416 deadline = time.monotonic() + 3022417 while (22418 subprocess.run( # noqa: S60322419 ["pg_isready", "-h", str(sockdir), "-U", "test"],22420 check=False,22421 capture_output=True,22422 ).returncode22423 != 022424 ):22425 # The socket appears before recovery finishes; createdb would22426 # fail with "the database system is starting up".22427 if time.monotonic() > deadline:22428 msg = "postgres did not start"22429> raise RuntimeError(msg)22430E RuntimeError: postgres did not start2243122432nixbot/tests/support.py:319: RuntimeError22433______ ERROR at setup of test_reuse_for_default_branch_push_runs_effects _______22434[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142243522436self = <Coroutine test_reuse_for_default_branch_push_runs_effects>2243722438 def setup(self) -> None:22439 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22440 if runner_fixture_id not in self.fixturenames:22441 self.fixturenames.append(runner_fixture_id)22442 # When loop factories are configured, resolve the loop factory22443 # fixture early so that a factory variant change cascades cache22444 # invalidation before any async fixture checks its cache.22445 hook_caller = self.config.hook.pytest_asyncio_loop_factories22446 if hook_caller.get_hookimpls():22447 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22448> return super().setup()22449 ^^^^^^^^^^^^^^^2245022451/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22452_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22453nixbot/tests/conftest.py:33: in postgres_dsn22454 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22455 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22456/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22457 return next(self.gen)22458 ^^^^^^^^^^^^^^22459_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2246022461tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22462dbname = 'orchestrator'2246322464 @contextlib.contextmanager22465 def ephemeral_postgres(22466 tmp_path_factory: pytest.TempPathFactory, dbname: str22467 ) -> Iterator[str]:22468 """Throwaway Postgres on a unix socket with migrations applied."""22469 datadir = tmp_path_factory.mktemp("pgdata")22470 sockdir = tmp_path_factory.mktemp("pgsock")22471 subprocess.run( # noqa: S60322472 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22473 check=True,22474 capture_output=True,22475 )22476 proc = subprocess.Popen( # noqa: S60322477 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22478 stdout=subprocess.DEVNULL,22479 stderr=subprocess.DEVNULL,22480 )22481 try:22482 deadline = time.monotonic() + 3022483 while (22484 subprocess.run( # noqa: S60322485 ["pg_isready", "-h", str(sockdir), "-U", "test"],22486 check=False,22487 capture_output=True,22488 ).returncode22489 != 022490 ):22491 # The socket appears before recovery finishes; createdb would22492 # fail with "the database system is starting up".22493 if time.monotonic() > deadline:22494 msg = "postgres did not start"22495> raise RuntimeError(msg)22496E RuntimeError: postgres did not start2249722498nixbot/tests/support.py:319: RuntimeError22499__ ERROR at setup of test_tag_reusing_deployed_build_delivers_its_own_effects __22500[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142250122502self = <Coroutine test_tag_reusing_deployed_build_delivers_its_own_effects>2250322504 def setup(self) -> None:22505 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22506 if runner_fixture_id not in self.fixturenames:22507 self.fixturenames.append(runner_fixture_id)22508 # When loop factories are configured, resolve the loop factory22509 # fixture early so that a factory variant change cascades cache22510 # invalidation before any async fixture checks its cache.22511 hook_caller = self.config.hook.pytest_asyncio_loop_factories22512 if hook_caller.get_hookimpls():22513 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22514> return super().setup()22515 ^^^^^^^^^^^^^^^2251622517/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22518_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22519nixbot/tests/conftest.py:33: in postgres_dsn22520 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22521 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22522/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22523 return next(self.gen)22524 ^^^^^^^^^^^^^^22525_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2252622527tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22528dbname = 'orchestrator'2252922530 @contextlib.contextmanager22531 def ephemeral_postgres(22532 tmp_path_factory: pytest.TempPathFactory, dbname: str22533 ) -> Iterator[str]:22534 """Throwaway Postgres on a unix socket with migrations applied."""22535 datadir = tmp_path_factory.mktemp("pgdata")22536 sockdir = tmp_path_factory.mktemp("pgsock")22537 subprocess.run( # noqa: S60322538 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22539 check=True,22540 capture_output=True,22541 )22542 proc = subprocess.Popen( # noqa: S60322543 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22544 stdout=subprocess.DEVNULL,22545 stderr=subprocess.DEVNULL,22546 )22547 try:22548 deadline = time.monotonic() + 3022549 while (22550 subprocess.run( # noqa: S60322551 ["pg_isready", "-h", str(sockdir), "-U", "test"],22552 check=False,22553 capture_output=True,22554 ).returncode22555 != 022556 ):22557 # The socket appears before recovery finishes; createdb would22558 # fail with "the database system is starting up".22559 if time.monotonic() > deadline:22560 msg = "postgres did not start"22561> raise RuntimeError(msg)22562E RuntimeError: postgres did not start2256322564nixbot/tests/support.py:319: RuntimeError22565__ ERROR at setup of test_tag_attached_to_in_flight_build_delivers_on_success __22566[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142256722568self = <Coroutine test_tag_attached_to_in_flight_build_delivers_on_success>2256922570 def setup(self) -> None:22571 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22572 if runner_fixture_id not in self.fixturenames:22573 self.fixturenames.append(runner_fixture_id)22574 # When loop factories are configured, resolve the loop factory22575 # fixture early so that a factory variant change cascades cache22576 # invalidation before any async fixture checks its cache.22577 hook_caller = self.config.hook.pytest_asyncio_loop_factories22578 if hook_caller.get_hookimpls():22579 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22580> return super().setup()22581 ^^^^^^^^^^^^^^^2258222583/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22584_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22585nixbot/tests/conftest.py:33: in postgres_dsn22586 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22587 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22588/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22589 return next(self.gen)22590 ^^^^^^^^^^^^^^22591_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2259222593tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22594dbname = 'orchestrator'2259522596 @contextlib.contextmanager22597 def ephemeral_postgres(22598 tmp_path_factory: pytest.TempPathFactory, dbname: str22599 ) -> Iterator[str]:22600 """Throwaway Postgres on a unix socket with migrations applied."""22601 datadir = tmp_path_factory.mktemp("pgdata")22602 sockdir = tmp_path_factory.mktemp("pgsock")22603 subprocess.run( # noqa: S60322604 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22605 check=True,22606 capture_output=True,22607 )22608 proc = subprocess.Popen( # noqa: S60322609 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22610 stdout=subprocess.DEVNULL,22611 stderr=subprocess.DEVNULL,22612 )22613 try:22614 deadline = time.monotonic() + 3022615 while (22616 subprocess.run( # noqa: S60322617 ["pg_isready", "-h", str(sockdir), "-U", "test"],22618 check=False,22619 capture_output=True,22620 ).returncode22621 != 022622 ):22623 # The socket appears before recovery finishes; createdb would22624 # fail with "the database system is starting up".22625 if time.monotonic() > deadline:22626 msg = "postgres did not start"22627> raise RuntimeError(msg)22628E RuntimeError: postgres did not start2262922630nixbot/tests/support.py:319: RuntimeError22631______ ERROR at setup of test_restart_of_gated_build_settles_effect_rows _______22632[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142263322634self = <Coroutine test_restart_of_gated_build_settles_effect_rows>2263522636 def setup(self) -> None:22637 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22638 if runner_fixture_id not in self.fixturenames:22639 self.fixturenames.append(runner_fixture_id)22640 # When loop factories are configured, resolve the loop factory22641 # fixture early so that a factory variant change cascades cache22642 # invalidation before any async fixture checks its cache.22643 hook_caller = self.config.hook.pytest_asyncio_loop_factories22644 if hook_caller.get_hookimpls():22645 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22646> return super().setup()22647 ^^^^^^^^^^^^^^^2264822649/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22650_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22651nixbot/tests/conftest.py:33: in postgres_dsn22652 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22653 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22654/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22655 return next(self.gen)22656 ^^^^^^^^^^^^^^22657_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2265822659tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22660dbname = 'orchestrator'2266122662 @contextlib.contextmanager22663 def ephemeral_postgres(22664 tmp_path_factory: pytest.TempPathFactory, dbname: str22665 ) -> Iterator[str]:22666 """Throwaway Postgres on a unix socket with migrations applied."""22667 datadir = tmp_path_factory.mktemp("pgdata")22668 sockdir = tmp_path_factory.mktemp("pgsock")22669 subprocess.run( # noqa: S60322670 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22671 check=True,22672 capture_output=True,22673 )22674 proc = subprocess.Popen( # noqa: S60322675 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22676 stdout=subprocess.DEVNULL,22677 stderr=subprocess.DEVNULL,22678 )22679 try:22680 deadline = time.monotonic() + 3022681 while (22682 subprocess.run( # noqa: S60322683 ["pg_isready", "-h", str(sockdir), "-U", "test"],22684 check=False,22685 capture_output=True,22686 ).returncode22687 != 022688 ):22689 # The socket appears before recovery finishes; createdb would22690 # fail with "the database system is starting up".22691 if time.monotonic() > deadline:22692 msg = "postgres did not start"22693> raise RuntimeError(msg)22694E RuntimeError: postgres did not start2269522696nixbot/tests/support.py:319: RuntimeError22697________ ERROR at setup of test_restart_build_drops_queued_effect_items ________22698[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142269922700self = <Coroutine test_restart_build_drops_queued_effect_items>2270122702 def setup(self) -> None:22703 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22704 if runner_fixture_id not in self.fixturenames:22705 self.fixturenames.append(runner_fixture_id)22706 # When loop factories are configured, resolve the loop factory22707 # fixture early so that a factory variant change cascades cache22708 # invalidation before any async fixture checks its cache.22709 hook_caller = self.config.hook.pytest_asyncio_loop_factories22710 if hook_caller.get_hookimpls():22711 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22712> return super().setup()22713 ^^^^^^^^^^^^^^^2271422715/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22716_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22717nixbot/tests/conftest.py:33: in postgres_dsn22718 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22719 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22720/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22721 return next(self.gen)22722 ^^^^^^^^^^^^^^22723_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2272422725tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22726dbname = 'orchestrator'2272722728 @contextlib.contextmanager22729 def ephemeral_postgres(22730 tmp_path_factory: pytest.TempPathFactory, dbname: str22731 ) -> Iterator[str]:22732 """Throwaway Postgres on a unix socket with migrations applied."""22733 datadir = tmp_path_factory.mktemp("pgdata")22734 sockdir = tmp_path_factory.mktemp("pgsock")22735 subprocess.run( # noqa: S60322736 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22737 check=True,22738 capture_output=True,22739 )22740 proc = subprocess.Popen( # noqa: S60322741 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22742 stdout=subprocess.DEVNULL,22743 stderr=subprocess.DEVNULL,22744 )22745 try:22746 deadline = time.monotonic() + 3022747 while (22748 subprocess.run( # noqa: S60322749 ["pg_isready", "-h", str(sockdir), "-U", "test"],22750 check=False,22751 capture_output=True,22752 ).returncode22753 != 022754 ):22755 # The socket appears before recovery finishes; createdb would22756 # fail with "the database system is starting up".22757 if time.monotonic() > deadline:22758 msg = "postgres did not start"22759> raise RuntimeError(msg)22760E RuntimeError: postgres did not start2276122762nixbot/tests/support.py:319: RuntimeError22763___ ERROR at setup of test_restart_effects_after_pr_attach_keeps_effects_ref ___22764[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142276522766self = <Coroutine test_restart_effects_after_pr_attach_keeps_effects_ref>2276722768 def setup(self) -> None:22769 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22770 if runner_fixture_id not in self.fixturenames:22771 self.fixturenames.append(runner_fixture_id)22772 # When loop factories are configured, resolve the loop factory22773 # fixture early so that a factory variant change cascades cache22774 # invalidation before any async fixture checks its cache.22775 hook_caller = self.config.hook.pytest_asyncio_loop_factories22776 if hook_caller.get_hookimpls():22777 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22778> return super().setup()22779 ^^^^^^^^^^^^^^^2278022781/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22782_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22783nixbot/tests/conftest.py:33: in postgres_dsn22784 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22785 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22786/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22787 return next(self.gen)22788 ^^^^^^^^^^^^^^22789_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2279022791tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22792dbname = 'orchestrator'2279322794 @contextlib.contextmanager22795 def ephemeral_postgres(22796 tmp_path_factory: pytest.TempPathFactory, dbname: str22797 ) -> Iterator[str]:22798 """Throwaway Postgres on a unix socket with migrations applied."""22799 datadir = tmp_path_factory.mktemp("pgdata")22800 sockdir = tmp_path_factory.mktemp("pgsock")22801 subprocess.run( # noqa: S60322802 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22803 check=True,22804 capture_output=True,22805 )22806 proc = subprocess.Popen( # noqa: S60322807 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22808 stdout=subprocess.DEVNULL,22809 stderr=subprocess.DEVNULL,22810 )22811 try:22812 deadline = time.monotonic() + 3022813 while (22814 subprocess.run( # noqa: S60322815 ["pg_isready", "-h", str(sockdir), "-U", "test"],22816 check=False,22817 capture_output=True,22818 ).returncode22819 != 022820 ):22821 # The socket appears before recovery finishes; createdb would22822 # fail with "the database system is starting up".22823 if time.monotonic() > deadline:22824 msg = "postgres did not start"22825> raise RuntimeError(msg)22826E RuntimeError: postgres did not start2282722828nixbot/tests/support.py:319: RuntimeError22829_______ ERROR at setup of test_gated_restart_then_allowed_reuse_deploys ________22830[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142283122832self = <Coroutine test_gated_restart_then_allowed_reuse_deploys>2283322834 def setup(self) -> None:22835 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22836 if runner_fixture_id not in self.fixturenames:22837 self.fixturenames.append(runner_fixture_id)22838 # When loop factories are configured, resolve the loop factory22839 # fixture early so that a factory variant change cascades cache22840 # invalidation before any async fixture checks its cache.22841 hook_caller = self.config.hook.pytest_asyncio_loop_factories22842 if hook_caller.get_hookimpls():22843 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22844> return super().setup()22845 ^^^^^^^^^^^^^^^2284622847/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22848_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22849nixbot/tests/conftest.py:33: in postgres_dsn22850 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22851 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22852/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22853 return next(self.gen)22854 ^^^^^^^^^^^^^^22855_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2285622857tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22858dbname = 'orchestrator'2285922860 @contextlib.contextmanager22861 def ephemeral_postgres(22862 tmp_path_factory: pytest.TempPathFactory, dbname: str22863 ) -> Iterator[str]:22864 """Throwaway Postgres on a unix socket with migrations applied."""22865 datadir = tmp_path_factory.mktemp("pgdata")22866 sockdir = tmp_path_factory.mktemp("pgsock")22867 subprocess.run( # noqa: S60322868 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22869 check=True,22870 capture_output=True,22871 )22872 proc = subprocess.Popen( # noqa: S60322873 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22874 stdout=subprocess.DEVNULL,22875 stderr=subprocess.DEVNULL,22876 )22877 try:22878 deadline = time.monotonic() + 3022879 while (22880 subprocess.run( # noqa: S60322881 ["pg_isready", "-h", str(sockdir), "-U", "test"],22882 check=False,22883 capture_output=True,22884 ).returncode22885 != 022886 ):22887 # The socket appears before recovery finishes; createdb would22888 # fail with "the database system is starting up".22889 if time.monotonic() > deadline:22890 msg = "postgres did not start"22891> raise RuntimeError(msg)22892E RuntimeError: postgres did not start2289322894nixbot/tests/support.py:319: RuntimeError22895_____ ERROR at setup of test_rerun_single_effect_takes_pending_dependents ______22896[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142289722898self = <Coroutine test_rerun_single_effect_takes_pending_dependents>2289922900 def setup(self) -> None:22901 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22902 if runner_fixture_id not in self.fixturenames:22903 self.fixturenames.append(runner_fixture_id)22904 # When loop factories are configured, resolve the loop factory22905 # fixture early so that a factory variant change cascades cache22906 # invalidation before any async fixture checks its cache.22907 hook_caller = self.config.hook.pytest_asyncio_loop_factories22908 if hook_caller.get_hookimpls():22909 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22910> return super().setup()22911 ^^^^^^^^^^^^^^^2291222913/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22914_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22915nixbot/tests/conftest.py:33: in postgres_dsn22916 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22917 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22918/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22919 return next(self.gen)22920 ^^^^^^^^^^^^^^22921_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2292222923tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22924dbname = 'orchestrator'2292522926 @contextlib.contextmanager22927 def ephemeral_postgres(22928 tmp_path_factory: pytest.TempPathFactory, dbname: str22929 ) -> Iterator[str]:22930 """Throwaway Postgres on a unix socket with migrations applied."""22931 datadir = tmp_path_factory.mktemp("pgdata")22932 sockdir = tmp_path_factory.mktemp("pgsock")22933 subprocess.run( # noqa: S60322934 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22935 check=True,22936 capture_output=True,22937 )22938 proc = subprocess.Popen( # noqa: S60322939 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22940 stdout=subprocess.DEVNULL,22941 stderr=subprocess.DEVNULL,22942 )22943 try:22944 deadline = time.monotonic() + 3022945 while (22946 subprocess.run( # noqa: S60322947 ["pg_isready", "-h", str(sockdir), "-U", "test"],22948 check=False,22949 capture_output=True,22950 ).returncode22951 != 022952 ):22953 # The socket appears before recovery finishes; createdb would22954 # fail with "the database system is starting up".22955 if time.monotonic() > deadline:22956 msg = "postgres did not start"22957> raise RuntimeError(msg)22958E RuntimeError: postgres did not start2295922960nixbot/tests/support.py:319: RuntimeError22961______ ERROR at setup of test_reuse_replays_effect_statuses_to_new_commit ______22962[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142296322964self = <Coroutine test_reuse_replays_effect_statuses_to_new_commit>2296522966 def setup(self) -> None:22967 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22968 if runner_fixture_id not in self.fixturenames:22969 self.fixturenames.append(runner_fixture_id)22970 # When loop factories are configured, resolve the loop factory22971 # fixture early so that a factory variant change cascades cache22972 # invalidation before any async fixture checks its cache.22973 hook_caller = self.config.hook.pytest_asyncio_loop_factories22974 if hook_caller.get_hookimpls():22975 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22976> return super().setup()22977 ^^^^^^^^^^^^^^^2297822979/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22980_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22981nixbot/tests/conftest.py:33: in postgres_dsn22982 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22983 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22984/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22985 return next(self.gen)22986 ^^^^^^^^^^^^^^22987_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2298822989tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22990dbname = 'orchestrator'2299122992 @contextlib.contextmanager22993 def ephemeral_postgres(22994 tmp_path_factory: pytest.TempPathFactory, dbname: str22995 ) -> Iterator[str]:22996 """Throwaway Postgres on a unix socket with migrations applied."""22997 datadir = tmp_path_factory.mktemp("pgdata")22998 sockdir = tmp_path_factory.mktemp("pgsock")22999 subprocess.run( # noqa: S60323000 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],23001 check=True,23002 capture_output=True,23003 )23004 proc = subprocess.Popen( # noqa: S60323005 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],23006 stdout=subprocess.DEVNULL,23007 stderr=subprocess.DEVNULL,23008 )23009 try:23010 deadline = time.monotonic() + 3023011 while (23012 subprocess.run( # noqa: S60323013 ["pg_isready", "-h", str(sockdir), "-U", "test"],23014 check=False,23015 capture_output=True,23016 ).returncode23017 != 023018 ):23019 # The socket appears before recovery finishes; createdb would23020 # fail with "the database system is starting up".23021 if time.monotonic() > deadline:23022 msg = "postgres did not start"23023> raise RuntimeError(msg)23024E RuntimeError: postgres did not start2302523026nixbot/tests/support.py:319: RuntimeError23027____ ERROR at setup of test_attach_to_already_terminal_build_replays_status ____23028[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142302923030self = <Coroutine test_attach_to_already_terminal_build_replays_status>2303123032 def setup(self) -> None:23033 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"23034 if runner_fixture_id not in self.fixturenames:23035 self.fixturenames.append(runner_fixture_id)23036 # When loop factories are configured, resolve the loop factory23037 # fixture early so that a factory variant change cascades cache23038 # invalidation before any async fixture checks its cache.23039 hook_caller = self.config.hook.pytest_asyncio_loop_factories23040 if hook_caller.get_hookimpls():23041 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)23042> return super().setup()23043 ^^^^^^^^^^^^^^^2304423045/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 23046_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 23047nixbot/tests/conftest.py:33: in postgres_dsn23048 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:23049 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^23050/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__23051 return next(self.gen)23052 ^^^^^^^^^^^^^^23053_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2305423055tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')23056dbname = 'orchestrator'2305723058 @contextlib.contextmanager23059 def ephemeral_postgres(23060 tmp_path_factory: pytest.TempPathFactory, dbname: str23061 ) -> Iterator[str]:23062 """Throwaway Postgres on a unix socket with migrations applied."""23063 datadir = tmp_path_factory.mktemp("pgdata")23064 sockdir = tmp_path_factory.mktemp("pgsock")23065 subprocess.run( # noqa: S60323066 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],23067 check=True,23068 capture_output=True,23069 )23070 proc = subprocess.Popen( # noqa: S60323071 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],23072 stdout=subprocess.DEVNULL,23073 stderr=subprocess.DEVNULL,23074 )23075 try:23076 deadline = time.monotonic() + 3023077 while (23078 subprocess.run( # noqa: S60323079 ["pg_isready", "-h", str(sockdir), "-U", "test"],23080 check=False,23081 capture_output=True,23082 ).returncode23083 != 023084 ):23085 # The socket appears before recovery finishes; createdb would23086 # fail with "the database system is starting up".23087 if time.monotonic() > deadline:23088 msg = "postgres did not start"23089> raise RuntimeError(msg)23090E RuntimeError: postgres did not start2309123092nixbot/tests/support.py:319: RuntimeError23093___ ERROR at setup of test_cancel_during_eval_resolves_linked_eval_contexts ____23094[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142309523096self = <Coroutine test_cancel_during_eval_resolves_linked_eval_contexts>2309723098 def setup(self) -> None:23099 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"23100 if runner_fixture_id not in self.fixturenames:23101 self.fixturenames.append(runner_fixture_id)23102 # When loop factories are configured, resolve the loop factory23103 # fixture early so that a factory variant change cascades cache23104 # invalidation before any async fixture checks its cache.23105 hook_caller = self.config.hook.pytest_asyncio_loop_factories23106 if hook_caller.get_hookimpls():23107 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)23108> return super().setup()23109 ^^^^^^^^^^^^^^^2311023111/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 23112_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 23113nixbot/tests/conftest.py:33: in postgres_dsn23114 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:23115 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^23116/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__23117 return next(self.gen)23118 ^^^^^^^^^^^^^^23119_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2312023121tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')23122dbname = 'orchestrator'2312323124 @contextlib.contextmanager23125 def ephemeral_postgres(23126 tmp_path_factory: pytest.TempPathFactory, dbname: str23127 ) -> Iterator[str]:23128 """Throwaway Postgres on a unix socket with migrations applied."""23129 datadir = tmp_path_factory.mktemp("pgdata")23130 sockdir = tmp_path_factory.mktemp("pgsock")23131 subprocess.run( # noqa: S60323132 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],23133 check=True,23134 capture_output=True,23135 )23136 proc = subprocess.Popen( # noqa: S60323137 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],23138 stdout=subprocess.DEVNULL,23139 stderr=subprocess.DEVNULL,23140 )23141 try:23142 deadline = time.monotonic() + 3023143 while (23144 subprocess.run( # noqa: S60323145 ["pg_isready", "-h", str(sockdir), "-U", "test"],23146 check=False,23147 capture_output=True,23148 ).returncode23149 != 023150 ):23151 # The socket appears before recovery finishes; createdb would23152 # fail with "the database system is starting up".23153 if time.monotonic() > deadline:23154 msg = "postgres did not start"23155> raise RuntimeError(msg)23156E RuntimeError: postgres did not start2315723158nixbot/tests/support.py:319: RuntimeError23159____ ERROR at setup of test_effect_log_does_not_collide_with_attribute_log _____23160[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142316123162self = <Coroutine test_effect_log_does_not_collide_with_attribute_log>2316323164 def setup(self) -> None:23165 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"23166 if runner_fixture_id not in self.fixturenames:23167 self.fixturenames.append(runner_fixture_id)23168 # When loop factories are configured, resolve the loop factory23169 # fixture early so that a factory variant change cascades cache23170 # invalidation before any async fixture checks its cache.23171 hook_caller = self.config.hook.pytest_asyncio_loop_factories23172 if hook_caller.get_hookimpls():23173 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)23174> return super().setup()23175 ^^^^^^^^^^^^^^^2317623177/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 23178_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 23179nixbot/tests/conftest.py:33: in postgres_dsn23180 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:23181 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^23182/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__23183 return next(self.gen)23184 ^^^^^^^^^^^^^^23185_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2318623187tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')23188dbname = 'orchestrator'2318923190 @contextlib.contextmanager23191 def ephemeral_postgres(23192 tmp_path_factory: pytest.TempPathFactory, dbname: str23193 ) -> Iterator[str]:23194 """Throwaway Postgres on a unix socket with migrations applied."""23195 datadir = tmp_path_factory.mktemp("pgdata")23196 sockdir = tmp_path_factory.mktemp("pgsock")23197 subprocess.run( # noqa: S60323198 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],23199 check=True,23200 capture_output=True,23201 )23202 proc = subprocess.Popen( # noqa: S60323203 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],23204 stdout=subprocess.DEVNULL,23205 stderr=subprocess.DEVNULL,23206 )23207 try:23208 deadline = time.monotonic() + 3023209 while (23210 subprocess.run( # noqa: S60323211 ["pg_isready", "-h", str(sockdir), "-U", "test"],23212 check=False,23213 capture_output=True,23214 ).returncode23215 != 023216 ):23217 # The socket appears before recovery finishes; createdb would23218 # fail with "the database system is starting up".23219 if time.monotonic() > deadline:23220 msg = "postgres did not start"23221> raise RuntimeError(msg)23222E RuntimeError: postgres did not start2322323224nixbot/tests/support.py:319: RuntimeError23225__________ ERROR at setup of test_post_process_paths_are_forge_scoped __________23226[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142322723228self = <Coroutine test_post_process_paths_are_forge_scoped>2322923230 def setup(self) -> None:23231 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"23232 if runner_fixture_id not in self.fixturenames:23233 self.fixturenames.append(runner_fixture_id)23234 # When loop factories are configured, resolve the loop factory23235 # fixture early so that a factory variant change cascades cache23236 # invalidation before any async fixture checks its cache.23237 hook_caller = self.config.hook.pytest_asyncio_loop_factories23238 if hook_caller.get_hookimpls():23239 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)23240> return super().setup()23241 ^^^^^^^^^^^^^^^2324223243/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 23244_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 23245nixbot/tests/conftest.py:33: in postgres_dsn23246 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:23247 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^23248/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__23249 return next(self.gen)23250 ^^^^^^^^^^^^^^23251_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2325223253tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')23254dbname = 'orchestrator'2325523256 @contextlib.contextmanager23257 def ephemeral_postgres(23258 tmp_path_factory: pytest.TempPathFactory, dbname: str23259 ) -> Iterator[str]:23260 """Throwaway Postgres on a unix socket with migrations applied."""23261 datadir = tmp_path_factory.mktemp("pgdata")23262 sockdir = tmp_path_factory.mktemp("pgsock")23263 subprocess.run( # noqa: S60323264 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],23265 check=True,23266 capture_output=True,23267 )23268 proc = subprocess.Popen( # noqa: S60323269 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],23270 stdout=subprocess.DEVNULL,23271 stderr=subprocess.DEVNULL,23272 )23273 try:23274 deadline = time.monotonic() + 3023275 while (23276 subprocess.run( # noqa: S60323277 ["pg_isready", "-h", str(sockdir), "-U", "test"],23278 check=False,23279 capture_output=True,23280 ).returncode23281 != 023282 ):23283 # The socket appears before recovery finishes; createdb would23284 # fail with "the database system is starting up".23285 if time.monotonic() > deadline:23286 msg = "postgres did not start"23287> raise RuntimeError(msg)23288E RuntimeError: postgres did not start2328923290nixbot/tests/support.py:319: RuntimeError23291_______ ERROR at setup of test_effects_phase_error_keeps_succeeded_build _______23292[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142329323294self = <Coroutine test_effects_phase_error_keeps_succeeded_build>2329523296 def setup(self) -> None:23297 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"23298 if runner_fixture_id not in self.fixturenames:23299 self.fixturenames.append(runner_fixture_id)23300 # When loop factories are configured, resolve the loop factory23301 # fixture early so that a factory variant change cascades cache23302 # invalidation before any async fixture checks its cache.23303 hook_caller = self.config.hook.pytest_asyncio_loop_factories23304 if hook_caller.get_hookimpls():23305 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)23306> return super().setup()23307 ^^^^^^^^^^^^^^^2330823309/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 23310_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 23311nixbot/tests/conftest.py:33: in postgres_dsn23312 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:23313 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^23314/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__23315 return next(self.gen)23316 ^^^^^^^^^^^^^^23317_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2331823319tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')23320dbname = 'orchestrator'2332123322 @contextlib.contextmanager23323 def ephemeral_postgres(23324 tmp_path_factory: pytest.TempPathFactory, dbname: str23325 ) -> Iterator[str]:23326 """Throwaway Postgres on a unix socket with migrations applied."""23327 datadir = tmp_path_factory.mktemp("pgdata")23328 sockdir = tmp_path_factory.mktemp("pgsock")23329 subprocess.run( # noqa: S60323330 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],23331 check=True,23332 capture_output=True,23333 )23334 proc = subprocess.Popen( # noqa: S60323335 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],23336 stdout=subprocess.DEVNULL,23337 stderr=subprocess.DEVNULL,23338 )23339 try:23340 deadline = time.monotonic() + 3023341 while (23342 subprocess.run( # noqa: S60323343 ["pg_isready", "-h", str(sockdir), "-U", "test"],23344 check=False,23345 capture_output=True,23346 ).returncode23347 != 023348 ):23349 # The socket appears before recovery finishes; createdb would23350 # fail with "the database system is starting up".23351 if time.monotonic() > deadline:23352 msg = "postgres did not start"23353> raise RuntimeError(msg)23354E RuntimeError: postgres did not start2335523356nixbot/tests/support.py:319: RuntimeError23357_____ ERROR at setup of test_reuse_post_process_error_still_reports_status _____23358[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142335923360self = <Coroutine test_reuse_post_process_error_still_reports_status>2336123362 def setup(self) -> None:23363 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"23364 if runner_fixture_id not in self.fixturenames:23365 self.fixturenames.append(runner_fixture_id)23366 # When loop factories are configured, resolve the loop factory23367 # fixture early so that a factory variant change cascades cache23368 # invalidation before any async fixture checks its cache.23369 hook_caller = self.config.hook.pytest_asyncio_loop_factories23370 if hook_caller.get_hookimpls():23371 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)23372> return super().setup()23373 ^^^^^^^^^^^^^^^2337423375/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 23376_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 23377nixbot/tests/conftest.py:33: in postgres_dsn23378 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:23379 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^23380/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__23381 return next(self.gen)23382 ^^^^^^^^^^^^^^23383_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2338423385tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')23386dbname = 'orchestrator'2338723388 @contextlib.contextmanager23389 def ephemeral_postgres(23390 tmp_path_factory: pytest.TempPathFactory, dbname: str23391 ) -> Iterator[str]:23392 """Throwaway Postgres on a unix socket with migrations applied."""23393 datadir = tmp_path_factory.mktemp("pgdata")23394 sockdir = tmp_path_factory.mktemp("pgsock")23395 subprocess.run( # noqa: S60323396 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],23397 check=True,23398 capture_output=True,23399 )23400 proc = subprocess.Popen( # noqa: S60323401 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],23402 stdout=subprocess.DEVNULL,23403 stderr=subprocess.DEVNULL,23404 )23405 try:23406 deadline = time.monotonic() + 3023407 while (23408 subprocess.run( # noqa: S60323409 ["pg_isready", "-h", str(sockdir), "-U", "test"],23410 check=False,23411 capture_output=True,23412 ).returncode23413 != 023414 ):23415 # The socket appears before recovery finishes; createdb would23416 # fail with "the database system is starting up".23417 if time.monotonic() > deadline:23418 msg = "postgres did not start"23419> raise RuntimeError(msg)23420E RuntimeError: postgres did not start2342123422nixbot/tests/support.py:319: RuntimeError23423____ ERROR at setup of test_reuse_with_missing_output_still_post_processes _____23424[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142342523426self = <Coroutine test_reuse_with_missing_output_still_post_processes>2342723428 def setup(self) -> None:23429 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"23430 if runner_fixture_id not in self.fixturenames:23431 self.fixturenames.append(runner_fixture_id)23432 # When loop factories are configured, resolve the loop factory23433 # fixture early so that a factory variant change cascades cache23434 # invalidation before any async fixture checks its cache.23435 hook_caller = self.config.hook.pytest_asyncio_loop_factories23436 if hook_caller.get_hookimpls():23437 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)23438> return super().setup()23439 ^^^^^^^^^^^^^^^2344023441/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 23442_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 23443nixbot/tests/conftest.py:33: in postgres_dsn23444 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:23445 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^23446/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__23447 return next(self.gen)23448 ^^^^^^^^^^^^^^23449_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2345023451tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/7/scratch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/p...atch/de432e2b0487899e/build/pytest-of-_tribuchetbld7/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')23452dbname = 'orchestrator'2345323454 @contextlib.contextmanager23455 def ephemeral_postgres(23456 tmp_path_factory: pytest.TempPathFactory, dbname: str23457 ) -> Iterator[str]:23458 """Throwaway Postgres on a unix socket with migrations applied."""23459 datadir = tmp_path_factory.mktemp("pgdata")23460 sockdir = tmp_path_factory.mktemp("pgsock")23461 subprocess.run( # noqa: S60323462 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],23463 check=True,23464 capture_output=True,23465 )23466 proc = subprocess.Popen( # noqa: S60323467 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],23468 stdout=subprocess.DEVNULL,23469 stderr=subprocess.DEVNULL,23470 )23471 try:23472 deadline = time.monotonic() + 3023473 while (23474 subprocess.run( # noqa: S60323475 ["pg_isready", "-h", str(sockdir), "-U", "test"],23476 check=False,23477 capture_output=True,23478 ).returncode23479 != 023480 ):23481 # The socket appears before recovery finishes; createdb would23482 # fail with "the database system is starting up".23483 if time.monotonic() > deadline:23484 msg = "postgres did not start"23485> raise RuntimeError(msg)23486E RuntimeError: postgres did not start2348723488nixbot/tests/support.py:319: RuntimeError23489=========================== short test summary info ============================23490ERROR nixbot/tests/test_web.py::test_html_error_pages - RuntimeError: postgre...23491ERROR nixbot/tests/test_web.py::test_api_strips_ansi_from_errors - RuntimeErr...23492ERROR nixbot/tests/test_web.py::test_homepage - RuntimeError: postgres did no...23493ERROR nixbot/tests/test_web.py::test_project_page_with_filters - RuntimeError...23494ERROR nixbot/tests/test_web.py::test_status_badge_urls - RuntimeError: postgr...23495ERROR nixbot/tests/test_web.py::test_all_digit_branch_is_filterable - Runtime...23496ERROR nixbot/tests/test_web.py::test_build_page - RuntimeError: postgres did ...23497ERROR nixbot/tests/test_web.py::test_attribute_rows_fragment_paginates - Runt...23498ERROR nixbot/tests/test_web.py::test_build_page_shows_eval_warning_groups - R...23499ERROR nixbot/tests/test_web.py::test_build_page_shows_per_attribute_eval_warnings23500ERROR nixbot/tests/test_web.py::test_build_page_renders_ansi_in_error - Runti...23501ERROR nixbot/tests/test_web.py::test_running_build_shows_progress - RuntimeEr...23502ERROR nixbot/tests/test_web.py::test_build_page_live_markers - RuntimeError: ...23503ERROR nixbot/tests/test_web.py::test_attribute_history - RuntimeError: postgr...23504ERROR nixbot/tests/test_web.py::test_overview_ignores_pr_branches - RuntimeEr...23505ERROR nixbot/tests/test_web.py::test_pending_build_shows_eval_blocker - Runti...23506ERROR nixbot/tests/test_web.py::test_project_filter_escapes_like_wildcards - ...23507ERROR nixbot/tests/test_forge.py::test_project_store_sync_and_legacy_import23508ERROR nixbot/tests/test_web.py::test_page_out_of_range_does_not_error - Runti...23509ERROR nixbot/tests/test_web.py::test_activity_page - RuntimeError: postgres d...23510ERROR nixbot/tests/test_forge.py::test_legacy_import_runs_despite_pull_based_rows23511ERROR nixbot/tests/test_web.py::test_activity_no_sentinel_on_exact_page - Run...23512ERROR nixbot/tests/test_web.py::test_activity_rows_fragment_pagination - Runt...23513ERROR nixbot/tests/test_forge.py::test_legacy_import_scopes_topics_per_forge23514ERROR nixbot/tests/test_web.py::test_project_rows_fragment_filters - RuntimeE...23515ERROR nixbot/tests/test_web.py::test_metrics_are_gauges - RuntimeError: postg...23516ERROR nixbot/tests/test_forge.py::test_prune_missing_disabled_projects - Runt...23517ERROR nixbot/tests/test_web.py::test_metrics_are_cached - RuntimeError: postg...23518ERROR nixbot/tests/test_forge.py::test_project_store_sync_skips_unchanged_rows23519ERROR nixbot/tests/test_web.py::test_static_urls_carry_content_version - Runt...23520ERROR nixbot/tests/test_web.py::test_legacy_project_urls_redirect - RuntimeEr...23521ERROR nixbot/tests/test_forge.py::test_gitea_hook_registration - RuntimeError...23522ERROR nixbot/tests/test_web.py::test_private_repo_public_badge_bypasses_session_visibility23523ERROR nixbot/tests/test_visibility.py::test_anonymous_sees_public_only - Runt...23524ERROR nixbot/tests/test_forge.py::test_gitlab_heads_carry_target_branch_base23525ERROR nixbot/tests/test_web.py::test_legacy_redirect_hides_invisible_projects23526ERROR nixbot/tests/test_visibility.py::test_unauthorized_user_sees_public_only23527ERROR nixbot/tests/test_web.py::test_legacy_redirect_404s_on_ambiguous_owner_name23528ERROR nixbot/tests/test_visibility.py::test_authorized_user_sees_private - Ru...23529ERROR nixbot/tests/test_forge.py::test_gitea_heads_encode_slashed_default_branch23530ERROR nixbot/tests/test_web.py::test_health_and_static - RuntimeError: postgr...23531ERROR nixbot/tests/test_visibility.py::test_admin_sees_everything - RuntimeEr...23532ERROR nixbot/tests/test_web.py::test_404s - RuntimeError: postgres did not start23533ERROR nixbot/tests/test_visibility.py::test_admin_sees_disabled_repos_without_search23534ERROR nixbot/tests/test_db.py::test_migrations_idempotent - RuntimeError: pos...23535ERROR nixbot/tests/test_forge.py::test_reconcile_unbuilt_heads - RuntimeError...23536ERROR nixbot/tests/test_visibility.py::test_non_admin_does_not_see_disabled_repos23537ERROR nixbot/tests/test_forge.py::test_gitea_watermark_stops_pagination - Run...23538ERROR nixbot/tests/test_db.py::test_failed_migration_error_not_masked - Runti...23539ERROR nixbot/tests/test_web.py::test_log_viewer_and_raw - RuntimeError: postg...23540ERROR nixbot/tests/test_visibility.py::test_api_token_sees_private - RuntimeE...23541ERROR nixbot/tests/test_visibility.py::test_admin_api_token_sees_private - Ru...23542ERROR nixbot/tests/test_web.py::test_structured_log_endpoints - RuntimeError:...23543ERROR nixbot/tests/test_forge.py::test_gitlab_heads_filter_updated_after - Ru...23544ERROR nixbot/tests/test_db.py::test_edited_migration_rejected - RuntimeError:...23545ERROR nixbot/tests/test_web.py::test_structured_log_window_caps_huge_derivation23546ERROR nixbot/tests/test_visibility.py::test_forge_repo_admins_can_toggle_their_repos23547ERROR nixbot/tests/test_db.py::test_catchup_migration_repairs_pre_0033_schema23548ERROR nixbot/tests/test_forge.py::test_reconcile_watermark_store - RuntimeErr...23549ERROR nixbot/tests/test_web.py::test_attr_named_dot_txt_not_shadowed_by_raw_route23550ERROR nixbot/tests/test_visibility.py::test_forge_repo_writers_can_control_their_repos23551ERROR nixbot/tests/test_db.py::test_huge_attr_name_does_not_break_notify_trigger23552ERROR nixbot/tests/test_visibility.py::test_fetch_errors_are_not_cached - Run...23553ERROR nixbot/tests/test_web.py::test_attr_names_with_special_characters - Run...23554ERROR nixbot/tests/test_web.py::test_log_viewer_waits_for_queued_attribute - ...23555ERROR nixbot/tests/test_visibility.py::test_access_cache_used - RuntimeError:...23556ERROR nixbot/tests/test_web.py::test_log_viewer_unavailable_for_logless_status23557ERROR nixbot/tests/test_visibility.py::test_metrics_unauthenticated_no_private_names23558ERROR nixbot/tests/test_db.py::test_schema_constraints - RuntimeError: postgr...23559ERROR nixbot/tests/test_web.py::test_eval_error_served_like_build_log - Runti...23560ERROR nixbot/tests/test_visibility.py::test_configured_viewers_see_private - ...23561ERROR nixbot/tests/test_web.py::test_api_projects_and_builds - RuntimeError: ...23562ERROR nixbot/tests/test_forge.py::test_register_repo_hook_without_admin_warns23563ERROR nixbot/tests/test_db.py::test_check_run_store_round_trip - RuntimeError...23564ERROR nixbot/tests/test_visibility.py::test_api_token_inherits_login_groups23565ERROR nixbot/tests/test_web.py::test_build_rows_link_refs - RuntimeError: pos...23566ERROR nixbot/tests/test_visibility.py::test_logout_invalidates_access_cache23567ERROR nixbot/tests/test_db.py::test_failed_status_store_component - RuntimeEr...23568ERROR nixbot/tests/test_forge.py::test_gitlab_hook_registration - RuntimeErro...23569ERROR nixbot/tests/test_web.py::test_attributes_sort_building_before_pending23570ERROR nixbot/tests/test_web.py::test_queue_sorts_active_before_pending - Runt...23571ERROR nixbot/tests/test_forge.py::test_register_repo_hook_500_with_403_in_body_raises23572ERROR nixbot/tests/test_db.py::test_failed_build_cache_component - RuntimeErr...23573ERROR nixbot/tests/test_web.py::test_queue_position_is_global_and_skips_running23574ERROR nixbot/tests/test_web.py::test_openapi_docs - RuntimeError: postgres di...23575ERROR nixbot/tests/test_forge.py::test_gitlab_register_repo_hook_status_classification23576ERROR nixbot/tests/test_db.py::test_get_or_create_build_concurrent_no_duplicates23577ERROR nixbot/tests/test_web.py::test_structured_live_stream - RuntimeError: p...23578ERROR nixbot/tests/test_web.py::test_drv_raw_serves_running_attribute - Runti...23579ERROR nixbot/tests/test_db.py::test_commit_eval_result_atomic - RuntimeError:...23580ERROR nixbot/tests/test_forge.py::test_gitea_legacy_hook_delete_failure_warns23581ERROR nixbot/tests/test_web.py::test_log_sse_stream_caps_history_backlog - Ru...23582ERROR nixbot/tests/test_db.py::test_cancelled_build_not_reused - RuntimeError...23583ERROR nixbot/tests/test_forge.py::test_sync_tolerates_in_batch_duplicates - R...23584ERROR nixbot/tests/test_web.py::test_log_sse_stream_neutralizes_carriage_returns23585ERROR nixbot/tests/test_cli.py::test_repo_list_and_toggle - RuntimeError: pos...23586ERROR nixbot/tests/test_recovery.py::test_resume_skips_terminal_attributes - ...23587ERROR nixbot/tests/test_service.py::test_scheduled_worktree_id_distinct_per_effect23588ERROR nixbot/tests/test_web.py::test_api_builds_commit_filter - RuntimeError:...23589ERROR nixbot/tests/test_db.py::test_reuse_backfills_pr_fields - RuntimeError:...23590ERROR nixbot/tests/test_cli.py::test_build_list_and_view - RuntimeError: post...23591ERROR nixbot/tests/test_service.py::test_scheduled_worktree_id_sanitizes_traversal23592ERROR nixbot/tests/test_web.py::test_log_tail_param - RuntimeError: postgres ...23593ERROR nixbot/tests/test_recovery.py::test_settle_already_built - RuntimeError...23594ERROR nixbot/tests/test_db.py::test_reuse_by_other_pr_clears_both_identity_fields23595ERROR nixbot/tests/test_web.py::test_api_build_failures - RuntimeError: postg...23596ERROR nixbot/tests/test_cli.py::test_build_restart_cancel - RuntimeError: pos...23597ERROR nixbot/tests/test_service.py::test_resolve_credential_path - RuntimeErr...23598ERROR nixbot/tests/test_web.py::test_api_build_failures_rejects_non_positive_tail23599ERROR nixbot/tests/test_cli.py::test_log_summary_attr_and_drv - RuntimeError:...23600ERROR nixbot/tests/test_db.py::test_branch_push_takes_over_reused_pr_build - ...23601ERROR nixbot/tests/test_web.py::test_llms_txt - RuntimeError: postgres did no...23602ERROR nixbot/tests/test_service.py::test_build_service_accepts_asyncpg_dsn - ...23603ERROR nixbot/tests/test_cli.py::test_repo_and_build_inference - RuntimeError:...23604ERROR nixbot/tests/test_web.py::test_event_broker_pushes_status_changes - Run...23605ERROR nixbot/tests/test_service.py::test_visibility_fetcher_and_cache_ttl_wired23606ERROR nixbot/tests/test_cli.py::test_auth_status - RuntimeError: postgres did...23607ERROR nixbot/tests/test_db.py::test_pr_does_not_capture_branch_push_build - R...23608ERROR nixbot/tests/test_web.py::test_events_stream_coalesces_burst - RuntimeE...23609ERROR nixbot/tests/test_upload.py::test_chunk_args_splits_on_byte_limit - Run...23610ERROR nixbot/tests/test_db_fuzz.py::test_concurrent_queries_do_not_deadlock[0]23611ERROR nixbot/tests/test_work_queue.py::test_enqueue_dedupes_pending - Runtime...23612ERROR nixbot/tests/test_recovery.py::test_retention_cleanup - RuntimeError: p...23613ERROR nixbot/tests/test_control.py::test_control_buttons_hidden_without_permission23614ERROR nixbot/tests/test_web.py::test_events_stream_refreshes_visibility - Run...23615ERROR nixbot/tests/test_service.py::test_aclose_cancels_in_flight_tasks - Run...23616ERROR nixbot/tests/test_upload.py::test_parse_path_info_both_formats - Runtim...23617ERROR nixbot/tests/test_orchestrator.py::test_full_lifecycle - RuntimeError: ...23618ERROR nixbot/tests/test_db.py::test_complete_attribute_preserves_eval_outputs23619ERROR nixbot/tests/test_deliver.py::test_match_skip_and_run - RuntimeError: p...23620ERROR nixbot/tests/test_control.py::test_admin_can_restart_and_cancel - Runti...23621ERROR nixbot/tests/test_db.py::test_complete_attribute_marks_substituted_as_cached23622ERROR nixbot/tests/test_web.py::test_attribute_search - RuntimeError: postgre...23623ERROR nixbot/tests/test_db_fuzz.py::test_concurrent_queries_do_not_deadlock[1]23624ERROR nixbot/tests/test_db.py::test_complete_attribute_replaces_log_metadata23625ERROR nixbot/tests/test_work_queue.py::test_claim_serializes_per_key - Runtim...23626ERROR nixbot/tests/test_service.py::test_pr_close_discards_queued_changes - R...23627ERROR nixbot/tests/test_upload.py::test_final_upload_reports_and_clears_queue23628ERROR nixbot/tests/test_db.py::test_record_attributes_persists_pending_rows_with_outputs23629ERROR nixbot/tests/test_recovery.py::test_resume_includes_interrupted_building_attributes23630ERROR nixbot/tests/test_control.py::test_pr_author_can_control_own_pr - Runti...23631ERROR nixbot/tests/test_cli_api.py::test_repos_and_builds - RuntimeError: pos...23632ERROR nixbot/tests/test_orchestrator.py::test_failure_aggregation - RuntimeEr...23633ERROR nixbot/tests/test_db.py::test_mark_attribute_building_does_not_resurrect_cancelled_rows23634ERROR nixbot/tests/test_deliver.py::test_permission_denied_records_reason - R...23635ERROR nixbot/tests/test_web.py::test_build_page_shows_effects - RuntimeError:...23636ERROR nixbot/tests/test_schedules.py::test_replace_schedules_preserves_last_run_for_unchanged_spec23637ERROR nixbot/tests/test_control.py::test_repo_writer_can_control_without_admin_or_authorship23638ERROR nixbot/tests/test_cli_api.py::test_finished_attrs_cursor - RuntimeError...23639ERROR nixbot/tests/test_db.py::test_mark_attribute_building_sets_status_and_started_at23640ERROR nixbot/tests/test_work_queue.py::test_settle_interrupted_requeues - Run...23641ERROR nixbot/tests/test_db.py::test_complete_attribute_if_unfinished_skips_terminal_rows23642ERROR nixbot/tests/test_db_fuzz.py::test_concurrent_queries_do_not_deadlock[2]23643ERROR nixbot/tests/test_recovery.py::test_retention_skips_restarted_builds - ...23644ERROR nixbot/tests/test_service.py::test_build_branches_gates_branch_pushes23645ERROR nixbot/tests/test_upload.py::test_intermediates_batch_with_final_and_drop_invalid23646ERROR nixbot/tests/test_cli_api.py::test_control_requires_token - RuntimeErro...23647ERROR nixbot/tests/test_db.py::test_failed_build_cache_scoped_per_project - R...23648ERROR nixbot/tests/test_web.py::test_build_page_shows_event_effects - Runtime...23649ERROR nixbot/tests/test_control.py::test_approve_pr_requires_writer_not_author23650ERROR nixbot/tests/test_orchestrator.py::test_tree_hash_reuse - RuntimeError:...23651ERROR nixbot/tests/test_db.py::test_eval_stats_lifecycle - RuntimeError: post...23652ERROR nixbot/tests/test_deliver.py::test_modified_files_gate - RuntimeError: ...23653ERROR nixbot/tests/test_schedules.py::test_concurrent_replace_schedules_do_not_collide23654ERROR nixbot/tests/test_cli_api.py::test_enable_disable - RuntimeError: postg...23655ERROR nixbot/tests/test_web.py::test_build_page_groups_dependency_checks_apart23656ERROR nixbot/tests/test_service.py::test_tag_push_builds_peeled_commit - Runt...23657ERROR nixbot/tests/test_upload.py::test_stdin_mode - RuntimeError: postgres d...23658ERROR nixbot/tests/test_recovery.py::test_retention_ages_out_failed_caches - ...23659ERROR nixbot/tests/test_web.py::test_effect_log_raw_text - RuntimeError: post...23660ERROR nixbot/tests/test_schedules.py::test_replace_schedules_tolerates_duplicate_effect_names23661ERROR nixbot/tests/test_cli_api.py::test_log_toc_and_text - RuntimeError: pos...23662ERROR nixbot/tests/test_deliver.py::test_forge_outage_is_retried - RuntimeErr...23663ERROR nixbot/tests/test_service.py::test_tag_push_waits_for_a_branch_to_build_its_commit23664ERROR nixbot/tests/test_orchestrator.py::test_eval_reuse_from_cancelled_build23665ERROR nixbot/tests/test_upload.py::test_pending_paths_survive_restart - Runti...23666ERROR nixbot/tests/test_recovery.py::test_rerun_clears_stale_eval_warnings - ...23667ERROR nixbot/tests/test_web.py::test_effect_log_viewer_status_icon - RuntimeE...23668ERROR nixbot/tests/test_cli_api.py::test_effect_run_text_and_stream - Runtime...23669ERROR nixbot/tests/test_schedules.py::test_store_roundtrip_and_due - RuntimeE...23670ERROR nixbot/tests/test_upload.py::test_uploader_factory_picks_stream - Runti...23671ERROR nixbot/tests/test_web.py::test_effect_changes_notify_build_events - Run...23672ERROR nixbot/tests/test_db_fuzz.py::test_concurrent_queries_do_not_deadlock[3]23673ERROR nixbot/tests/test_deliver.py::test_forge_outage_gives_up - RuntimeError...23674ERROR nixbot/tests/test_orchestrator.py::test_eval_reuse_skipped_when_drvs_gone23675ERROR nixbot/tests/test_service.py::test_pr_approval_gate - RuntimeError: pos...23676ERROR nixbot/tests/test_control.py::test_cancel_all_requires_admin - RuntimeE...23677ERROR nixbot/tests/test_recovery.py::test_interrupted_effects_fail_on_recovery23678ERROR nixbot/tests/test_control.py::test_cancel_all_cancels_pending_and_running_builds23679ERROR nixbot/tests/test_schedules.py::test_due_effects_window_and_bad_spec - ...23680ERROR nixbot/tests/test_cli.py::test_log_follow_finished_attr_falls_back_to_stored_log23681ERROR nixbot/tests/test_upload.py::test_stream_reports_per_path_and_clears_queue23682ERROR nixbot/tests/test_orchestrator.py::test_main_push_promotes_reused_pr_build23683ERROR nixbot/tests/test_db_fuzz.py::test_concurrent_queries_do_not_deadlock[4]23684ERROR nixbot/tests/test_cli.py::test_log_effect_by_name_and_id - RuntimeError...23685ERROR nixbot/tests/test_deliver.py::test_lock_shared_with_push_effect_and_supersession23686ERROR nixbot/tests/test_cli.py::test_log_effect_is_not_shadowed_by_attributes23687ERROR nixbot/tests/test_control.py::test_cancel_all_button_admin_only - Runti...23688ERROR nixbot/tests/test_service.py::test_pr_approval_disabled_by_default - Ru...23689ERROR nixbot/tests/test_recovery.py::test_interrupted_effects_sweep_spares_live_effects23690ERROR nixbot/tests/test_schedules.py::test_run_recording_and_overview - Runti...23691ERROR nixbot/tests/test_orchestrator.py::test_merge_conflict_fails_build - Ru...23692ERROR nixbot/tests/test_control.py::test_csrf_cross_origin_rejected - Runtime...23693ERROR nixbot/tests/test_db_fuzz.py::test_concurrent_queries_do_not_deadlock[5]23694ERROR nixbot/tests/test_deliver.py::test_checkout_is_pr_head_without_token - ...23695ERROR nixbot/tests/test_service.py::test_restart_gitlab_mr_build_fetches_mr_refs23696ERROR nixbot/tests/test_web.py::test_effects_state_api - RuntimeError: postgr...23697ERROR nixbot/tests/test_control.py::test_restart_single_attribute - RuntimeEr...23698ERROR nixbot/tests/test_orchestrator.py::test_build_reuse_clears_pr_author_in_other_context23699ERROR nixbot/tests/test_web.py::test_pr_comment_api - RuntimeError: postgres ...23700ERROR nixbot/tests/test_db_fuzz.py::test_concurrent_queries_do_not_deadlock[6]23701ERROR nixbot/tests/test_control.py::test_restart_unknown_attribute_is_404 - R...23702ERROR nixbot/tests/test_deliver.py::test_build_success_enqueues_delivery - Ru...23703ERROR nixbot/tests/test_service.py::test_restart_eval_failed_build_reevaluates23704ERROR nixbot/tests/test_web.py::test_workload_identity_api - RuntimeError: po...23705ERROR nixbot/tests/test_upload.py::test_stream_error_is_reported_with_message23706ERROR nixbot/tests/test_control.py::test_restart_attribute_with_special_chars_redirects_encoded23707ERROR nixbot/tests/test_db_fuzz.py::test_concurrent_queries_do_not_deadlock[7]23708ERROR nixbot/tests/test_orchestrator.py::test_effects_started_flag - RuntimeE...23709ERROR nixbot/tests/test_service.py::test_restart_clears_stale_error_and_warnings23710ERROR nixbot/tests/test_web.py::test_logout_revokes_session_cookie - RuntimeE...23711ERROR nixbot/tests/test_control.py::test_admin_project_toggle - RuntimeError:...23712ERROR nixbot/tests/test_deliver.py::test_comment_and_close_webhooks_deliver23713ERROR nixbot/tests/test_upload.py::test_stream_child_crash_refeeds_pending - ...23714ERROR nixbot/tests/test_orchestrator.py::test_aggregation_generation_monotonic23715ERROR nixbot/tests/test_web.py::test_gitlab_nested_group_routes - RuntimeErro...23716ERROR nixbot/tests/test_control.py::test_toggle_activates_newly_enabled_project23717ERROR nixbot/tests/test_service.py::test_restart_unknown_attribute_is_a_noop23718ERROR nixbot/tests/test_deliver.py::test_close_after_merge_push_reused_build23719ERROR nixbot/tests/test_web.py::test_scheduled_run_viewer_renders_ansi - Runt...23720ERROR nixbot/tests/test_control.py::test_run_schedule - RuntimeError: postgre...23721ERROR nixbot/tests/test_upload.py::test_failure_reports_retries_and_gives_up23722ERROR nixbot/tests/test_orchestrator.py::test_internal_error_not_recorded_in_failed_build_cache23723ERROR nixbot/tests/test_web.py::test_scheduled_run_viewer_cross_project_40423724ERROR nixbot/tests/test_service.py::test_restart_failed_eval_attribute_reevaluates23725ERROR nixbot/tests/test_control.py::test_schedules_are_listed_on_the_effects_page23726ERROR nixbot/tests/test_deliver.py::test_build_finished_transitions - Runtime...23727ERROR nixbot/tests/test_orchestrator.py::test_log_path_attribute_name_sanitized23728ERROR nixbot/tests/test_web.py::test_scheduled_run_log_unavailable_placeholder23729ERROR nixbot/tests/test_control.py::test_repo_refresh - RuntimeError: postgre...23730ERROR nixbot/tests/test_web.py::test_scheduled_run_viewer_waiting_before_log23731ERROR nixbot/tests/test_service.py::test_interrupted_reeval_keeps_attribute_rows23732ERROR nixbot/tests/test_deliver.py::test_command_while_running_gets_notice - ...23733ERROR nixbot/tests/test_control.py::test_api_enable_disable - RuntimeError: p...23734ERROR nixbot/tests/test_web.py::test_project_tabs_link_builds_and_effects - R...23735ERROR nixbot/tests/test_orchestrator.py::test_cancel_interrupts_evaluation - ...23736ERROR nixbot/tests/test_control.py::test_api_restart_and_cancel - RuntimeErro...23737ERROR nixbot/tests/test_web.py::test_failing_badge_counts_effects_whose_latest_run_failed23738ERROR nixbot/tests/test_deliver.py::test_other_command_does_not_supersede - R...23739ERROR nixbot/tests/test_orchestrator.py::test_build_waiting_for_eval_slot_stays_pending23740ERROR nixbot/tests/test_control.py::test_api_token_lifecycle - RuntimeError: ...23741ERROR nixbot/tests/test_web.py::test_old_schedule_history_url_redirects - Run...23742ERROR nixbot/tests/test_control.py::test_expired_api_tokens_pruned - RuntimeE...23743ERROR nixbot/tests/test_web.py::test_project_effects_filter_and_paginate - Ru...23744ERROR nixbot/tests/test_deliver.py::test_label_change_redelivers_pull_request23745ERROR nixbot/tests/test_orchestrator.py::test_pending_attribute_rows_recorded_for_crash_recovery23746ERROR nixbot/tests/test_service.py::test_restart_cancelled_build_reschedules_attributes23747ERROR nixbot/tests/test_web.py::test_scheduled_run_stream_replays_history - R...23748ERROR nixbot/tests/test_control.py::test_token_creation_with_expiry - Runtime...23749ERROR nixbot/tests/test_deliver.py::test_build_outcome_and_restart_leave_event_history23750ERROR nixbot/tests/test_control.py::test_proxy_user_can_manage_api_tokens - R...23751ERROR nixbot/tests/test_web.py::test_scheduled_run_notify_build_events - Runt...23752ERROR nixbot/tests/test_service.py::test_restart_cancelled_mid_eval_reevaluates23753ERROR nixbot/tests/test_orchestrator.py::test_eval_warnings_null_when_empty23754ERROR nixbot/tests/test_control.py::test_bearer_token_cannot_manage_api_tokens23755ERROR nixbot/tests/test_web.py::test_api_log_toc_and_text - RuntimeError: pos...23756ERROR nixbot/tests/test_deliver.py::test_restart_event_effect_reruns_with_stored_payload23757ERROR nixbot/tests/test_orchestrator.py::test_rerun_flips_stale_red_eval_status23758ERROR nixbot/tests/test_service.py::test_restart_while_unwinding_waits_then_runs23759ERROR nixbot/tests/test_control.py::test_api_token_controls_build - RuntimeEr...23760ERROR nixbot/tests/test_web.py::test_api_log_toc_flat_log_fallback - RuntimeE...23761ERROR nixbot/tests/test_orchestrator.py::test_recovery_rerun_failures_not_cached23762ERROR nixbot/tests/test_deliver.py::test_listing_failure_recorded_on_build - ...23763ERROR nixbot/tests/test_web.py::test_api_log_stream_json - RuntimeError: post...23764ERROR nixbot/tests/test_service.py::test_restart_attribute_while_build_running23765ERROR nixbot/tests/test_control.py::test_build_service_composition - RuntimeE...23766ERROR nixbot/tests/test_orchestrator.py::test_gitlab_mr_fetches_merge_request_refs23767ERROR nixbot/tests/test_web.py::test_build_eval_stats_surface - RuntimeError:...23768ERROR nixbot/tests/test_deliver.py::test_tag_runs_onpush_effects_with_tag - R...23769ERROR nixbot/tests/test_service.py::test_cancel_not_running_posts_forge_status23770ERROR nixbot/tests/test_control.py::test_restart_removes_stale_logs - Runtime...23771ERROR nixbot/tests/test_deliver.py::test_tag_waits_for_a_running_release - Ru...23772ERROR nixbot/tests/test_orchestrator.py::test_rerun_fetches_forge_change_request_refs[github]23773ERROR nixbot/tests/test_service.py::test_check_rerequested_dispatch - Runtime...23774ERROR nixbot/tests/test_control.py::test_restart_clears_failed_cache - Runtim...23775ERROR nixbot/tests/test_deliver.py::test_tag_listing_failure_recorded_apart_from_build_effects23776ERROR nixbot/tests/test_orchestrator.py::test_rerun_fetches_forge_change_request_refs[gitlab]23777ERROR nixbot/tests/test_service.py::test_cancel_not_running_settles_attribute_rows23778ERROR nixbot/tests/test_control.py::test_webhook_setup_shown_to_admin_only - ...23779ERROR nixbot/tests/test_orchestrator.py::test_cancelled_build_reuse_rebuilds23780ERROR nixbot/tests/test_service.py::test_cancel_attribute_not_running_reaggregates_build23781ERROR nixbot/tests/test_control.py::test_webhook_secret_regeneration - Runtim...23782ERROR nixbot/tests/test_control.py::test_retry_after_parsing - RuntimeError: ...23783ERROR nixbot/tests/test_service.py::test_pull_based_projects_synced_and_buildable23784ERROR nixbot/tests/test_orchestrator.py::test_inflight_share_fans_out_final_status23785ERROR nixbot/tests/test_control.py::test_work_retry_delay_honors_retry_after23786ERROR nixbot/tests/test_service.py::test_topic_does_not_hard_filter_discovery23787ERROR nixbot/tests/test_orchestrator.py::test_stale_event_does_not_supersede_newer_build23788ERROR nixbot/tests/test_control.py::test_report_retry - RuntimeError: postgre...23789ERROR nixbot/tests/test_service.py::test_startup_reevaluates_interrupted_eval23790ERROR nixbot/tests/test_control.py::test_effect_item_setup_failure_settles_row23791ERROR nixbot/tests/test_orchestrator.py::test_eval_failure_cleans_cancel_events23792ERROR nixbot/tests/test_service.py::test_rerun_of_interrupted_eval_reevaluates23793ERROR nixbot/tests/test_control.py::test_restart_attribute_posts_pending - Ru...23794ERROR nixbot/tests/test_orchestrator.py::test_eval_settings_wired - RuntimeEr...23795ERROR nixbot/tests/test_service.py::test_rerun_resumes_building_rows_and_keeps_finished23796ERROR nixbot/tests/test_control.py::test_recovery_reports_interrupted_effects23797ERROR nixbot/tests/test_orchestrator.py::test_eval_netrc_withheld_from_pr_with_instance_wide_creds23798ERROR nixbot/tests/test_service.py::test_rerun_reevaluates_when_drv_paths_were_garbage_collected23799ERROR nixbot/tests/test_control.py::test_work_dispatch - RuntimeError: postgr...23800ERROR nixbot/tests/test_orchestrator.py::test_eval_gcroots_dir_removed_after_build23801ERROR nixbot/tests/test_service.py::test_reeval_failure_marks_build_failed - ...23802ERROR nixbot/tests/test_control.py::test_restart_resets_effects - RuntimeErro...23803ERROR nixbot/tests/test_orchestrator.py::test_effects_run_after_default_branch_success23804ERROR nixbot/tests/test_control.py::test_effects_restart_route - RuntimeError...23805ERROR nixbot/tests/test_service.py::test_gitlab_discovery_and_hook_registration23806ERROR nixbot/tests/test_orchestrator.py::test_when_changed_reuses_the_last_success23807ERROR nixbot/tests/test_control.py::test_single_effect_restart_route - Runtim...23808ERROR nixbot/tests/test_control.py::test_effect_cancel_route - RuntimeError: ...23809ERROR nixbot/tests/test_service.py::test_health_serves_while_startup_blocks23810ERROR nixbot/tests/test_orchestrator.py::test_when_changed_decides_when_the_lock_is_free23811ERROR nixbot/tests/test_control.py::test_webhook_panel_is_forge_aware - Runti...23812ERROR nixbot/tests/test_control.py::test_api_attr_and_effects_control - Runti...23813ERROR nixbot/tests/test_orchestrator.py::test_when_changed_ignores_failures_and_follows_a_restart23814ERROR nixbot/tests/test_orchestrator.py::test_pr_worktree_config_cannot_grant_effects23815ERROR nixbot/tests/test_orchestrator.py::test_rerun_effects_runs_effects_again23816ERROR nixbot/tests/test_orchestrator.py::test_rerun_effects_cancels_hung_effect23817ERROR nixbot/tests/test_orchestrator.py::test_cancel_hung_effect - RuntimeErr...23818ERROR nixbot/tests/test_orchestrator.py::test_rerun_single_effect - RuntimeEr...23819ERROR nixbot/tests/test_orchestrator.py::test_recovery_rerun_runs_effects - R...23820ERROR nixbot/tests/test_orchestrator.py::test_unsupported_system_attr_does_not_block_aggregation23821ERROR nixbot/tests/test_orchestrator.py::test_linked_context_reported_on_eval_failure23822ERROR nixbot/tests/test_orchestrator.py::test_eval_failure_settles_streamed_attributes23823ERROR nixbot/tests/test_orchestrator.py::test_effect_rows_roundtrip - Runtime...23824ERROR nixbot/tests/test_orchestrator.py::test_pending_effects_replace_skipped_rows23825ERROR nixbot/tests/test_orchestrator.py::test_effect_items_resume_only_pending23826ERROR nixbot/tests/test_orchestrator.py::test_effect_crash_settles_the_row - ...23827ERROR nixbot/tests/test_orchestrator.py::test_concurrent_effects_use_independent_worktrees23828ERROR nixbot/tests/test_orchestrator.py::test_locked_effect_gets_shared_dedup_key23829ERROR nixbot/tests/test_orchestrator.py::test_effect_item_not_claimable_until_dep_settles23830ERROR nixbot/tests/test_orchestrator.py::test_effect_dep_failure_skips_dependent23831ERROR nixbot/tests/test_orchestrator.py::test_lock_serializes_builds_without_interleaving23832ERROR nixbot/tests/test_orchestrator.py::test_effect_dep_cycle_fails_discovery23833ERROR nixbot/tests/test_orchestrator.py::test_failed_effect_reports_failure_status23834ERROR nixbot/tests/test_orchestrator.py::test_post_process_error_does_not_wedge_build23835ERROR nixbot/tests/test_orchestrator.py::test_unexpected_eval_path_error_settles_build23836ERROR nixbot/tests/test_orchestrator.py::test_reuse_empty_succeeded_build_posts_eval_success23837ERROR nixbot/tests/test_orchestrator.py::test_stale_event_reusing_old_build_does_not_cancel_newer23838ERROR nixbot/tests/test_orchestrator.py::test_reuse_for_default_branch_push_runs_effects23839ERROR nixbot/tests/test_orchestrator.py::test_tag_reusing_deployed_build_delivers_its_own_effects23840ERROR nixbot/tests/test_orchestrator.py::test_tag_attached_to_in_flight_build_delivers_on_success23841ERROR nixbot/tests/test_orchestrator.py::test_restart_of_gated_build_settles_effect_rows23842ERROR nixbot/tests/test_orchestrator.py::test_restart_build_drops_queued_effect_items23843ERROR nixbot/tests/test_orchestrator.py::test_restart_effects_after_pr_attach_keeps_effects_ref23844ERROR nixbot/tests/test_orchestrator.py::test_gated_restart_then_allowed_reuse_deploys23845ERROR nixbot/tests/test_orchestrator.py::test_rerun_single_effect_takes_pending_dependents23846ERROR nixbot/tests/test_orchestrator.py::test_reuse_replays_effect_statuses_to_new_commit23847ERROR nixbot/tests/test_orchestrator.py::test_attach_to_already_terminal_build_replays_status23848ERROR nixbot/tests/test_orchestrator.py::test_cancel_during_eval_resolves_linked_eval_contexts23849ERROR nixbot/tests/test_orchestrator.py::test_effect_log_does_not_collide_with_attribute_log23850ERROR nixbot/tests/test_orchestrator.py::test_post_process_paths_are_forge_scoped23851ERROR nixbot/tests/test_orchestrator.py::test_effects_phase_error_keeps_succeeded_build23852ERROR nixbot/tests/test_orchestrator.py::test_reuse_post_process_error_still_reports_status23853ERROR nixbot/tests/test_orchestrator.py::test_reuse_with_missing_output_still_post_processes23854================= 477 passed, 29 skipped, 364 errors in 39.60s =================