nixbot

builds

failed python3.14-nixbot-tests checks.aarch64-darwin.nixbot-tests · build #439 · 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/h5vr57j91y418fqpmgw2q67hsk5dy4qd-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/1/scratch/d884a20a40d861d2/build/ in /nix/store/2w203r1k39jj1k7y0ywwm3najz2vxh4z-python3.14-nixbot-tests...38patching script interpreter paths in /nix/store/2w203r1k39jj1k7y0ywwm3najz2vxh4z-python3.14-nixbot-tests39stripping (with command strip and flags -S) in /nix/store/2w203r1k39jj1k7y0ywwm3najz2vxh4z-python3.14-nixbot-tests/lib /nix/store/2w203r1k39jj1k7y0ywwm3najz2vxh4z-python3.14-nixbot-tests/bin40checking for references to /private/var/tb/1/scratch/d884a20a40d861d2/build/ in /nix/store/wcvbxlp7w6ll8gcqn3p7l61dm9rhrysd-python3.14-nixbot-tests-dist...41patching script interpreter paths in /nix/store/wcvbxlp7w6ll8gcqn3p7l61dm9rhrysd-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/2w203r1k39jj1k7y0ywwm3najz2vxh4z-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/1/scratch/d884a20a40d861d2/build/nixbot104configfile: pyproject.toml105plugins: asyncio-1.4.0, timeout-2.4.0, xdist-3.8.0, benchmark-5.2.3, anyio-4.14.2106asyncio: mode=Mode.AUTO, debug=False, asyncio_default_fixture_loop_scope=None, asyncio_default_test_loop_scope=function107timeout: 60.0s108timeout method: signal109timeout func_only: False110created: 24/24 workers11124 workers [869 items]112113.......................................s.......s......ss.s.....s...sssss [ 8%]114s....................sss.sssss.........s................................ [ 16%]115........................................................................ [ 24%]116........................................................................ [ 33%]117.........................s.s.ss.....................................s... [ 41%]118...............Loop <_UnixSelectorEventLoop running=False closed=True debug=False> that handles pid 28994 is closed119......................................................... [ 49%]120..........................s....EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE [ 57%]121.EE.E.E.E.EEEEE.EEE.EEEEEEEEEEEEE.EEEEEEEEEEEEE.EEE...EsEEEEEEEEEEEEEEEE [ 66%]122EEEEEE.EEEEEEEE.EEE.EEEEEEEEEEEE.EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE.E. [ 74%]123EEEE.E...E..EEEEEEEEE.EEs.EEEEEEEEEE.EEEEEEEEEEEEEEEE.EE.EEE.EEEEEEEEEEE [ 82%]124EEEEE..EE....E....EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE [ 91%]125EEEEEEEEEEEEEEEEEEE.EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE [ 99%]126EEEEE [100%]127==================================== ERRORS ====================================128_________________ ERROR at setup of test_migrations_idempotent _________________129[gw11] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14130131self = <Coroutine test_migrations_idempotent>132133 def setup(self) -> None:134 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"135 if runner_fixture_id not in self.fixturenames:136 self.fixturenames.append(runner_fixture_id)137 # When loop factories are configured, resolve the loop factory138 # fixture early so that a factory variant change cascades cache139 # invalidation before any async fixture checks its cache.140 hook_caller = self.config.hook.pytest_asyncio_loop_factories141 if hook_caller.get_hookimpls():142 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)143> return super().setup()144 ^^^^^^^^^^^^^^^145146/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 147_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 148/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:926: in pytest_fixture_setup149 return (yield)150 ^^^^^151nixbot/tests/conftest.py:33: in postgres_dsn152 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:153 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^154/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__155 return next(self.gen)156 ^^^^^^^^^^^^^^157_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 158159tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...tch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw11'), _retention_count=3, _retention_policy='all')160dbname = 'db'161162 @contextlib.contextmanager163 def ephemeral_postgres(164 tmp_path_factory: pytest.TempPathFactory, dbname: str165 ) -> Iterator[str]:166 """Throwaway Postgres on a unix socket with migrations applied."""167 datadir = tmp_path_factory.mktemp("pgdata")168 sockdir = tmp_path_factory.mktemp("pgsock")169 subprocess.run( # noqa: S603170 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],171 check=True,172 capture_output=True,173 )174 proc = subprocess.Popen( # noqa: S603175 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],176 stdout=subprocess.DEVNULL,177 stderr=subprocess.DEVNULL,178 )179 try:180 deadline = time.monotonic() + 30181 while (182 subprocess.run( # noqa: S603183 ["pg_isready", "-h", str(sockdir), "-U", "test"],184 check=False,185 capture_output=True,186 ).returncode187 != 0188 ):189 # The socket appears before recovery finishes; createdb would190 # fail with "the database system is starting up".191 if time.monotonic() > deadline:192 msg = "postgres did not start"193> raise RuntimeError(msg)194E RuntimeError: postgres did not start195196nixbot/tests/support.py:319: RuntimeError197___________ ERROR at setup of test_failed_migration_error_not_masked ___________198[gw11] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14199200self = <Coroutine test_failed_migration_error_not_masked>201202 def setup(self) -> None:203 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"204 if runner_fixture_id not in self.fixturenames:205 self.fixturenames.append(runner_fixture_id)206 # When loop factories are configured, resolve the loop factory207 # fixture early so that a factory variant change cascades cache208 # invalidation before any async fixture checks its cache.209 hook_caller = self.config.hook.pytest_asyncio_loop_factories210 if hook_caller.get_hookimpls():211 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)212> return super().setup()213 ^^^^^^^^^^^^^^^214215/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 216_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 217nixbot/tests/conftest.py:33: in postgres_dsn218 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:219 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^220/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__221 return next(self.gen)222 ^^^^^^^^^^^^^^223_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 224225tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...tch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw11'), _retention_count=3, _retention_policy='all')226dbname = 'db'227228 @contextlib.contextmanager229 def ephemeral_postgres(230 tmp_path_factory: pytest.TempPathFactory, dbname: str231 ) -> Iterator[str]:232 """Throwaway Postgres on a unix socket with migrations applied."""233 datadir = tmp_path_factory.mktemp("pgdata")234 sockdir = tmp_path_factory.mktemp("pgsock")235 subprocess.run( # noqa: S603236 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],237 check=True,238 capture_output=True,239 )240 proc = subprocess.Popen( # noqa: S603241 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],242 stdout=subprocess.DEVNULL,243 stderr=subprocess.DEVNULL,244 )245 try:246 deadline = time.monotonic() + 30247 while (248 subprocess.run( # noqa: S603249 ["pg_isready", "-h", str(sockdir), "-U", "test"],250 check=False,251 capture_output=True,252 ).returncode253 != 0254 ):255 # The socket appears before recovery finishes; createdb would256 # fail with "the database system is starting up".257 if time.monotonic() > deadline:258 msg = "postgres did not start"259> raise RuntimeError(msg)260E RuntimeError: postgres did not start261262nixbot/tests/support.py:319: RuntimeError263_______________ ERROR at setup of test_edited_migration_rejected _______________264[gw11] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14265266self = <Coroutine test_edited_migration_rejected>267268 def setup(self) -> None:269 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"270 if runner_fixture_id not in self.fixturenames:271 self.fixturenames.append(runner_fixture_id)272 # When loop factories are configured, resolve the loop factory273 # fixture early so that a factory variant change cascades cache274 # invalidation before any async fixture checks its cache.275 hook_caller = self.config.hook.pytest_asyncio_loop_factories276 if hook_caller.get_hookimpls():277 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)278> return super().setup()279 ^^^^^^^^^^^^^^^280281/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 282_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 283nixbot/tests/conftest.py:33: in postgres_dsn284 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:285 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^286/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__287 return next(self.gen)288 ^^^^^^^^^^^^^^289_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 290291tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...tch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw11'), _retention_count=3, _retention_policy='all')292dbname = 'db'293294 @contextlib.contextmanager295 def ephemeral_postgres(296 tmp_path_factory: pytest.TempPathFactory, dbname: str297 ) -> Iterator[str]:298 """Throwaway Postgres on a unix socket with migrations applied."""299 datadir = tmp_path_factory.mktemp("pgdata")300 sockdir = tmp_path_factory.mktemp("pgsock")301 subprocess.run( # noqa: S603302 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],303 check=True,304 capture_output=True,305 )306 proc = subprocess.Popen( # noqa: S603307 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],308 stdout=subprocess.DEVNULL,309 stderr=subprocess.DEVNULL,310 )311 try:312 deadline = time.monotonic() + 30313 while (314 subprocess.run( # noqa: S603315 ["pg_isready", "-h", str(sockdir), "-U", "test"],316 check=False,317 capture_output=True,318 ).returncode319 != 0320 ):321 # The socket appears before recovery finishes; createdb would322 # fail with "the database system is starting up".323 if time.monotonic() > deadline:324 msg = "postgres did not start"325> raise RuntimeError(msg)326E RuntimeError: postgres did not start327328nixbot/tests/support.py:319: RuntimeError329_______ ERROR at setup of test_catchup_migration_repairs_pre_0033_schema _______330[gw11] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14331332self = <Coroutine test_catchup_migration_repairs_pre_0033_schema>333334 def setup(self) -> None:335 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"336 if runner_fixture_id not in self.fixturenames:337 self.fixturenames.append(runner_fixture_id)338 # When loop factories are configured, resolve the loop factory339 # fixture early so that a factory variant change cascades cache340 # invalidation before any async fixture checks its cache.341 hook_caller = self.config.hook.pytest_asyncio_loop_factories342 if hook_caller.get_hookimpls():343 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)344> return super().setup()345 ^^^^^^^^^^^^^^^346347/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 348_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 349nixbot/tests/conftest.py:33: in postgres_dsn350 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:351 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^352/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__353 return next(self.gen)354 ^^^^^^^^^^^^^^355_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 356357tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...tch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw11'), _retention_count=3, _retention_policy='all')358dbname = 'db'359360 @contextlib.contextmanager361 def ephemeral_postgres(362 tmp_path_factory: pytest.TempPathFactory, dbname: str363 ) -> Iterator[str]:364 """Throwaway Postgres on a unix socket with migrations applied."""365 datadir = tmp_path_factory.mktemp("pgdata")366 sockdir = tmp_path_factory.mktemp("pgsock")367 subprocess.run( # noqa: S603368 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],369 check=True,370 capture_output=True,371 )372 proc = subprocess.Popen( # noqa: S603373 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],374 stdout=subprocess.DEVNULL,375 stderr=subprocess.DEVNULL,376 )377 try:378 deadline = time.monotonic() + 30379 while (380 subprocess.run( # noqa: S603381 ["pg_isready", "-h", str(sockdir), "-U", "test"],382 check=False,383 capture_output=True,384 ).returncode385 != 0386 ):387 # The socket appears before recovery finishes; createdb would388 # fail with "the database system is starting up".389 if time.monotonic() > deadline:390 msg = "postgres did not start"391> raise RuntimeError(msg)392E RuntimeError: postgres did not start393394nixbot/tests/support.py:319: RuntimeError395_____ ERROR at setup of test_huge_attr_name_does_not_break_notify_trigger ______396[gw11] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14397398self = <Coroutine test_huge_attr_name_does_not_break_notify_trigger>399400 def setup(self) -> None:401 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"402 if runner_fixture_id not in self.fixturenames:403 self.fixturenames.append(runner_fixture_id)404 # When loop factories are configured, resolve the loop factory405 # fixture early so that a factory variant change cascades cache406 # invalidation before any async fixture checks its cache.407 hook_caller = self.config.hook.pytest_asyncio_loop_factories408 if hook_caller.get_hookimpls():409 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)410> return super().setup()411 ^^^^^^^^^^^^^^^412413/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 414_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 415nixbot/tests/conftest.py:33: in postgres_dsn416 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:417 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^418/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__419 return next(self.gen)420 ^^^^^^^^^^^^^^421_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 422423tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...tch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw11'), _retention_count=3, _retention_policy='all')424dbname = 'db'425426 @contextlib.contextmanager427 def ephemeral_postgres(428 tmp_path_factory: pytest.TempPathFactory, dbname: str429 ) -> Iterator[str]:430 """Throwaway Postgres on a unix socket with migrations applied."""431 datadir = tmp_path_factory.mktemp("pgdata")432 sockdir = tmp_path_factory.mktemp("pgsock")433 subprocess.run( # noqa: S603434 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],435 check=True,436 capture_output=True,437 )438 proc = subprocess.Popen( # noqa: S603439 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],440 stdout=subprocess.DEVNULL,441 stderr=subprocess.DEVNULL,442 )443 try:444 deadline = time.monotonic() + 30445 while (446 subprocess.run( # noqa: S603447 ["pg_isready", "-h", str(sockdir), "-U", "test"],448 check=False,449 capture_output=True,450 ).returncode451 != 0452 ):453 # The socket appears before recovery finishes; createdb would454 # fail with "the database system is starting up".455 if time.monotonic() > deadline:456 msg = "postgres did not start"457> raise RuntimeError(msg)458E RuntimeError: postgres did not start459460nixbot/tests/support.py:319: RuntimeError461__________________ ERROR at setup of test_schema_constraints ___________________462[gw11] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14463464self = <Coroutine test_schema_constraints>465466 def setup(self) -> None:467 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"468 if runner_fixture_id not in self.fixturenames:469 self.fixturenames.append(runner_fixture_id)470 # When loop factories are configured, resolve the loop factory471 # fixture early so that a factory variant change cascades cache472 # invalidation before any async fixture checks its cache.473 hook_caller = self.config.hook.pytest_asyncio_loop_factories474 if hook_caller.get_hookimpls():475 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)476> return super().setup()477 ^^^^^^^^^^^^^^^478479/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 480_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 481nixbot/tests/conftest.py:33: in postgres_dsn482 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:483 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^484/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__485 return next(self.gen)486 ^^^^^^^^^^^^^^487_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 488489tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...tch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw11'), _retention_count=3, _retention_policy='all')490dbname = 'db'491492 @contextlib.contextmanager493 def ephemeral_postgres(494 tmp_path_factory: pytest.TempPathFactory, dbname: str495 ) -> Iterator[str]:496 """Throwaway Postgres on a unix socket with migrations applied."""497 datadir = tmp_path_factory.mktemp("pgdata")498 sockdir = tmp_path_factory.mktemp("pgsock")499 subprocess.run( # noqa: S603500 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],501 check=True,502 capture_output=True,503 )504 proc = subprocess.Popen( # noqa: S603505 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],506 stdout=subprocess.DEVNULL,507 stderr=subprocess.DEVNULL,508 )509 try:510 deadline = time.monotonic() + 30511 while (512 subprocess.run( # noqa: S603513 ["pg_isready", "-h", str(sockdir), "-U", "test"],514 check=False,515 capture_output=True,516 ).returncode517 != 0518 ):519 # The socket appears before recovery finishes; createdb would520 # fail with "the database system is starting up".521 if time.monotonic() > deadline:522 msg = "postgres did not start"523> raise RuntimeError(msg)524E RuntimeError: postgres did not start525526nixbot/tests/support.py:319: RuntimeError527______________ ERROR at setup of test_check_run_store_round_trip _______________528[gw11] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14529530self = <Coroutine test_check_run_store_round_trip>531532 def setup(self) -> None:533 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"534 if runner_fixture_id not in self.fixturenames:535 self.fixturenames.append(runner_fixture_id)536 # When loop factories are configured, resolve the loop factory537 # fixture early so that a factory variant change cascades cache538 # invalidation before any async fixture checks its cache.539 hook_caller = self.config.hook.pytest_asyncio_loop_factories540 if hook_caller.get_hookimpls():541 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)542> return super().setup()543 ^^^^^^^^^^^^^^^544545/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 546_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 547nixbot/tests/conftest.py:33: in postgres_dsn548 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:549 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^550/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__551 return next(self.gen)552 ^^^^^^^^^^^^^^553_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 554555tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...tch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw11'), _retention_count=3, _retention_policy='all')556dbname = 'db'557558 @contextlib.contextmanager559 def ephemeral_postgres(560 tmp_path_factory: pytest.TempPathFactory, dbname: str561 ) -> Iterator[str]:562 """Throwaway Postgres on a unix socket with migrations applied."""563 datadir = tmp_path_factory.mktemp("pgdata")564 sockdir = tmp_path_factory.mktemp("pgsock")565 subprocess.run( # noqa: S603566 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],567 check=True,568 capture_output=True,569 )570 proc = subprocess.Popen( # noqa: S603571 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],572 stdout=subprocess.DEVNULL,573 stderr=subprocess.DEVNULL,574 )575 try:576 deadline = time.monotonic() + 30577 while (578 subprocess.run( # noqa: S603579 ["pg_isready", "-h", str(sockdir), "-U", "test"],580 check=False,581 capture_output=True,582 ).returncode583 != 0584 ):585 # The socket appears before recovery finishes; createdb would586 # fail with "the database system is starting up".587 if time.monotonic() > deadline:588 msg = "postgres did not start"589> raise RuntimeError(msg)590E RuntimeError: postgres did not start591592nixbot/tests/support.py:319: RuntimeError593_____________ ERROR at setup of test_failed_status_store_component _____________594[gw11] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14595596self = <Coroutine test_failed_status_store_component>597598 def setup(self) -> None:599 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"600 if runner_fixture_id not in self.fixturenames:601 self.fixturenames.append(runner_fixture_id)602 # When loop factories are configured, resolve the loop factory603 # fixture early so that a factory variant change cascades cache604 # invalidation before any async fixture checks its cache.605 hook_caller = self.config.hook.pytest_asyncio_loop_factories606 if hook_caller.get_hookimpls():607 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)608> return super().setup()609 ^^^^^^^^^^^^^^^610611/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 612_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 613nixbot/tests/conftest.py:33: in postgres_dsn614 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:615 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^616/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__617 return next(self.gen)618 ^^^^^^^^^^^^^^619_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 620621tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...tch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw11'), _retention_count=3, _retention_policy='all')622dbname = 'db'623624 @contextlib.contextmanager625 def ephemeral_postgres(626 tmp_path_factory: pytest.TempPathFactory, dbname: str627 ) -> Iterator[str]:628 """Throwaway Postgres on a unix socket with migrations applied."""629 datadir = tmp_path_factory.mktemp("pgdata")630 sockdir = tmp_path_factory.mktemp("pgsock")631 subprocess.run( # noqa: S603632 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],633 check=True,634 capture_output=True,635 )636 proc = subprocess.Popen( # noqa: S603637 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],638 stdout=subprocess.DEVNULL,639 stderr=subprocess.DEVNULL,640 )641 try:642 deadline = time.monotonic() + 30643 while (644 subprocess.run( # noqa: S603645 ["pg_isready", "-h", str(sockdir), "-U", "test"],646 check=False,647 capture_output=True,648 ).returncode649 != 0650 ):651 # The socket appears before recovery finishes; createdb would652 # fail with "the database system is starting up".653 if time.monotonic() > deadline:654 msg = "postgres did not start"655> raise RuntimeError(msg)656E RuntimeError: postgres did not start657658nixbot/tests/support.py:319: RuntimeError659_____________ ERROR at setup of test_failed_build_cache_component ______________660[gw11] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14661662self = <Coroutine test_failed_build_cache_component>663664 def setup(self) -> None:665 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"666 if runner_fixture_id not in self.fixturenames:667 self.fixturenames.append(runner_fixture_id)668 # When loop factories are configured, resolve the loop factory669 # fixture early so that a factory variant change cascades cache670 # invalidation before any async fixture checks its cache.671 hook_caller = self.config.hook.pytest_asyncio_loop_factories672 if hook_caller.get_hookimpls():673 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)674> return super().setup()675 ^^^^^^^^^^^^^^^676677/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 678_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 679nixbot/tests/conftest.py:33: in postgres_dsn680 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:681 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^682/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__683 return next(self.gen)684 ^^^^^^^^^^^^^^685_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 686687tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...tch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw11'), _retention_count=3, _retention_policy='all')688dbname = 'db'689690 @contextlib.contextmanager691 def ephemeral_postgres(692 tmp_path_factory: pytest.TempPathFactory, dbname: str693 ) -> Iterator[str]:694 """Throwaway Postgres on a unix socket with migrations applied."""695 datadir = tmp_path_factory.mktemp("pgdata")696 sockdir = tmp_path_factory.mktemp("pgsock")697 subprocess.run( # noqa: S603698 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],699 check=True,700 capture_output=True,701 )702 proc = subprocess.Popen( # noqa: S603703 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],704 stdout=subprocess.DEVNULL,705 stderr=subprocess.DEVNULL,706 )707 try:708 deadline = time.monotonic() + 30709 while (710 subprocess.run( # noqa: S603711 ["pg_isready", "-h", str(sockdir), "-U", "test"],712 check=False,713 capture_output=True,714 ).returncode715 != 0716 ):717 # The socket appears before recovery finishes; createdb would718 # fail with "the database system is starting up".719 if time.monotonic() > deadline:720 msg = "postgres did not start"721> raise RuntimeError(msg)722E RuntimeError: postgres did not start723724nixbot/tests/support.py:319: RuntimeError725_____ ERROR at setup of test_get_or_create_build_concurrent_no_duplicates ______726[gw11] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14727728self = <Coroutine test_get_or_create_build_concurrent_no_duplicates>729730 def setup(self) -> None:731 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"732 if runner_fixture_id not in self.fixturenames:733 self.fixturenames.append(runner_fixture_id)734 # When loop factories are configured, resolve the loop factory735 # fixture early so that a factory variant change cascades cache736 # invalidation before any async fixture checks its cache.737 hook_caller = self.config.hook.pytest_asyncio_loop_factories738 if hook_caller.get_hookimpls():739 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)740> return super().setup()741 ^^^^^^^^^^^^^^^742743/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 744_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 745nixbot/tests/conftest.py:33: in postgres_dsn746 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:747 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^748/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__749 return next(self.gen)750 ^^^^^^^^^^^^^^751_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 752753tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...tch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw11'), _retention_count=3, _retention_policy='all')754dbname = 'db'755756 @contextlib.contextmanager757 def ephemeral_postgres(758 tmp_path_factory: pytest.TempPathFactory, dbname: str759 ) -> Iterator[str]:760 """Throwaway Postgres on a unix socket with migrations applied."""761 datadir = tmp_path_factory.mktemp("pgdata")762 sockdir = tmp_path_factory.mktemp("pgsock")763 subprocess.run( # noqa: S603764 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],765 check=True,766 capture_output=True,767 )768 proc = subprocess.Popen( # noqa: S603769 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],770 stdout=subprocess.DEVNULL,771 stderr=subprocess.DEVNULL,772 )773 try:774 deadline = time.monotonic() + 30775 while (776 subprocess.run( # noqa: S603777 ["pg_isready", "-h", str(sockdir), "-U", "test"],778 check=False,779 capture_output=True,780 ).returncode781 != 0782 ):783 # The socket appears before recovery finishes; createdb would784 # fail with "the database system is starting up".785 if time.monotonic() > deadline:786 msg = "postgres did not start"787> raise RuntimeError(msg)788E RuntimeError: postgres did not start789790nixbot/tests/support.py:319: RuntimeError791_______________ ERROR at setup of test_commit_eval_result_atomic _______________792[gw11] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14793794self = <Coroutine test_commit_eval_result_atomic>795796 def setup(self) -> None:797 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"798 if runner_fixture_id not in self.fixturenames:799 self.fixturenames.append(runner_fixture_id)800 # When loop factories are configured, resolve the loop factory801 # fixture early so that a factory variant change cascades cache802 # invalidation before any async fixture checks its cache.803 hook_caller = self.config.hook.pytest_asyncio_loop_factories804 if hook_caller.get_hookimpls():805 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)806> return super().setup()807 ^^^^^^^^^^^^^^^808809/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 810_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 811nixbot/tests/conftest.py:33: in postgres_dsn812 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:813 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^814/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__815 return next(self.gen)816 ^^^^^^^^^^^^^^817_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 818819tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...tch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw11'), _retention_count=3, _retention_policy='all')820dbname = 'db'821822 @contextlib.contextmanager823 def ephemeral_postgres(824 tmp_path_factory: pytest.TempPathFactory, dbname: str825 ) -> Iterator[str]:826 """Throwaway Postgres on a unix socket with migrations applied."""827 datadir = tmp_path_factory.mktemp("pgdata")828 sockdir = tmp_path_factory.mktemp("pgsock")829 subprocess.run( # noqa: S603830 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],831 check=True,832 capture_output=True,833 )834 proc = subprocess.Popen( # noqa: S603835 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],836 stdout=subprocess.DEVNULL,837 stderr=subprocess.DEVNULL,838 )839 try:840 deadline = time.monotonic() + 30841 while (842 subprocess.run( # noqa: S603843 ["pg_isready", "-h", str(sockdir), "-U", "test"],844 check=False,845 capture_output=True,846 ).returncode847 != 0848 ):849 # The socket appears before recovery finishes; createdb would850 # fail with "the database system is starting up".851 if time.monotonic() > deadline:852 msg = "postgres did not start"853> raise RuntimeError(msg)854E RuntimeError: postgres did not start855856nixbot/tests/support.py:319: RuntimeError857______________ ERROR at setup of test_cancelled_build_not_reused _______________858[gw11] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14859860self = <Coroutine test_cancelled_build_not_reused>861862 def setup(self) -> None:863 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"864 if runner_fixture_id not in self.fixturenames:865 self.fixturenames.append(runner_fixture_id)866 # When loop factories are configured, resolve the loop factory867 # fixture early so that a factory variant change cascades cache868 # invalidation before any async fixture checks its cache.869 hook_caller = self.config.hook.pytest_asyncio_loop_factories870 if hook_caller.get_hookimpls():871 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)872> return super().setup()873 ^^^^^^^^^^^^^^^874875/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 876_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 877nixbot/tests/conftest.py:33: in postgres_dsn878 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:879 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^880/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__881 return next(self.gen)882 ^^^^^^^^^^^^^^883_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 884885tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...tch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw11'), _retention_count=3, _retention_policy='all')886dbname = 'db'887888 @contextlib.contextmanager889 def ephemeral_postgres(890 tmp_path_factory: pytest.TempPathFactory, dbname: str891 ) -> Iterator[str]:892 """Throwaway Postgres on a unix socket with migrations applied."""893 datadir = tmp_path_factory.mktemp("pgdata")894 sockdir = tmp_path_factory.mktemp("pgsock")895 subprocess.run( # noqa: S603896 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],897 check=True,898 capture_output=True,899 )900 proc = subprocess.Popen( # noqa: S603901 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],902 stdout=subprocess.DEVNULL,903 stderr=subprocess.DEVNULL,904 )905 try:906 deadline = time.monotonic() + 30907 while (908 subprocess.run( # noqa: S603909 ["pg_isready", "-h", str(sockdir), "-U", "test"],910 check=False,911 capture_output=True,912 ).returncode913 != 0914 ):915 # The socket appears before recovery finishes; createdb would916 # fail with "the database system is starting up".917 if time.monotonic() > deadline:918 msg = "postgres did not start"919> raise RuntimeError(msg)920E RuntimeError: postgres did not start921922nixbot/tests/support.py:319: RuntimeError923_______________ ERROR at setup of test_reuse_backfills_pr_fields _______________924[gw11] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14925926self = <Coroutine test_reuse_backfills_pr_fields>927928 def setup(self) -> None:929 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"930 if runner_fixture_id not in self.fixturenames:931 self.fixturenames.append(runner_fixture_id)932 # When loop factories are configured, resolve the loop factory933 # fixture early so that a factory variant change cascades cache934 # invalidation before any async fixture checks its cache.935 hook_caller = self.config.hook.pytest_asyncio_loop_factories936 if hook_caller.get_hookimpls():937 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)938> return super().setup()939 ^^^^^^^^^^^^^^^940941/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 942_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 943nixbot/tests/conftest.py:33: in postgres_dsn944 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:945 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^946/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__947 return next(self.gen)948 ^^^^^^^^^^^^^^949_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 950951tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...tch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw11'), _retention_count=3, _retention_policy='all')952dbname = 'db'953954 @contextlib.contextmanager955 def ephemeral_postgres(956 tmp_path_factory: pytest.TempPathFactory, dbname: str957 ) -> Iterator[str]:958 """Throwaway Postgres on a unix socket with migrations applied."""959 datadir = tmp_path_factory.mktemp("pgdata")960 sockdir = tmp_path_factory.mktemp("pgsock")961 subprocess.run( # noqa: S603962 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],963 check=True,964 capture_output=True,965 )966 proc = subprocess.Popen( # noqa: S603967 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],968 stdout=subprocess.DEVNULL,969 stderr=subprocess.DEVNULL,970 )971 try:972 deadline = time.monotonic() + 30973 while (974 subprocess.run( # noqa: S603975 ["pg_isready", "-h", str(sockdir), "-U", "test"],976 check=False,977 capture_output=True,978 ).returncode979 != 0980 ):981 # The socket appears before recovery finishes; createdb would982 # fail with "the database system is starting up".983 if time.monotonic() > deadline:984 msg = "postgres did not start"985> raise RuntimeError(msg)986E RuntimeError: postgres did not start987988nixbot/tests/support.py:319: RuntimeError989_____ ERROR at setup of test_reuse_by_other_pr_clears_both_identity_fields _____990[gw11] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.14991992self = <Coroutine test_reuse_by_other_pr_clears_both_identity_fields>993994 def setup(self) -> None:995 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"996 if runner_fixture_id not in self.fixturenames:997 self.fixturenames.append(runner_fixture_id)998 # When loop factories are configured, resolve the loop factory999 # fixture early so that a factory variant change cascades cache1000 # invalidation before any async fixture checks its cache.1001 hook_caller = self.config.hook.pytest_asyncio_loop_factories1002 if hook_caller.get_hookimpls():1003 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1004> return super().setup()1005 ^^^^^^^^^^^^^^^10061007/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1008_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1009nixbot/tests/conftest.py:33: in postgres_dsn1010 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1011 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1012/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1013 return next(self.gen)1014 ^^^^^^^^^^^^^^1015_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10161017tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...tch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw11'), _retention_count=3, _retention_policy='all')1018dbname = 'db'10191020 @contextlib.contextmanager1021 def ephemeral_postgres(1022 tmp_path_factory: pytest.TempPathFactory, dbname: str1023 ) -> Iterator[str]:1024 """Throwaway Postgres on a unix socket with migrations applied."""1025 datadir = tmp_path_factory.mktemp("pgdata")1026 sockdir = tmp_path_factory.mktemp("pgsock")1027 subprocess.run( # noqa: S6031028 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1029 check=True,1030 capture_output=True,1031 )1032 proc = subprocess.Popen( # noqa: S6031033 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1034 stdout=subprocess.DEVNULL,1035 stderr=subprocess.DEVNULL,1036 )1037 try:1038 deadline = time.monotonic() + 301039 while (1040 subprocess.run( # noqa: S6031041 ["pg_isready", "-h", str(sockdir), "-U", "test"],1042 check=False,1043 capture_output=True,1044 ).returncode1045 != 01046 ):1047 # The socket appears before recovery finishes; createdb would1048 # fail with "the database system is starting up".1049 if time.monotonic() > deadline:1050 msg = "postgres did not start"1051> raise RuntimeError(msg)1052E RuntimeError: postgres did not start10531054nixbot/tests/support.py:319: RuntimeError1055________ ERROR at setup of test_branch_push_takes_over_reused_pr_build _________1056[gw11] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1410571058self = <Coroutine test_branch_push_takes_over_reused_pr_build>10591060 def setup(self) -> None:1061 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1062 if runner_fixture_id not in self.fixturenames:1063 self.fixturenames.append(runner_fixture_id)1064 # When loop factories are configured, resolve the loop factory1065 # fixture early so that a factory variant change cascades cache1066 # invalidation before any async fixture checks its cache.1067 hook_caller = self.config.hook.pytest_asyncio_loop_factories1068 if hook_caller.get_hookimpls():1069 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1070> return super().setup()1071 ^^^^^^^^^^^^^^^10721073/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1074_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1075nixbot/tests/conftest.py:33: in postgres_dsn1076 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1077 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1078/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1079 return next(self.gen)1080 ^^^^^^^^^^^^^^1081_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10821083tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...tch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw11'), _retention_count=3, _retention_policy='all')1084dbname = 'db'10851086 @contextlib.contextmanager1087 def ephemeral_postgres(1088 tmp_path_factory: pytest.TempPathFactory, dbname: str1089 ) -> Iterator[str]:1090 """Throwaway Postgres on a unix socket with migrations applied."""1091 datadir = tmp_path_factory.mktemp("pgdata")1092 sockdir = tmp_path_factory.mktemp("pgsock")1093 subprocess.run( # noqa: S6031094 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1095 check=True,1096 capture_output=True,1097 )1098 proc = subprocess.Popen( # noqa: S6031099 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1100 stdout=subprocess.DEVNULL,1101 stderr=subprocess.DEVNULL,1102 )1103 try:1104 deadline = time.monotonic() + 301105 while (1106 subprocess.run( # noqa: S6031107 ["pg_isready", "-h", str(sockdir), "-U", "test"],1108 check=False,1109 capture_output=True,1110 ).returncode1111 != 01112 ):1113 # The socket appears before recovery finishes; createdb would1114 # fail with "the database system is starting up".1115 if time.monotonic() > deadline:1116 msg = "postgres did not start"1117> raise RuntimeError(msg)1118E RuntimeError: postgres did not start11191120nixbot/tests/support.py:319: RuntimeError1121_________ ERROR at setup of test_pr_does_not_capture_branch_push_build _________1122[gw11] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1411231124self = <Coroutine test_pr_does_not_capture_branch_push_build>11251126 def setup(self) -> None:1127 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1128 if runner_fixture_id not in self.fixturenames:1129 self.fixturenames.append(runner_fixture_id)1130 # When loop factories are configured, resolve the loop factory1131 # fixture early so that a factory variant change cascades cache1132 # invalidation before any async fixture checks its cache.1133 hook_caller = self.config.hook.pytest_asyncio_loop_factories1134 if hook_caller.get_hookimpls():1135 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1136> return super().setup()1137 ^^^^^^^^^^^^^^^11381139/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1140_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1141nixbot/tests/conftest.py:33: in postgres_dsn1142 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1143 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1144/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1145 return next(self.gen)1146 ^^^^^^^^^^^^^^1147_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 11481149tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...tch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw11'), _retention_count=3, _retention_policy='all')1150dbname = 'db'11511152 @contextlib.contextmanager1153 def ephemeral_postgres(1154 tmp_path_factory: pytest.TempPathFactory, dbname: str1155 ) -> Iterator[str]:1156 """Throwaway Postgres on a unix socket with migrations applied."""1157 datadir = tmp_path_factory.mktemp("pgdata")1158 sockdir = tmp_path_factory.mktemp("pgsock")1159 subprocess.run( # noqa: S6031160 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1161 check=True,1162 capture_output=True,1163 )1164 proc = subprocess.Popen( # noqa: S6031165 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1166 stdout=subprocess.DEVNULL,1167 stderr=subprocess.DEVNULL,1168 )1169 try:1170 deadline = time.monotonic() + 301171 while (1172 subprocess.run( # noqa: S6031173 ["pg_isready", "-h", str(sockdir), "-U", "test"],1174 check=False,1175 capture_output=True,1176 ).returncode1177 != 01178 ):1179 # The socket appears before recovery finishes; createdb would1180 # fail with "the database system is starting up".1181 if time.monotonic() > deadline:1182 msg = "postgres did not start"1183> raise RuntimeError(msg)1184E RuntimeError: postgres did not start11851186nixbot/tests/support.py:319: RuntimeError1187_______ ERROR at setup of test_complete_attribute_preserves_eval_outputs _______1188[gw11] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1411891190self = <Coroutine test_complete_attribute_preserves_eval_outputs>11911192 def setup(self) -> None:1193 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1194 if runner_fixture_id not in self.fixturenames:1195 self.fixturenames.append(runner_fixture_id)1196 # When loop factories are configured, resolve the loop factory1197 # fixture early so that a factory variant change cascades cache1198 # invalidation before any async fixture checks its cache.1199 hook_caller = self.config.hook.pytest_asyncio_loop_factories1200 if hook_caller.get_hookimpls():1201 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1202> return super().setup()1203 ^^^^^^^^^^^^^^^12041205/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1206_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1207nixbot/tests/conftest.py:33: in postgres_dsn1208 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1209 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1210/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1211 return next(self.gen)1212 ^^^^^^^^^^^^^^1213_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 12141215tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...tch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw11'), _retention_count=3, _retention_policy='all')1216dbname = 'db'12171218 @contextlib.contextmanager1219 def ephemeral_postgres(1220 tmp_path_factory: pytest.TempPathFactory, dbname: str1221 ) -> Iterator[str]:1222 """Throwaway Postgres on a unix socket with migrations applied."""1223 datadir = tmp_path_factory.mktemp("pgdata")1224 sockdir = tmp_path_factory.mktemp("pgsock")1225 subprocess.run( # noqa: S6031226 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1227 check=True,1228 capture_output=True,1229 )1230 proc = subprocess.Popen( # noqa: S6031231 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1232 stdout=subprocess.DEVNULL,1233 stderr=subprocess.DEVNULL,1234 )1235 try:1236 deadline = time.monotonic() + 301237 while (1238 subprocess.run( # noqa: S6031239 ["pg_isready", "-h", str(sockdir), "-U", "test"],1240 check=False,1241 capture_output=True,1242 ).returncode1243 != 01244 ):1245 # The socket appears before recovery finishes; createdb would1246 # fail with "the database system is starting up".1247 if time.monotonic() > deadline:1248 msg = "postgres did not start"1249> raise RuntimeError(msg)1250E RuntimeError: postgres did not start12511252nixbot/tests/support.py:319: RuntimeError1253____ ERROR at setup of test_complete_attribute_marks_substituted_as_cached _____1254[gw11] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1412551256self = <Coroutine test_complete_attribute_marks_substituted_as_cached>12571258 def setup(self) -> None:1259 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1260 if runner_fixture_id not in self.fixturenames:1261 self.fixturenames.append(runner_fixture_id)1262 # When loop factories are configured, resolve the loop factory1263 # fixture early so that a factory variant change cascades cache1264 # invalidation before any async fixture checks its cache.1265 hook_caller = self.config.hook.pytest_asyncio_loop_factories1266 if hook_caller.get_hookimpls():1267 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1268> return super().setup()1269 ^^^^^^^^^^^^^^^12701271/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1272_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1273nixbot/tests/conftest.py:33: in postgres_dsn1274 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1275 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1276/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1277 return next(self.gen)1278 ^^^^^^^^^^^^^^1279_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 12801281tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...tch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw11'), _retention_count=3, _retention_policy='all')1282dbname = 'db'12831284 @contextlib.contextmanager1285 def ephemeral_postgres(1286 tmp_path_factory: pytest.TempPathFactory, dbname: str1287 ) -> Iterator[str]:1288 """Throwaway Postgres on a unix socket with migrations applied."""1289 datadir = tmp_path_factory.mktemp("pgdata")1290 sockdir = tmp_path_factory.mktemp("pgsock")1291 subprocess.run( # noqa: S6031292 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1293 check=True,1294 capture_output=True,1295 )1296 proc = subprocess.Popen( # noqa: S6031297 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1298 stdout=subprocess.DEVNULL,1299 stderr=subprocess.DEVNULL,1300 )1301 try:1302 deadline = time.monotonic() + 301303 while (1304 subprocess.run( # noqa: S6031305 ["pg_isready", "-h", str(sockdir), "-U", "test"],1306 check=False,1307 capture_output=True,1308 ).returncode1309 != 01310 ):1311 # The socket appears before recovery finishes; createdb would1312 # fail with "the database system is starting up".1313 if time.monotonic() > deadline:1314 msg = "postgres did not start"1315> raise RuntimeError(msg)1316E RuntimeError: postgres did not start13171318nixbot/tests/support.py:319: RuntimeError1319_______ ERROR at setup of test_complete_attribute_replaces_log_metadata ________1320[gw11] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1413211322self = <Coroutine test_complete_attribute_replaces_log_metadata>13231324 def setup(self) -> None:1325 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1326 if runner_fixture_id not in self.fixturenames:1327 self.fixturenames.append(runner_fixture_id)1328 # When loop factories are configured, resolve the loop factory1329 # fixture early so that a factory variant change cascades cache1330 # invalidation before any async fixture checks its cache.1331 hook_caller = self.config.hook.pytest_asyncio_loop_factories1332 if hook_caller.get_hookimpls():1333 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1334> return super().setup()1335 ^^^^^^^^^^^^^^^13361337/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1338_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1339nixbot/tests/conftest.py:33: in postgres_dsn1340 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1341 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1342/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1343 return next(self.gen)1344 ^^^^^^^^^^^^^^1345_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 13461347tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...tch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw11'), _retention_count=3, _retention_policy='all')1348dbname = 'db'13491350 @contextlib.contextmanager1351 def ephemeral_postgres(1352 tmp_path_factory: pytest.TempPathFactory, dbname: str1353 ) -> Iterator[str]:1354 """Throwaway Postgres on a unix socket with migrations applied."""1355 datadir = tmp_path_factory.mktemp("pgdata")1356 sockdir = tmp_path_factory.mktemp("pgsock")1357 subprocess.run( # noqa: S6031358 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1359 check=True,1360 capture_output=True,1361 )1362 proc = subprocess.Popen( # noqa: S6031363 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1364 stdout=subprocess.DEVNULL,1365 stderr=subprocess.DEVNULL,1366 )1367 try:1368 deadline = time.monotonic() + 301369 while (1370 subprocess.run( # noqa: S6031371 ["pg_isready", "-h", str(sockdir), "-U", "test"],1372 check=False,1373 capture_output=True,1374 ).returncode1375 != 01376 ):1377 # The socket appears before recovery finishes; createdb would1378 # fail with "the database system is starting up".1379 if time.monotonic() > deadline:1380 msg = "postgres did not start"1381> raise RuntimeError(msg)1382E RuntimeError: postgres did not start13831384nixbot/tests/support.py:319: RuntimeError1385_ ERROR at setup of test_record_attributes_persists_pending_rows_with_outputs __1386[gw11] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1413871388self = <Coroutine test_record_attributes_persists_pending_rows_with_outputs>13891390 def setup(self) -> None:1391 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1392 if runner_fixture_id not in self.fixturenames:1393 self.fixturenames.append(runner_fixture_id)1394 # When loop factories are configured, resolve the loop factory1395 # fixture early so that a factory variant change cascades cache1396 # invalidation before any async fixture checks its cache.1397 hook_caller = self.config.hook.pytest_asyncio_loop_factories1398 if hook_caller.get_hookimpls():1399 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1400> return super().setup()1401 ^^^^^^^^^^^^^^^14021403/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1404_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1405nixbot/tests/conftest.py:33: in postgres_dsn1406 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1407 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1408/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1409 return next(self.gen)1410 ^^^^^^^^^^^^^^1411_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 14121413tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...tch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw11'), _retention_count=3, _retention_policy='all')1414dbname = 'db'14151416 @contextlib.contextmanager1417 def ephemeral_postgres(1418 tmp_path_factory: pytest.TempPathFactory, dbname: str1419 ) -> Iterator[str]:1420 """Throwaway Postgres on a unix socket with migrations applied."""1421 datadir = tmp_path_factory.mktemp("pgdata")1422 sockdir = tmp_path_factory.mktemp("pgsock")1423 subprocess.run( # noqa: S6031424 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1425 check=True,1426 capture_output=True,1427 )1428 proc = subprocess.Popen( # noqa: S6031429 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1430 stdout=subprocess.DEVNULL,1431 stderr=subprocess.DEVNULL,1432 )1433 try:1434 deadline = time.monotonic() + 301435 while (1436 subprocess.run( # noqa: S6031437 ["pg_isready", "-h", str(sockdir), "-U", "test"],1438 check=False,1439 capture_output=True,1440 ).returncode1441 != 01442 ):1443 # The socket appears before recovery finishes; createdb would1444 # fail with "the database system is starting up".1445 if time.monotonic() > deadline:1446 msg = "postgres did not start"1447> raise RuntimeError(msg)1448E RuntimeError: postgres did not start14491450nixbot/tests/support.py:319: RuntimeError1451_ ERROR at setup of test_mark_attribute_building_does_not_resurrect_cancelled_rows _1452[gw11] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1414531454self = <Coroutine test_mark_attribute_building_does_not_resurrect_cancelled_rows>14551456 def setup(self) -> None:1457 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1458 if runner_fixture_id not in self.fixturenames:1459 self.fixturenames.append(runner_fixture_id)1460 # When loop factories are configured, resolve the loop factory1461 # fixture early so that a factory variant change cascades cache1462 # invalidation before any async fixture checks its cache.1463 hook_caller = self.config.hook.pytest_asyncio_loop_factories1464 if hook_caller.get_hookimpls():1465 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1466> return super().setup()1467 ^^^^^^^^^^^^^^^14681469/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1470_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1471nixbot/tests/conftest.py:33: in postgres_dsn1472 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1473 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1474/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1475 return next(self.gen)1476 ^^^^^^^^^^^^^^1477_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 14781479tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...tch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw11'), _retention_count=3, _retention_policy='all')1480dbname = 'db'14811482 @contextlib.contextmanager1483 def ephemeral_postgres(1484 tmp_path_factory: pytest.TempPathFactory, dbname: str1485 ) -> Iterator[str]:1486 """Throwaway Postgres on a unix socket with migrations applied."""1487 datadir = tmp_path_factory.mktemp("pgdata")1488 sockdir = tmp_path_factory.mktemp("pgsock")1489 subprocess.run( # noqa: S6031490 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1491 check=True,1492 capture_output=True,1493 )1494 proc = subprocess.Popen( # noqa: S6031495 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1496 stdout=subprocess.DEVNULL,1497 stderr=subprocess.DEVNULL,1498 )1499 try:1500 deadline = time.monotonic() + 301501 while (1502 subprocess.run( # noqa: S6031503 ["pg_isready", "-h", str(sockdir), "-U", "test"],1504 check=False,1505 capture_output=True,1506 ).returncode1507 != 01508 ):1509 # The socket appears before recovery finishes; createdb would1510 # fail with "the database system is starting up".1511 if time.monotonic() > deadline:1512 msg = "postgres did not start"1513> raise RuntimeError(msg)1514E RuntimeError: postgres did not start15151516nixbot/tests/support.py:319: RuntimeError1517__ ERROR at setup of test_mark_attribute_building_sets_status_and_started_at ___1518[gw11] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1415191520self = <Coroutine test_mark_attribute_building_sets_status_and_started_at>15211522 def setup(self) -> None:1523 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1524 if runner_fixture_id not in self.fixturenames:1525 self.fixturenames.append(runner_fixture_id)1526 # When loop factories are configured, resolve the loop factory1527 # fixture early so that a factory variant change cascades cache1528 # invalidation before any async fixture checks its cache.1529 hook_caller = self.config.hook.pytest_asyncio_loop_factories1530 if hook_caller.get_hookimpls():1531 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1532> return super().setup()1533 ^^^^^^^^^^^^^^^15341535/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1536_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1537nixbot/tests/conftest.py:33: in postgres_dsn1538 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1539 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1540/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1541 return next(self.gen)1542 ^^^^^^^^^^^^^^1543_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 15441545tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...tch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw11'), _retention_count=3, _retention_policy='all')1546dbname = 'db'15471548 @contextlib.contextmanager1549 def ephemeral_postgres(1550 tmp_path_factory: pytest.TempPathFactory, dbname: str1551 ) -> Iterator[str]:1552 """Throwaway Postgres on a unix socket with migrations applied."""1553 datadir = tmp_path_factory.mktemp("pgdata")1554 sockdir = tmp_path_factory.mktemp("pgsock")1555 subprocess.run( # noqa: S6031556 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1557 check=True,1558 capture_output=True,1559 )1560 proc = subprocess.Popen( # noqa: S6031561 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1562 stdout=subprocess.DEVNULL,1563 stderr=subprocess.DEVNULL,1564 )1565 try:1566 deadline = time.monotonic() + 301567 while (1568 subprocess.run( # noqa: S6031569 ["pg_isready", "-h", str(sockdir), "-U", "test"],1570 check=False,1571 capture_output=True,1572 ).returncode1573 != 01574 ):1575 # The socket appears before recovery finishes; createdb would1576 # fail with "the database system is starting up".1577 if time.monotonic() > deadline:1578 msg = "postgres did not start"1579> raise RuntimeError(msg)1580E RuntimeError: postgres did not start15811582nixbot/tests/support.py:319: RuntimeError1583_ ERROR at setup of test_complete_attribute_if_unfinished_skips_terminal_rows __1584[gw11] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1415851586self = <Coroutine test_complete_attribute_if_unfinished_skips_terminal_rows>15871588 def setup(self) -> None:1589 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1590 if runner_fixture_id not in self.fixturenames:1591 self.fixturenames.append(runner_fixture_id)1592 # When loop factories are configured, resolve the loop factory1593 # fixture early so that a factory variant change cascades cache1594 # invalidation before any async fixture checks its cache.1595 hook_caller = self.config.hook.pytest_asyncio_loop_factories1596 if hook_caller.get_hookimpls():1597 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1598> return super().setup()1599 ^^^^^^^^^^^^^^^16001601/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1602_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1603nixbot/tests/conftest.py:33: in postgres_dsn1604 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1605 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1606/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1607 return next(self.gen)1608 ^^^^^^^^^^^^^^1609_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 16101611tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...tch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw11'), _retention_count=3, _retention_policy='all')1612dbname = 'db'16131614 @contextlib.contextmanager1615 def ephemeral_postgres(1616 tmp_path_factory: pytest.TempPathFactory, dbname: str1617 ) -> Iterator[str]:1618 """Throwaway Postgres on a unix socket with migrations applied."""1619 datadir = tmp_path_factory.mktemp("pgdata")1620 sockdir = tmp_path_factory.mktemp("pgsock")1621 subprocess.run( # noqa: S6031622 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1623 check=True,1624 capture_output=True,1625 )1626 proc = subprocess.Popen( # noqa: S6031627 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1628 stdout=subprocess.DEVNULL,1629 stderr=subprocess.DEVNULL,1630 )1631 try:1632 deadline = time.monotonic() + 301633 while (1634 subprocess.run( # noqa: S6031635 ["pg_isready", "-h", str(sockdir), "-U", "test"],1636 check=False,1637 capture_output=True,1638 ).returncode1639 != 01640 ):1641 # The socket appears before recovery finishes; createdb would1642 # fail with "the database system is starting up".1643 if time.monotonic() > deadline:1644 msg = "postgres did not start"1645> raise RuntimeError(msg)1646E RuntimeError: postgres did not start16471648nixbot/tests/support.py:319: RuntimeError1649_________ ERROR at setup of test_failed_build_cache_scoped_per_project _________1650[gw11] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1416511652self = <Coroutine test_failed_build_cache_scoped_per_project>16531654 def setup(self) -> None:1655 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1656 if runner_fixture_id not in self.fixturenames:1657 self.fixturenames.append(runner_fixture_id)1658 # When loop factories are configured, resolve the loop factory1659 # fixture early so that a factory variant change cascades cache1660 # invalidation before any async fixture checks its cache.1661 hook_caller = self.config.hook.pytest_asyncio_loop_factories1662 if hook_caller.get_hookimpls():1663 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1664> return super().setup()1665 ^^^^^^^^^^^^^^^16661667/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1668_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1669nixbot/tests/conftest.py:33: in postgres_dsn1670 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1671 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1672/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1673 return next(self.gen)1674 ^^^^^^^^^^^^^^1675_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 16761677tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...tch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw11'), _retention_count=3, _retention_policy='all')1678dbname = 'db'16791680 @contextlib.contextmanager1681 def ephemeral_postgres(1682 tmp_path_factory: pytest.TempPathFactory, dbname: str1683 ) -> Iterator[str]:1684 """Throwaway Postgres on a unix socket with migrations applied."""1685 datadir = tmp_path_factory.mktemp("pgdata")1686 sockdir = tmp_path_factory.mktemp("pgsock")1687 subprocess.run( # noqa: S6031688 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1689 check=True,1690 capture_output=True,1691 )1692 proc = subprocess.Popen( # noqa: S6031693 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1694 stdout=subprocess.DEVNULL,1695 stderr=subprocess.DEVNULL,1696 )1697 try:1698 deadline = time.monotonic() + 301699 while (1700 subprocess.run( # noqa: S6031701 ["pg_isready", "-h", str(sockdir), "-U", "test"],1702 check=False,1703 capture_output=True,1704 ).returncode1705 != 01706 ):1707 # The socket appears before recovery finishes; createdb would1708 # fail with "the database system is starting up".1709 if time.monotonic() > deadline:1710 msg = "postgres did not start"1711> raise RuntimeError(msg)1712E RuntimeError: postgres did not start17131714nixbot/tests/support.py:319: RuntimeError1715_________________ ERROR at setup of test_eval_stats_lifecycle __________________1716[gw11] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1417171718self = <Coroutine test_eval_stats_lifecycle>17191720 def setup(self) -> None:1721 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"1722 if runner_fixture_id not in self.fixturenames:1723 self.fixturenames.append(runner_fixture_id)1724 # When loop factories are configured, resolve the loop factory1725 # fixture early so that a factory variant change cascades cache1726 # invalidation before any async fixture checks its cache.1727 hook_caller = self.config.hook.pytest_asyncio_loop_factories1728 if hook_caller.get_hookimpls():1729 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)1730> return super().setup()1731 ^^^^^^^^^^^^^^^17321733/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 1734_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1735nixbot/tests/conftest.py:33: in postgres_dsn1736 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1737 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1738/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1739 return next(self.gen)1740 ^^^^^^^^^^^^^^1741_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 17421743tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...tch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw11'), _retention_count=3, _retention_policy='all')1744dbname = 'db'17451746 @contextlib.contextmanager1747 def ephemeral_postgres(1748 tmp_path_factory: pytest.TempPathFactory, dbname: str1749 ) -> Iterator[str]:1750 """Throwaway Postgres on a unix socket with migrations applied."""1751 datadir = tmp_path_factory.mktemp("pgdata")1752 sockdir = tmp_path_factory.mktemp("pgsock")1753 subprocess.run( # noqa: S6031754 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1755 check=True,1756 capture_output=True,1757 )1758 proc = subprocess.Popen( # noqa: S6031759 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1760 stdout=subprocess.DEVNULL,1761 stderr=subprocess.DEVNULL,1762 )1763 try:1764 deadline = time.monotonic() + 301765 while (1766 subprocess.run( # noqa: S6031767 ["pg_isready", "-h", str(sockdir), "-U", "test"],1768 check=False,1769 capture_output=True,1770 ).returncode1771 != 01772 ):1773 # The socket appears before recovery finishes; createdb would1774 # fail with "the database system is starting up".1775 if time.monotonic() > deadline:1776 msg = "postgres did not start"1777> raise RuntimeError(msg)1778E RuntimeError: postgres did not start17791780nixbot/tests/support.py:319: RuntimeError1781______________ ERROR at setup of test_anonymous_sees_public_only _______________1782[gw14] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1417831784fixturedef = <FixtureDef argname='postgres_dsn' scope='module' baseid='nixbot/tests'>1785request = <SubRequest 'postgres_dsn' for <Function test_anonymous_sees_public_only>>17861787 @pytest.hookimpl(wrapper=True)1788 def pytest_fixture_setup(fixturedef: FixtureDef, request) -> object | None:1789 if (1790 fixturedef.argname == "event_loop_policy"1791 and fixturedef.func.__module__ != __name__1792 ):1793 warnings.warn(1794 PytestDeprecationWarning(_EVENT_LOOP_POLICY_FIXTURE_DEPRECATION_WARNING),1795 )1796 asyncio_mode = _get_asyncio_mode(request.config)1797 if not _is_asyncio_fixture_function(fixturedef.func):1798 if asyncio_mode == Mode.STRICT:1799 # Ignore async fixtures without explicit asyncio mark in strict mode1800 # This applies to pytest_trio fixtures, for example1801 return (yield)1802 if not _is_coroutine_or_asyncgen(fixturedef.func):1803> return (yield)1804 ^^^^^18051806/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:926: 1807_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1808nixbot/tests/conftest.py:33: in postgres_dsn1809 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1810 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^1811/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1812 return next(self.gen)1813 ^^^^^^^^^^^^^^1814_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 18151816tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...tch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw14'), _retention_count=3, _retention_policy='all')1817dbname = 'visibility'18181819 @contextlib.contextmanager1820 def ephemeral_postgres(1821 tmp_path_factory: pytest.TempPathFactory, dbname: str1822 ) -> Iterator[str]:1823 """Throwaway Postgres on a unix socket with migrations applied."""1824 datadir = tmp_path_factory.mktemp("pgdata")1825 sockdir = tmp_path_factory.mktemp("pgsock")1826 subprocess.run( # noqa: S6031827 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1828 check=True,1829 capture_output=True,1830 )1831 proc = subprocess.Popen( # noqa: S6031832 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1833 stdout=subprocess.DEVNULL,1834 stderr=subprocess.DEVNULL,1835 )1836 try:1837 deadline = time.monotonic() + 301838 while (1839 subprocess.run( # noqa: S6031840 ["pg_isready", "-h", str(sockdir), "-U", "test"],1841 check=False,1842 capture_output=True,1843 ).returncode1844 != 01845 ):1846 # The socket appears before recovery finishes; createdb would1847 # fail with "the database system is starting up".1848 if time.monotonic() > deadline:1849 msg = "postgres did not start"1850> raise RuntimeError(msg)1851E RuntimeError: postgres did not start18521853nixbot/tests/support.py:319: RuntimeError1854__________ ERROR at setup of test_unauthorized_user_sees_public_only ___________1855[gw14] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1418561857request = <SubRequest 'postgres_dsn' for <Function test_anonymous_sees_public_only>>1858tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...tch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw14'), _retention_count=3, _retention_policy='all')18591860 @pytest.fixture(scope="module")1861 def postgres_dsn(1862 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory1863 ) -> Iterator[str]:1864 if shutil.which("initdb") is None:1865 pytest.skip("postgresql not available")1866 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")1867> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1868 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^18691870nixbot/tests/conftest.py:33: 1871_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1872/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1873 return next(self.gen)1874 ^^^^^^^^^^^^^^1875_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 18761877tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...tch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw14'), _retention_count=3, _retention_policy='all')1878dbname = 'visibility'18791880 @contextlib.contextmanager1881 def ephemeral_postgres(1882 tmp_path_factory: pytest.TempPathFactory, dbname: str1883 ) -> Iterator[str]:1884 """Throwaway Postgres on a unix socket with migrations applied."""1885 datadir = tmp_path_factory.mktemp("pgdata")1886 sockdir = tmp_path_factory.mktemp("pgsock")1887 subprocess.run( # noqa: S6031888 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1889 check=True,1890 capture_output=True,1891 )1892 proc = subprocess.Popen( # noqa: S6031893 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1894 stdout=subprocess.DEVNULL,1895 stderr=subprocess.DEVNULL,1896 )1897 try:1898 deadline = time.monotonic() + 301899 while (1900 subprocess.run( # noqa: S6031901 ["pg_isready", "-h", str(sockdir), "-U", "test"],1902 check=False,1903 capture_output=True,1904 ).returncode1905 != 01906 ):1907 # The socket appears before recovery finishes; createdb would1908 # fail with "the database system is starting up".1909 if time.monotonic() > deadline:1910 msg = "postgres did not start"1911> raise RuntimeError(msg)1912E RuntimeError: postgres did not start19131914nixbot/tests/support.py:319: RuntimeError1915_____________ ERROR at setup of test_authorized_user_sees_private ______________1916[gw14] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1419171918request = <SubRequest 'postgres_dsn' for <Function test_anonymous_sees_public_only>>1919tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...tch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw14'), _retention_count=3, _retention_policy='all')19201921 @pytest.fixture(scope="module")1922 def postgres_dsn(1923 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory1924 ) -> Iterator[str]:1925 if shutil.which("initdb") is None:1926 pytest.skip("postgresql not available")1927 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")1928> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1929 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^19301931nixbot/tests/conftest.py:33: 1932_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1933/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1934 return next(self.gen)1935 ^^^^^^^^^^^^^^1936_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 19371938tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...tch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw14'), _retention_count=3, _retention_policy='all')1939dbname = 'visibility'19401941 @contextlib.contextmanager1942 def ephemeral_postgres(1943 tmp_path_factory: pytest.TempPathFactory, dbname: str1944 ) -> Iterator[str]:1945 """Throwaway Postgres on a unix socket with migrations applied."""1946 datadir = tmp_path_factory.mktemp("pgdata")1947 sockdir = tmp_path_factory.mktemp("pgsock")1948 subprocess.run( # noqa: S6031949 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],1950 check=True,1951 capture_output=True,1952 )1953 proc = subprocess.Popen( # noqa: S6031954 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],1955 stdout=subprocess.DEVNULL,1956 stderr=subprocess.DEVNULL,1957 )1958 try:1959 deadline = time.monotonic() + 301960 while (1961 subprocess.run( # noqa: S6031962 ["pg_isready", "-h", str(sockdir), "-U", "test"],1963 check=False,1964 capture_output=True,1965 ).returncode1966 != 01967 ):1968 # The socket appears before recovery finishes; createdb would1969 # fail with "the database system is starting up".1970 if time.monotonic() > deadline:1971 msg = "postgres did not start"1972> raise RuntimeError(msg)1973E RuntimeError: postgres did not start19741975nixbot/tests/support.py:319: RuntimeError1976_________________ ERROR at setup of test_admin_sees_everything _________________1977[gw14] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.1419781979request = <SubRequest 'postgres_dsn' for <Function test_anonymous_sees_public_only>>1980tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...tch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw14'), _retention_count=3, _retention_policy='all')19811982 @pytest.fixture(scope="module")1983 def postgres_dsn(1984 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory1985 ) -> Iterator[str]:1986 if shutil.which("initdb") is None:1987 pytest.skip("postgresql not available")1988 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")1989> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:1990 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^19911992nixbot/tests/conftest.py:33: 1993_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1994/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__1995 return next(self.gen)1996 ^^^^^^^^^^^^^^1997_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 19981999tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...tch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw14'), _retention_count=3, _retention_policy='all')2000dbname = 'visibility'20789> raise RuntimeError(msg)20790E RuntimeError: postgres did not start2079120792nixbot/tests/support.py:319: RuntimeError20793______________ ERROR at setup of test_gitlab_nested_group_routes _______________20794[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142079520796request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>20797tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...atch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2079820799 @pytest.fixture(scope="module")20800 def postgres_dsn(20801 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory20802 ) -> Iterator[str]:20803 if shutil.which("initdb") is None:20804 pytest.skip("postgresql not available")20805 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")20806> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:20807 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2080820809nixbot/tests/conftest.py:33: 20810_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20811/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__20812 return next(self.gen)20813 ^^^^^^^^^^^^^^20814_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2081520816tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...atch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')20817dbname = 'web'2081820819 @contextlib.contextmanager20820 def ephemeral_postgres(20821 tmp_path_factory: pytest.TempPathFactory, dbname: str20822 ) -> Iterator[str]:20823 """Throwaway Postgres on a unix socket with migrations applied."""20824 datadir = tmp_path_factory.mktemp("pgdata")20825 sockdir = tmp_path_factory.mktemp("pgsock")20826 subprocess.run( # noqa: S60320827 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],20828 check=True,20829 capture_output=True,20830 )20831 proc = subprocess.Popen( # noqa: S60320832 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],20833 stdout=subprocess.DEVNULL,20834 stderr=subprocess.DEVNULL,20835 )20836 try:20837 deadline = time.monotonic() + 3020838 while (20839 subprocess.run( # noqa: S60320840 ["pg_isready", "-h", str(sockdir), "-U", "test"],20841 check=False,20842 capture_output=True,20843 ).returncode20844 != 020845 ):20846 # The socket appears before recovery finishes; createdb would20847 # fail with "the database system is starting up".20848 if time.monotonic() > deadline:20849 msg = "postgres did not start"20850> raise RuntimeError(msg)20851E RuntimeError: postgres did not start2085220853nixbot/tests/support.py:319: RuntimeError20854__________ ERROR at setup of test_locked_effect_gets_shared_dedup_key __________20855[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142085620857self = <Coroutine test_locked_effect_gets_shared_dedup_key>2085820859 def setup(self) -> None:20860 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"20861 if runner_fixture_id not in self.fixturenames:20862 self.fixturenames.append(runner_fixture_id)20863 # When loop factories are configured, resolve the loop factory20864 # fixture early so that a factory variant change cascades cache20865 # invalidation before any async fixture checks its cache.20866 hook_caller = self.config.hook.pytest_asyncio_loop_factories20867 if hook_caller.get_hookimpls():20868 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)20869> return super().setup()20870 ^^^^^^^^^^^^^^^2087120872/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 20873_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20874nixbot/tests/conftest.py:33: in postgres_dsn20875 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:20876 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^20877/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__20878 return next(self.gen)20879 ^^^^^^^^^^^^^^20880_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2088120882tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...atch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')20883dbname = 'orchestrator'2088420885 @contextlib.contextmanager20886 def ephemeral_postgres(20887 tmp_path_factory: pytest.TempPathFactory, dbname: str20888 ) -> Iterator[str]:20889 """Throwaway Postgres on a unix socket with migrations applied."""20890 datadir = tmp_path_factory.mktemp("pgdata")20891 sockdir = tmp_path_factory.mktemp("pgsock")20892 subprocess.run( # noqa: S60320893 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],20894 check=True,20895 capture_output=True,20896 )20897 proc = subprocess.Popen( # noqa: S60320898 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],20899 stdout=subprocess.DEVNULL,20900 stderr=subprocess.DEVNULL,20901 )20902 try:20903 deadline = time.monotonic() + 3020904 while (20905 subprocess.run( # noqa: S60320906 ["pg_isready", "-h", str(sockdir), "-U", "test"],20907 check=False,20908 capture_output=True,20909 ).returncode20910 != 020911 ):20912 # The socket appears before recovery finishes; createdb would20913 # fail with "the database system is starting up".20914 if time.monotonic() > deadline:20915 msg = "postgres did not start"20916> raise RuntimeError(msg)20917E RuntimeError: postgres did not start2091820919nixbot/tests/support.py:319: RuntimeError20920___________ ERROR at setup of test_scheduled_run_viewer_renders_ansi ___________20921[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142092220923request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>20924tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...atch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2092520926 @pytest.fixture(scope="module")20927 def postgres_dsn(20928 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory20929 ) -> Iterator[str]:20930 if shutil.which("initdb") is None:20931 pytest.skip("postgresql not available")20932 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")20933> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:20934 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2093520936nixbot/tests/conftest.py:33: 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/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...atch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')20944dbname = 'web'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_scheduled_run_viewer_cross_project_404 _________20982[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142098320984request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>20985tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...atch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2098620987 @pytest.fixture(scope="module")20988 def postgres_dsn(20989 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory20990 ) -> Iterator[str]:20991 if shutil.which("initdb") is None:20992 pytest.skip("postgresql not available")20993 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")20994> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:20995 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2099620997nixbot/tests/conftest.py:33: 20998_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20999/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21000 return next(self.gen)21001 ^^^^^^^^^^^^^^21002_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2100321004tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...atch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')21005dbname = 'web'2100621007 @contextlib.contextmanager21008 def ephemeral_postgres(21009 tmp_path_factory: pytest.TempPathFactory, dbname: str21010 ) -> Iterator[str]:21011 """Throwaway Postgres on a unix socket with migrations applied."""21012 datadir = tmp_path_factory.mktemp("pgdata")21013 sockdir = tmp_path_factory.mktemp("pgsock")21014 subprocess.run( # noqa: S60321015 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21016 check=True,21017 capture_output=True,21018 )21019 proc = subprocess.Popen( # noqa: S60321020 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21021 stdout=subprocess.DEVNULL,21022 stderr=subprocess.DEVNULL,21023 )21024 try:21025 deadline = time.monotonic() + 3021026 while (21027 subprocess.run( # noqa: S60321028 ["pg_isready", "-h", str(sockdir), "-U", "test"],21029 check=False,21030 capture_output=True,21031 ).returncode21032 != 021033 ):21034 # The socket appears before recovery finishes; createdb would21035 # fail with "the database system is starting up".21036 if time.monotonic() > deadline:21037 msg = "postgres did not start"21038> raise RuntimeError(msg)21039E RuntimeError: postgres did not start2104021041nixbot/tests/support.py:319: RuntimeError21042______ ERROR at setup of test_effect_item_not_claimable_until_dep_settles ______21043[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142104421045self = <Coroutine test_effect_item_not_claimable_until_dep_settles>2104621047 def setup(self) -> None:21048 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21049 if runner_fixture_id not in self.fixturenames:21050 self.fixturenames.append(runner_fixture_id)21051 # When loop factories are configured, resolve the loop factory21052 # fixture early so that a factory variant change cascades cache21053 # invalidation before any async fixture checks its cache.21054 hook_caller = self.config.hook.pytest_asyncio_loop_factories21055 if hook_caller.get_hookimpls():21056 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21057> return super().setup()21058 ^^^^^^^^^^^^^^^2105921060/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21061_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21062nixbot/tests/conftest.py:33: in postgres_dsn21063 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21064 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21065/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21066 return next(self.gen)21067 ^^^^^^^^^^^^^^21068_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2106921070tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...atch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21071dbname = 'orchestrator'2107221073 @contextlib.contextmanager21074 def ephemeral_postgres(21075 tmp_path_factory: pytest.TempPathFactory, dbname: str21076 ) -> Iterator[str]:21077 """Throwaway Postgres on a unix socket with migrations applied."""21078 datadir = tmp_path_factory.mktemp("pgdata")21079 sockdir = tmp_path_factory.mktemp("pgsock")21080 subprocess.run( # noqa: S60321081 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21082 check=True,21083 capture_output=True,21084 )21085 proc = subprocess.Popen( # noqa: S60321086 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21087 stdout=subprocess.DEVNULL,21088 stderr=subprocess.DEVNULL,21089 )21090 try:21091 deadline = time.monotonic() + 3021092 while (21093 subprocess.run( # noqa: S60321094 ["pg_isready", "-h", str(sockdir), "-U", "test"],21095 check=False,21096 capture_output=True,21097 ).returncode21098 != 021099 ):21100 # The socket appears before recovery finishes; createdb would21101 # fail with "the database system is starting up".21102 if time.monotonic() > deadline:21103 msg = "postgres did not start"21104> raise RuntimeError(msg)21105E RuntimeError: postgres did not start2110621107nixbot/tests/support.py:319: RuntimeError21108_______ ERROR at setup of test_scheduled_run_log_unavailable_placeholder _______21109[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142111021111request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>21112tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...atch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2111321114 @pytest.fixture(scope="module")21115 def postgres_dsn(21116 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory21117 ) -> Iterator[str]:21118 if shutil.which("initdb") is None:21119 pytest.skip("postgresql not available")21120 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")21121> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21122 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2112321124nixbot/tests/conftest.py:33: 21125_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21126/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21127 return next(self.gen)21128 ^^^^^^^^^^^^^^21129_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2113021131tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...atch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')21132dbname = 'web'2113321134 @contextlib.contextmanager21135 def ephemeral_postgres(21136 tmp_path_factory: pytest.TempPathFactory, dbname: str21137 ) -> Iterator[str]:21138 """Throwaway Postgres on a unix socket with migrations applied."""21139 datadir = tmp_path_factory.mktemp("pgdata")21140 sockdir = tmp_path_factory.mktemp("pgsock")21141 subprocess.run( # noqa: S60321142 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21143 check=True,21144 capture_output=True,21145 )21146 proc = subprocess.Popen( # noqa: S60321147 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21148 stdout=subprocess.DEVNULL,21149 stderr=subprocess.DEVNULL,21150 )21151 try:21152 deadline = time.monotonic() + 3021153 while (21154 subprocess.run( # noqa: S60321155 ["pg_isready", "-h", str(sockdir), "-U", "test"],21156 check=False,21157 capture_output=True,21158 ).returncode21159 != 021160 ):21161 # The socket appears before recovery finishes; createdb would21162 # fail with "the database system is starting up".21163 if time.monotonic() > deadline:21164 msg = "postgres did not start"21165> raise RuntimeError(msg)21166E RuntimeError: postgres did not start2116721168nixbot/tests/support.py:319: RuntimeError21169________ ERROR at setup of test_scheduled_run_viewer_waiting_before_log ________21170[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142117121172request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>21173tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...atch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2117421175 @pytest.fixture(scope="module")21176 def postgres_dsn(21177 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory21178 ) -> Iterator[str]:21179 if shutil.which("initdb") is None:21180 pytest.skip("postgresql not available")21181 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")21182> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21183 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2118421185nixbot/tests/conftest.py:33: 21186_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21187/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21188 return next(self.gen)21189 ^^^^^^^^^^^^^^21190_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2119121192tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...atch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')21193dbname = 'web'2119421195 @contextlib.contextmanager21196 def ephemeral_postgres(21197 tmp_path_factory: pytest.TempPathFactory, dbname: str21198 ) -> Iterator[str]:21199 """Throwaway Postgres on a unix socket with migrations applied."""21200 datadir = tmp_path_factory.mktemp("pgdata")21201 sockdir = tmp_path_factory.mktemp("pgsock")21202 subprocess.run( # noqa: S60321203 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21204 check=True,21205 capture_output=True,21206 )21207 proc = subprocess.Popen( # noqa: S60321208 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21209 stdout=subprocess.DEVNULL,21210 stderr=subprocess.DEVNULL,21211 )21212 try:21213 deadline = time.monotonic() + 3021214 while (21215 subprocess.run( # noqa: S60321216 ["pg_isready", "-h", str(sockdir), "-U", "test"],21217 check=False,21218 capture_output=True,21219 ).returncode21220 != 021221 ):21222 # The socket appears before recovery finishes; createdb would21223 # fail with "the database system is starting up".21224 if time.monotonic() > deadline:21225 msg = "postgres did not start"21226> raise RuntimeError(msg)21227E RuntimeError: postgres did not start2122821229nixbot/tests/support.py:319: RuntimeError21230__________ ERROR at setup of test_effect_dep_failure_skips_dependent ___________21231[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142123221233self = <Coroutine test_effect_dep_failure_skips_dependent>2123421235 def setup(self) -> None:21236 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21237 if runner_fixture_id not in self.fixturenames:21238 self.fixturenames.append(runner_fixture_id)21239 # When loop factories are configured, resolve the loop factory21240 # fixture early so that a factory variant change cascades cache21241 # invalidation before any async fixture checks its cache.21242 hook_caller = self.config.hook.pytest_asyncio_loop_factories21243 if hook_caller.get_hookimpls():21244 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21245> return super().setup()21246 ^^^^^^^^^^^^^^^2124721248/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21249_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21250nixbot/tests/conftest.py:33: in postgres_dsn21251 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21252 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21253/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21254 return next(self.gen)21255 ^^^^^^^^^^^^^^21256_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2125721258tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...atch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21259dbname = 'orchestrator'2126021261 @contextlib.contextmanager21262 def ephemeral_postgres(21263 tmp_path_factory: pytest.TempPathFactory, dbname: str21264 ) -> Iterator[str]:21265 """Throwaway Postgres on a unix socket with migrations applied."""21266 datadir = tmp_path_factory.mktemp("pgdata")21267 sockdir = tmp_path_factory.mktemp("pgsock")21268 subprocess.run( # noqa: S60321269 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21270 check=True,21271 capture_output=True,21272 )21273 proc = subprocess.Popen( # noqa: S60321274 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21275 stdout=subprocess.DEVNULL,21276 stderr=subprocess.DEVNULL,21277 )21278 try:21279 deadline = time.monotonic() + 3021280 while (21281 subprocess.run( # noqa: S60321282 ["pg_isready", "-h", str(sockdir), "-U", "test"],21283 check=False,21284 capture_output=True,21285 ).returncode21286 != 021287 ):21288 # The socket appears before recovery finishes; createdb would21289 # fail with "the database system is starting up".21290 if time.monotonic() > deadline:21291 msg = "postgres did not start"21292> raise RuntimeError(msg)21293E RuntimeError: postgres did not start2129421295nixbot/tests/support.py:319: RuntimeError21296_________ ERROR at setup of test_project_tabs_link_builds_and_effects __________21297[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142129821299request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>21300tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...atch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2130121302 @pytest.fixture(scope="module")21303 def postgres_dsn(21304 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory21305 ) -> Iterator[str]:21306 if shutil.which("initdb") is None:21307 pytest.skip("postgresql not available")21308 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")21309> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21310 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2131121312nixbot/tests/conftest.py:33: 21313_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21314/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21315 return next(self.gen)21316 ^^^^^^^^^^^^^^21317_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2131821319tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...atch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')21320dbname = 'web'2132121322 @contextlib.contextmanager21323 def ephemeral_postgres(21324 tmp_path_factory: pytest.TempPathFactory, dbname: str21325 ) -> Iterator[str]:21326 """Throwaway Postgres on a unix socket with migrations applied."""21327 datadir = tmp_path_factory.mktemp("pgdata")21328 sockdir = tmp_path_factory.mktemp("pgsock")21329 subprocess.run( # noqa: S60321330 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21331 check=True,21332 capture_output=True,21333 )21334 proc = subprocess.Popen( # noqa: S60321335 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21336 stdout=subprocess.DEVNULL,21337 stderr=subprocess.DEVNULL,21338 )21339 try:21340 deadline = time.monotonic() + 3021341 while (21342 subprocess.run( # noqa: S60321343 ["pg_isready", "-h", str(sockdir), "-U", "test"],21344 check=False,21345 capture_output=True,21346 ).returncode21347 != 021348 ):21349 # The socket appears before recovery finishes; createdb would21350 # fail with "the database system is starting up".21351 if time.monotonic() > deadline:21352 msg = "postgres did not start"21353> raise RuntimeError(msg)21354E RuntimeError: postgres did not start2135521356nixbot/tests/support.py:319: RuntimeError21357_ ERROR at setup of test_failing_badge_counts_effects_whose_latest_run_failed __21358[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142135921360request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>21361tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...atch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2136221363 @pytest.fixture(scope="module")21364 def postgres_dsn(21365 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory21366 ) -> Iterator[str]:21367 if shutil.which("initdb") is None:21368 pytest.skip("postgresql not available")21369 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")21370> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21371 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2137221373nixbot/tests/conftest.py:33: 21374_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21375/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21376 return next(self.gen)21377 ^^^^^^^^^^^^^^21378_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2137921380tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...atch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')21381dbname = 'web'2138221383 @contextlib.contextmanager21384 def ephemeral_postgres(21385 tmp_path_factory: pytest.TempPathFactory, dbname: str21386 ) -> Iterator[str]:21387 """Throwaway Postgres on a unix socket with migrations applied."""21388 datadir = tmp_path_factory.mktemp("pgdata")21389 sockdir = tmp_path_factory.mktemp("pgsock")21390 subprocess.run( # noqa: S60321391 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21392 check=True,21393 capture_output=True,21394 )21395 proc = subprocess.Popen( # noqa: S60321396 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21397 stdout=subprocess.DEVNULL,21398 stderr=subprocess.DEVNULL,21399 )21400 try:21401 deadline = time.monotonic() + 3021402 while (21403 subprocess.run( # noqa: S60321404 ["pg_isready", "-h", str(sockdir), "-U", "test"],21405 check=False,21406 capture_output=True,21407 ).returncode21408 != 021409 ):21410 # The socket appears before recovery finishes; createdb would21411 # fail with "the database system is starting up".21412 if time.monotonic() > deadline:21413 msg = "postgres did not start"21414> raise RuntimeError(msg)21415E RuntimeError: postgres did not start2141621417nixbot/tests/support.py:319: RuntimeError21418______ ERROR at setup of test_lock_serializes_builds_without_interleaving ______21419[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142142021421self = <Coroutine test_lock_serializes_builds_without_interleaving>2142221423 def setup(self) -> None:21424 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21425 if runner_fixture_id not in self.fixturenames:21426 self.fixturenames.append(runner_fixture_id)21427 # When loop factories are configured, resolve the loop factory21428 # fixture early so that a factory variant change cascades cache21429 # invalidation before any async fixture checks its cache.21430 hook_caller = self.config.hook.pytest_asyncio_loop_factories21431 if hook_caller.get_hookimpls():21432 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21433> return super().setup()21434 ^^^^^^^^^^^^^^^2143521436/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21437_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21438nixbot/tests/conftest.py:33: in postgres_dsn21439 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21440 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21441/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21442 return next(self.gen)21443 ^^^^^^^^^^^^^^21444_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2144521446tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...atch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21447dbname = 'orchestrator'2144821449 @contextlib.contextmanager21450 def ephemeral_postgres(21451 tmp_path_factory: pytest.TempPathFactory, dbname: str21452 ) -> Iterator[str]:21453 """Throwaway Postgres on a unix socket with migrations applied."""21454 datadir = tmp_path_factory.mktemp("pgdata")21455 sockdir = tmp_path_factory.mktemp("pgsock")21456 subprocess.run( # noqa: S60321457 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21458 check=True,21459 capture_output=True,21460 )21461 proc = subprocess.Popen( # noqa: S60321462 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21463 stdout=subprocess.DEVNULL,21464 stderr=subprocess.DEVNULL,21465 )21466 try:21467 deadline = time.monotonic() + 3021468 while (21469 subprocess.run( # noqa: S60321470 ["pg_isready", "-h", str(sockdir), "-U", "test"],21471 check=False,21472 capture_output=True,21473 ).returncode21474 != 021475 ):21476 # The socket appears before recovery finishes; createdb would21477 # fail with "the database system is starting up".21478 if time.monotonic() > deadline:21479 msg = "postgres did not start"21480> raise RuntimeError(msg)21481E RuntimeError: postgres did not start2148221483nixbot/tests/support.py:319: RuntimeError21484__________ ERROR at setup of test_old_schedule_history_url_redirects ___________21485[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142148621487request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>21488tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...atch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2148921490 @pytest.fixture(scope="module")21491 def postgres_dsn(21492 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory21493 ) -> Iterator[str]:21494 if shutil.which("initdb") is None:21495 pytest.skip("postgresql not available")21496 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")21497> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21498 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2149921500nixbot/tests/conftest.py:33: 21501_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21502/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21503 return next(self.gen)21504 ^^^^^^^^^^^^^^21505_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2150621507tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...atch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')21508dbname = 'web'2150921510 @contextlib.contextmanager21511 def ephemeral_postgres(21512 tmp_path_factory: pytest.TempPathFactory, dbname: str21513 ) -> Iterator[str]:21514 """Throwaway Postgres on a unix socket with migrations applied."""21515 datadir = tmp_path_factory.mktemp("pgdata")21516 sockdir = tmp_path_factory.mktemp("pgsock")21517 subprocess.run( # noqa: S60321518 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21519 check=True,21520 capture_output=True,21521 )21522 proc = subprocess.Popen( # noqa: S60321523 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21524 stdout=subprocess.DEVNULL,21525 stderr=subprocess.DEVNULL,21526 )21527 try:21528 deadline = time.monotonic() + 3021529 while (21530 subprocess.run( # noqa: S60321531 ["pg_isready", "-h", str(sockdir), "-U", "test"],21532 check=False,21533 capture_output=True,21534 ).returncode21535 != 021536 ):21537 # The socket appears before recovery finishes; createdb would21538 # fail with "the database system is starting up".21539 if time.monotonic() > deadline:21540 msg = "postgres did not start"21541> raise RuntimeError(msg)21542E RuntimeError: postgres did not start2154321544nixbot/tests/support.py:319: RuntimeError21545__________ ERROR at setup of test_project_effects_filter_and_paginate __________21546[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142154721548request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>21549tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...atch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2155021551 @pytest.fixture(scope="module")21552 def postgres_dsn(21553 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory21554 ) -> Iterator[str]:21555 if shutil.which("initdb") is None:21556 pytest.skip("postgresql not available")21557 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")21558> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21559 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2156021561nixbot/tests/conftest.py:33: 21562_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21563/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21564 return next(self.gen)21565 ^^^^^^^^^^^^^^21566_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2156721568tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...atch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')21569dbname = 'web'2157021571 @contextlib.contextmanager21572 def ephemeral_postgres(21573 tmp_path_factory: pytest.TempPathFactory, dbname: str21574 ) -> Iterator[str]:21575 """Throwaway Postgres on a unix socket with migrations applied."""21576 datadir = tmp_path_factory.mktemp("pgdata")21577 sockdir = tmp_path_factory.mktemp("pgsock")21578 subprocess.run( # noqa: S60321579 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21580 check=True,21581 capture_output=True,21582 )21583 proc = subprocess.Popen( # noqa: S60321584 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21585 stdout=subprocess.DEVNULL,21586 stderr=subprocess.DEVNULL,21587 )21588 try:21589 deadline = time.monotonic() + 3021590 while (21591 subprocess.run( # noqa: S60321592 ["pg_isready", "-h", str(sockdir), "-U", "test"],21593 check=False,21594 capture_output=True,21595 ).returncode21596 != 021597 ):21598 # The socket appears before recovery finishes; createdb would21599 # fail with "the database system is starting up".21600 if time.monotonic() > deadline:21601 msg = "postgres did not start"21602> raise RuntimeError(msg)21603E RuntimeError: postgres did not start2160421605nixbot/tests/support.py:319: RuntimeError21606___________ ERROR at setup of test_effect_dep_cycle_fails_discovery ____________21607[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142160821609self = <Coroutine test_effect_dep_cycle_fails_discovery>2161021611 def setup(self) -> None:21612 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21613 if runner_fixture_id not in self.fixturenames:21614 self.fixturenames.append(runner_fixture_id)21615 # When loop factories are configured, resolve the loop factory21616 # fixture early so that a factory variant change cascades cache21617 # invalidation before any async fixture checks its cache.21618 hook_caller = self.config.hook.pytest_asyncio_loop_factories21619 if hook_caller.get_hookimpls():21620 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21621> return super().setup()21622 ^^^^^^^^^^^^^^^2162321624/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21625_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21626nixbot/tests/conftest.py:33: in postgres_dsn21627 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21628 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21629/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21630 return next(self.gen)21631 ^^^^^^^^^^^^^^21632_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2163321634tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...atch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21635dbname = 'orchestrator'2163621637 @contextlib.contextmanager21638 def ephemeral_postgres(21639 tmp_path_factory: pytest.TempPathFactory, dbname: str21640 ) -> Iterator[str]:21641 """Throwaway Postgres on a unix socket with migrations applied."""21642 datadir = tmp_path_factory.mktemp("pgdata")21643 sockdir = tmp_path_factory.mktemp("pgsock")21644 subprocess.run( # noqa: S60321645 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21646 check=True,21647 capture_output=True,21648 )21649 proc = subprocess.Popen( # noqa: S60321650 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21651 stdout=subprocess.DEVNULL,21652 stderr=subprocess.DEVNULL,21653 )21654 try:21655 deadline = time.monotonic() + 3021656 while (21657 subprocess.run( # noqa: S60321658 ["pg_isready", "-h", str(sockdir), "-U", "test"],21659 check=False,21660 capture_output=True,21661 ).returncode21662 != 021663 ):21664 # The socket appears before recovery finishes; createdb would21665 # fail with "the database system is starting up".21666 if time.monotonic() > deadline:21667 msg = "postgres did not start"21668> raise RuntimeError(msg)21669E RuntimeError: postgres did not start2167021671nixbot/tests/support.py:319: RuntimeError21672_________ ERROR at setup of test_scheduled_run_stream_replays_history __________21673[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142167421675request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>21676tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...atch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2167721678 @pytest.fixture(scope="module")21679 def postgres_dsn(21680 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory21681 ) -> Iterator[str]:21682 if shutil.which("initdb") is None:21683 pytest.skip("postgresql not available")21684 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")21685> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21686 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2168721688nixbot/tests/conftest.py:33: 21689_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21690/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21691 return next(self.gen)21692 ^^^^^^^^^^^^^^21693_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2169421695tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...atch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')21696dbname = 'web'2169721698 @contextlib.contextmanager21699 def ephemeral_postgres(21700 tmp_path_factory: pytest.TempPathFactory, dbname: str21701 ) -> Iterator[str]:21702 """Throwaway Postgres on a unix socket with migrations applied."""21703 datadir = tmp_path_factory.mktemp("pgdata")21704 sockdir = tmp_path_factory.mktemp("pgsock")21705 subprocess.run( # noqa: S60321706 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21707 check=True,21708 capture_output=True,21709 )21710 proc = subprocess.Popen( # noqa: S60321711 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21712 stdout=subprocess.DEVNULL,21713 stderr=subprocess.DEVNULL,21714 )21715 try:21716 deadline = time.monotonic() + 3021717 while (21718 subprocess.run( # noqa: S60321719 ["pg_isready", "-h", str(sockdir), "-U", "test"],21720 check=False,21721 capture_output=True,21722 ).returncode21723 != 021724 ):21725 # The socket appears before recovery finishes; createdb would21726 # fail with "the database system is starting up".21727 if time.monotonic() > deadline:21728 msg = "postgres did not start"21729> raise RuntimeError(msg)21730E RuntimeError: postgres did not start2173121732nixbot/tests/support.py:319: RuntimeError21733___________ ERROR at setup of test_scheduled_run_notify_build_events ___________21734[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142173521736request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>21737tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...atch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2173821739 @pytest.fixture(scope="module")21740 def postgres_dsn(21741 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory21742 ) -> Iterator[str]:21743 if shutil.which("initdb") is None:21744 pytest.skip("postgresql not available")21745 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")21746> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21747 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2174821749nixbot/tests/conftest.py:33: 21750_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21751/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21752 return next(self.gen)21753 ^^^^^^^^^^^^^^21754_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2175521756tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...atch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')21757dbname = 'web'2175821759 @contextlib.contextmanager21760 def ephemeral_postgres(21761 tmp_path_factory: pytest.TempPathFactory, dbname: str21762 ) -> Iterator[str]:21763 """Throwaway Postgres on a unix socket with migrations applied."""21764 datadir = tmp_path_factory.mktemp("pgdata")21765 sockdir = tmp_path_factory.mktemp("pgsock")21766 subprocess.run( # noqa: S60321767 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21768 check=True,21769 capture_output=True,21770 )21771 proc = subprocess.Popen( # noqa: S60321772 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21773 stdout=subprocess.DEVNULL,21774 stderr=subprocess.DEVNULL,21775 )21776 try:21777 deadline = time.monotonic() + 3021778 while (21779 subprocess.run( # noqa: S60321780 ["pg_isready", "-h", str(sockdir), "-U", "test"],21781 check=False,21782 capture_output=True,21783 ).returncode21784 != 021785 ):21786 # The socket appears before recovery finishes; createdb would21787 # fail with "the database system is starting up".21788 if time.monotonic() > deadline:21789 msg = "postgres did not start"21790> raise RuntimeError(msg)21791E RuntimeError: postgres did not start2179221793nixbot/tests/support.py:319: RuntimeError21794_________ ERROR at setup of test_failed_effect_reports_failure_status __________21795[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142179621797self = <Coroutine test_failed_effect_reports_failure_status>2179821799 def setup(self) -> None:21800 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21801 if runner_fixture_id not in self.fixturenames:21802 self.fixturenames.append(runner_fixture_id)21803 # When loop factories are configured, resolve the loop factory21804 # fixture early so that a factory variant change cascades cache21805 # invalidation before any async fixture checks its cache.21806 hook_caller = self.config.hook.pytest_asyncio_loop_factories21807 if hook_caller.get_hookimpls():21808 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21809> return super().setup()21810 ^^^^^^^^^^^^^^^2181121812/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21813_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21814nixbot/tests/conftest.py:33: in postgres_dsn21815 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21816 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21817/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21818 return next(self.gen)21819 ^^^^^^^^^^^^^^21820_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2182121822tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...atch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21823dbname = 'orchestrator'2182421825 @contextlib.contextmanager21826 def ephemeral_postgres(21827 tmp_path_factory: pytest.TempPathFactory, dbname: str21828 ) -> Iterator[str]:21829 """Throwaway Postgres on a unix socket with migrations applied."""21830 datadir = tmp_path_factory.mktemp("pgdata")21831 sockdir = tmp_path_factory.mktemp("pgsock")21832 subprocess.run( # noqa: S60321833 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21834 check=True,21835 capture_output=True,21836 )21837 proc = subprocess.Popen( # noqa: S60321838 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21839 stdout=subprocess.DEVNULL,21840 stderr=subprocess.DEVNULL,21841 )21842 try:21843 deadline = time.monotonic() + 3021844 while (21845 subprocess.run( # noqa: S60321846 ["pg_isready", "-h", str(sockdir), "-U", "test"],21847 check=False,21848 capture_output=True,21849 ).returncode21850 != 021851 ):21852 # The socket appears before recovery finishes; createdb would21853 # fail with "the database system is starting up".21854 if time.monotonic() > deadline:21855 msg = "postgres did not start"21856> raise RuntimeError(msg)21857E RuntimeError: postgres did not start2185821859nixbot/tests/support.py:319: RuntimeError21860_________________ ERROR at setup of test_api_log_toc_and_text __________________21861[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142186221863request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>21864tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...atch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2186521866 @pytest.fixture(scope="module")21867 def postgres_dsn(21868 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory21869 ) -> Iterator[str]:21870 if shutil.which("initdb") is None:21871 pytest.skip("postgresql not available")21872 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")21873> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21874 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2187521876nixbot/tests/conftest.py:33: 21877_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21878/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21879 return next(self.gen)21880 ^^^^^^^^^^^^^^21881_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2188221883tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...atch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')21884dbname = 'web'2188521886 @contextlib.contextmanager21887 def ephemeral_postgres(21888 tmp_path_factory: pytest.TempPathFactory, dbname: str21889 ) -> Iterator[str]:21890 """Throwaway Postgres on a unix socket with migrations applied."""21891 datadir = tmp_path_factory.mktemp("pgdata")21892 sockdir = tmp_path_factory.mktemp("pgsock")21893 subprocess.run( # noqa: S60321894 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21895 check=True,21896 capture_output=True,21897 )21898 proc = subprocess.Popen( # noqa: S60321899 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21900 stdout=subprocess.DEVNULL,21901 stderr=subprocess.DEVNULL,21902 )21903 try:21904 deadline = time.monotonic() + 3021905 while (21906 subprocess.run( # noqa: S60321907 ["pg_isready", "-h", str(sockdir), "-U", "test"],21908 check=False,21909 capture_output=True,21910 ).returncode21911 != 021912 ):21913 # The socket appears before recovery finishes; createdb would21914 # fail with "the database system is starting up".21915 if time.monotonic() > deadline:21916 msg = "postgres did not start"21917> raise RuntimeError(msg)21918E RuntimeError: postgres did not start2191921920nixbot/tests/support.py:319: RuntimeError21921________ ERROR at setup of test_post_process_error_does_not_wedge_build ________21922[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142192321924self = <Coroutine test_post_process_error_does_not_wedge_build>2192521926 def setup(self) -> None:21927 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"21928 if runner_fixture_id not in self.fixturenames:21929 self.fixturenames.append(runner_fixture_id)21930 # When loop factories are configured, resolve the loop factory21931 # fixture early so that a factory variant change cascades cache21932 # invalidation before any async fixture checks its cache.21933 hook_caller = self.config.hook.pytest_asyncio_loop_factories21934 if hook_caller.get_hookimpls():21935 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)21936> return super().setup()21937 ^^^^^^^^^^^^^^^2193821939/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 21940_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21941nixbot/tests/conftest.py:33: in postgres_dsn21942 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:21943 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^21944/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__21945 return next(self.gen)21946 ^^^^^^^^^^^^^^21947_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2194821949tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...atch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')21950dbname = 'orchestrator'2195121952 @contextlib.contextmanager21953 def ephemeral_postgres(21954 tmp_path_factory: pytest.TempPathFactory, dbname: str21955 ) -> Iterator[str]:21956 """Throwaway Postgres on a unix socket with migrations applied."""21957 datadir = tmp_path_factory.mktemp("pgdata")21958 sockdir = tmp_path_factory.mktemp("pgsock")21959 subprocess.run( # noqa: S60321960 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],21961 check=True,21962 capture_output=True,21963 )21964 proc = subprocess.Popen( # noqa: S60321965 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],21966 stdout=subprocess.DEVNULL,21967 stderr=subprocess.DEVNULL,21968 )21969 try:21970 deadline = time.monotonic() + 3021971 while (21972 subprocess.run( # noqa: S60321973 ["pg_isready", "-h", str(sockdir), "-U", "test"],21974 check=False,21975 capture_output=True,21976 ).returncode21977 != 021978 ):21979 # The socket appears before recovery finishes; createdb would21980 # fail with "the database system is starting up".21981 if time.monotonic() > deadline:21982 msg = "postgres did not start"21983> raise RuntimeError(msg)21984E RuntimeError: postgres did not start2198521986nixbot/tests/support.py:319: RuntimeError21987_____________ ERROR at setup of test_api_log_toc_flat_log_fallback _____________21988[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142198921990request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>21991tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...atch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2199221993 @pytest.fixture(scope="module")21994 def postgres_dsn(21995 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory21996 ) -> Iterator[str]:21997 if shutil.which("initdb") is None:21998 pytest.skip("postgresql not available")21999 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")22000> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22001 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2200222003nixbot/tests/conftest.py:33: 22004_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22005/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22006 return next(self.gen)22007 ^^^^^^^^^^^^^^22008_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2200922010tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...atch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')22011dbname = 'web'2201222013 @contextlib.contextmanager22014 def ephemeral_postgres(22015 tmp_path_factory: pytest.TempPathFactory, dbname: str22016 ) -> Iterator[str]:22017 """Throwaway Postgres on a unix socket with migrations applied."""22018 datadir = tmp_path_factory.mktemp("pgdata")22019 sockdir = tmp_path_factory.mktemp("pgsock")22020 subprocess.run( # noqa: S60322021 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22022 check=True,22023 capture_output=True,22024 )22025 proc = subprocess.Popen( # noqa: S60322026 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22027 stdout=subprocess.DEVNULL,22028 stderr=subprocess.DEVNULL,22029 )22030 try:22031 deadline = time.monotonic() + 3022032 while (22033 subprocess.run( # noqa: S60322034 ["pg_isready", "-h", str(sockdir), "-U", "test"],22035 check=False,22036 capture_output=True,22037 ).returncode22038 != 022039 ):22040 # The socket appears before recovery finishes; createdb would22041 # fail with "the database system is starting up".22042 if time.monotonic() > deadline:22043 msg = "postgres did not start"22044> raise RuntimeError(msg)22045E RuntimeError: postgres did not start2204622047nixbot/tests/support.py:319: RuntimeError22048__________________ ERROR at setup of test_api_log_stream_json __________________22049[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142205022051request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>22052tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...atch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2205322054 @pytest.fixture(scope="module")22055 def postgres_dsn(22056 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory22057 ) -> Iterator[str]:22058 if shutil.which("initdb") is None:22059 pytest.skip("postgresql not available")22060 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")22061> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22062 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2206322064nixbot/tests/conftest.py:33: 22065_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22066/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22067 return next(self.gen)22068 ^^^^^^^^^^^^^^22069_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2207022071tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...atch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')22072dbname = 'web'2207322074 @contextlib.contextmanager22075 def ephemeral_postgres(22076 tmp_path_factory: pytest.TempPathFactory, dbname: str22077 ) -> Iterator[str]:22078 """Throwaway Postgres on a unix socket with migrations applied."""22079 datadir = tmp_path_factory.mktemp("pgdata")22080 sockdir = tmp_path_factory.mktemp("pgsock")22081 subprocess.run( # noqa: S60322082 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22083 check=True,22084 capture_output=True,22085 )22086 proc = subprocess.Popen( # noqa: S60322087 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22088 stdout=subprocess.DEVNULL,22089 stderr=subprocess.DEVNULL,22090 )22091 try:22092 deadline = time.monotonic() + 3022093 while (22094 subprocess.run( # noqa: S60322095 ["pg_isready", "-h", str(sockdir), "-U", "test"],22096 check=False,22097 capture_output=True,22098 ).returncode22099 != 022100 ):22101 # The socket appears before recovery finishes; createdb would22102 # fail with "the database system is starting up".22103 if time.monotonic() > deadline:22104 msg = "postgres did not start"22105> raise RuntimeError(msg)22106E RuntimeError: postgres did not start2210722108nixbot/tests/support.py:319: RuntimeError22109_______ ERROR at setup of test_unexpected_eval_path_error_settles_build ________22110[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142211122112self = <Coroutine test_unexpected_eval_path_error_settles_build>2211322114 def setup(self) -> None:22115 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22116 if runner_fixture_id not in self.fixturenames:22117 self.fixturenames.append(runner_fixture_id)22118 # When loop factories are configured, resolve the loop factory22119 # fixture early so that a factory variant change cascades cache22120 # invalidation before any async fixture checks its cache.22121 hook_caller = self.config.hook.pytest_asyncio_loop_factories22122 if hook_caller.get_hookimpls():22123 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22124> return super().setup()22125 ^^^^^^^^^^^^^^^2212622127/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22128_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22129nixbot/tests/conftest.py:33: in postgres_dsn22130 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22131 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22132/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22133 return next(self.gen)22134 ^^^^^^^^^^^^^^22135_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2213622137tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...atch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22138dbname = 'orchestrator'2213922140 @contextlib.contextmanager22141 def ephemeral_postgres(22142 tmp_path_factory: pytest.TempPathFactory, dbname: str22143 ) -> Iterator[str]:22144 """Throwaway Postgres on a unix socket with migrations applied."""22145 datadir = tmp_path_factory.mktemp("pgdata")22146 sockdir = tmp_path_factory.mktemp("pgsock")22147 subprocess.run( # noqa: S60322148 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22149 check=True,22150 capture_output=True,22151 )22152 proc = subprocess.Popen( # noqa: S60322153 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22154 stdout=subprocess.DEVNULL,22155 stderr=subprocess.DEVNULL,22156 )22157 try:22158 deadline = time.monotonic() + 3022159 while (22160 subprocess.run( # noqa: S60322161 ["pg_isready", "-h", str(sockdir), "-U", "test"],22162 check=False,22163 capture_output=True,22164 ).returncode22165 != 022166 ):22167 # The socket appears before recovery finishes; createdb would22168 # fail with "the database system is starting up".22169 if time.monotonic() > deadline:22170 msg = "postgres did not start"22171> raise RuntimeError(msg)22172E RuntimeError: postgres did not start2217322174nixbot/tests/support.py:319: RuntimeError22175_______________ ERROR at setup of test_build_eval_stats_surface ________________22176[gw0] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142217722178request = <SubRequest 'postgres_dsn' for <Function test_html_error_pages>>22179tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...atch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')2218022181 @pytest.fixture(scope="module")22182 def postgres_dsn(22183 request: pytest.FixtureRequest, tmp_path_factory: pytest.TempPathFactory22184 ) -> Iterator[str]:22185 if shutil.which("initdb") is None:22186 pytest.skip("postgresql not available")22187 dbname = request.module.__name__.rsplit(".", 1)[-1].removeprefix("test_")22188> with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22189 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^2219022191nixbot/tests/conftest.py:33: 22192_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22193/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22194 return next(self.gen)22195 ^^^^^^^^^^^^^^22196_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2219722198tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...atch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw0'), _retention_count=3, _retention_policy='all')22199dbname = 'web'2220022201 @contextlib.contextmanager22202 def ephemeral_postgres(22203 tmp_path_factory: pytest.TempPathFactory, dbname: str22204 ) -> Iterator[str]:22205 """Throwaway Postgres on a unix socket with migrations applied."""22206 datadir = tmp_path_factory.mktemp("pgdata")22207 sockdir = tmp_path_factory.mktemp("pgsock")22208 subprocess.run( # noqa: S60322209 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22210 check=True,22211 capture_output=True,22212 )22213 proc = subprocess.Popen( # noqa: S60322214 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22215 stdout=subprocess.DEVNULL,22216 stderr=subprocess.DEVNULL,22217 )22218 try:22219 deadline = time.monotonic() + 3022220 while (22221 subprocess.run( # noqa: S60322222 ["pg_isready", "-h", str(sockdir), "-U", "test"],22223 check=False,22224 capture_output=True,22225 ).returncode22226 != 022227 ):22228 # The socket appears before recovery finishes; createdb would22229 # fail with "the database system is starting up".22230 if time.monotonic() > deadline:22231 msg = "postgres did not start"22232> raise RuntimeError(msg)22233E RuntimeError: postgres did not start2223422235nixbot/tests/support.py:319: RuntimeError22236____ ERROR at setup of test_reuse_empty_succeeded_build_posts_eval_success _____22237[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142223822239self = <Coroutine test_reuse_empty_succeeded_build_posts_eval_success>2224022241 def setup(self) -> None:22242 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22243 if runner_fixture_id not in self.fixturenames:22244 self.fixturenames.append(runner_fixture_id)22245 # When loop factories are configured, resolve the loop factory22246 # fixture early so that a factory variant change cascades cache22247 # invalidation before any async fixture checks its cache.22248 hook_caller = self.config.hook.pytest_asyncio_loop_factories22249 if hook_caller.get_hookimpls():22250 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22251> return super().setup()22252 ^^^^^^^^^^^^^^^2225322254/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22255_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22256nixbot/tests/conftest.py:33: in postgres_dsn22257 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22258 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22259/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22260 return next(self.gen)22261 ^^^^^^^^^^^^^^22262_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2226322264tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...atch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22265dbname = 'orchestrator'2226622267 @contextlib.contextmanager22268 def ephemeral_postgres(22269 tmp_path_factory: pytest.TempPathFactory, dbname: str22270 ) -> Iterator[str]:22271 """Throwaway Postgres on a unix socket with migrations applied."""22272 datadir = tmp_path_factory.mktemp("pgdata")22273 sockdir = tmp_path_factory.mktemp("pgsock")22274 subprocess.run( # noqa: S60322275 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22276 check=True,22277 capture_output=True,22278 )22279 proc = subprocess.Popen( # noqa: S60322280 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22281 stdout=subprocess.DEVNULL,22282 stderr=subprocess.DEVNULL,22283 )22284 try:22285 deadline = time.monotonic() + 3022286 while (22287 subprocess.run( # noqa: S60322288 ["pg_isready", "-h", str(sockdir), "-U", "test"],22289 check=False,22290 capture_output=True,22291 ).returncode22292 != 022293 ):22294 # The socket appears before recovery finishes; createdb would22295 # fail with "the database system is starting up".22296 if time.monotonic() > deadline:22297 msg = "postgres did not start"22298> raise RuntimeError(msg)22299E RuntimeError: postgres did not start2230022301nixbot/tests/support.py:319: RuntimeError22302__ ERROR at setup of test_stale_event_reusing_old_build_does_not_cancel_newer __22303[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142230422305self = <Coroutine test_stale_event_reusing_old_build_does_not_cancel_newer>2230622307 def setup(self) -> None:22308 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22309 if runner_fixture_id not in self.fixturenames:22310 self.fixturenames.append(runner_fixture_id)22311 # When loop factories are configured, resolve the loop factory22312 # fixture early so that a factory variant change cascades cache22313 # invalidation before any async fixture checks its cache.22314 hook_caller = self.config.hook.pytest_asyncio_loop_factories22315 if hook_caller.get_hookimpls():22316 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22317> return super().setup()22318 ^^^^^^^^^^^^^^^2231922320/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22321_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22322nixbot/tests/conftest.py:33: in postgres_dsn22323 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22324 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22325/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22326 return next(self.gen)22327 ^^^^^^^^^^^^^^22328_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2232922330tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...atch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22331dbname = 'orchestrator'2233222333 @contextlib.contextmanager22334 def ephemeral_postgres(22335 tmp_path_factory: pytest.TempPathFactory, dbname: str22336 ) -> Iterator[str]:22337 """Throwaway Postgres on a unix socket with migrations applied."""22338 datadir = tmp_path_factory.mktemp("pgdata")22339 sockdir = tmp_path_factory.mktemp("pgsock")22340 subprocess.run( # noqa: S60322341 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22342 check=True,22343 capture_output=True,22344 )22345 proc = subprocess.Popen( # noqa: S60322346 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22347 stdout=subprocess.DEVNULL,22348 stderr=subprocess.DEVNULL,22349 )22350 try:22351 deadline = time.monotonic() + 3022352 while (22353 subprocess.run( # noqa: S60322354 ["pg_isready", "-h", str(sockdir), "-U", "test"],22355 check=False,22356 capture_output=True,22357 ).returncode22358 != 022359 ):22360 # The socket appears before recovery finishes; createdb would22361 # fail with "the database system is starting up".22362 if time.monotonic() > deadline:22363 msg = "postgres did not start"22364> raise RuntimeError(msg)22365E RuntimeError: postgres did not start2236622367nixbot/tests/support.py:319: RuntimeError22368______ ERROR at setup of test_reuse_for_default_branch_push_runs_effects _______22369[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142237022371self = <Coroutine test_reuse_for_default_branch_push_runs_effects>2237222373 def setup(self) -> None:22374 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22375 if runner_fixture_id not in self.fixturenames:22376 self.fixturenames.append(runner_fixture_id)22377 # When loop factories are configured, resolve the loop factory22378 # fixture early so that a factory variant change cascades cache22379 # invalidation before any async fixture checks its cache.22380 hook_caller = self.config.hook.pytest_asyncio_loop_factories22381 if hook_caller.get_hookimpls():22382 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22383> return super().setup()22384 ^^^^^^^^^^^^^^^2238522386/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22387_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22388nixbot/tests/conftest.py:33: in postgres_dsn22389 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22390 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22391/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22392 return next(self.gen)22393 ^^^^^^^^^^^^^^22394_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2239522396tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...atch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22397dbname = 'orchestrator'2239822399 @contextlib.contextmanager22400 def ephemeral_postgres(22401 tmp_path_factory: pytest.TempPathFactory, dbname: str22402 ) -> Iterator[str]:22403 """Throwaway Postgres on a unix socket with migrations applied."""22404 datadir = tmp_path_factory.mktemp("pgdata")22405 sockdir = tmp_path_factory.mktemp("pgsock")22406 subprocess.run( # noqa: S60322407 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22408 check=True,22409 capture_output=True,22410 )22411 proc = subprocess.Popen( # noqa: S60322412 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22413 stdout=subprocess.DEVNULL,22414 stderr=subprocess.DEVNULL,22415 )22416 try:22417 deadline = time.monotonic() + 3022418 while (22419 subprocess.run( # noqa: S60322420 ["pg_isready", "-h", str(sockdir), "-U", "test"],22421 check=False,22422 capture_output=True,22423 ).returncode22424 != 022425 ):22426 # The socket appears before recovery finishes; createdb would22427 # fail with "the database system is starting up".22428 if time.monotonic() > deadline:22429 msg = "postgres did not start"22430> raise RuntimeError(msg)22431E RuntimeError: postgres did not start2243222433nixbot/tests/support.py:319: RuntimeError22434__ ERROR at setup of test_tag_reusing_deployed_build_delivers_its_own_effects __22435[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142243622437self = <Coroutine test_tag_reusing_deployed_build_delivers_its_own_effects>2243822439 def setup(self) -> None:22440 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22441 if runner_fixture_id not in self.fixturenames:22442 self.fixturenames.append(runner_fixture_id)22443 # When loop factories are configured, resolve the loop factory22444 # fixture early so that a factory variant change cascades cache22445 # invalidation before any async fixture checks its cache.22446 hook_caller = self.config.hook.pytest_asyncio_loop_factories22447 if hook_caller.get_hookimpls():22448 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22449> return super().setup()22450 ^^^^^^^^^^^^^^^2245122452/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22453_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22454nixbot/tests/conftest.py:33: in postgres_dsn22455 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22456 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22457/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22458 return next(self.gen)22459 ^^^^^^^^^^^^^^22460_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2246122462tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...atch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22463dbname = 'orchestrator'2246422465 @contextlib.contextmanager22466 def ephemeral_postgres(22467 tmp_path_factory: pytest.TempPathFactory, dbname: str22468 ) -> Iterator[str]:22469 """Throwaway Postgres on a unix socket with migrations applied."""22470 datadir = tmp_path_factory.mktemp("pgdata")22471 sockdir = tmp_path_factory.mktemp("pgsock")22472 subprocess.run( # noqa: S60322473 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22474 check=True,22475 capture_output=True,22476 )22477 proc = subprocess.Popen( # noqa: S60322478 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22479 stdout=subprocess.DEVNULL,22480 stderr=subprocess.DEVNULL,22481 )22482 try:22483 deadline = time.monotonic() + 3022484 while (22485 subprocess.run( # noqa: S60322486 ["pg_isready", "-h", str(sockdir), "-U", "test"],22487 check=False,22488 capture_output=True,22489 ).returncode22490 != 022491 ):22492 # The socket appears before recovery finishes; createdb would22493 # fail with "the database system is starting up".22494 if time.monotonic() > deadline:22495 msg = "postgres did not start"22496> raise RuntimeError(msg)22497E RuntimeError: postgres did not start2249822499nixbot/tests/support.py:319: RuntimeError22500__ ERROR at setup of test_tag_attached_to_in_flight_build_delivers_on_success __22501[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142250222503self = <Coroutine test_tag_attached_to_in_flight_build_delivers_on_success>2250422505 def setup(self) -> None:22506 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22507 if runner_fixture_id not in self.fixturenames:22508 self.fixturenames.append(runner_fixture_id)22509 # When loop factories are configured, resolve the loop factory22510 # fixture early so that a factory variant change cascades cache22511 # invalidation before any async fixture checks its cache.22512 hook_caller = self.config.hook.pytest_asyncio_loop_factories22513 if hook_caller.get_hookimpls():22514 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22515> return super().setup()22516 ^^^^^^^^^^^^^^^2251722518/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22519_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22520nixbot/tests/conftest.py:33: in postgres_dsn22521 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22522 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22523/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22524 return next(self.gen)22525 ^^^^^^^^^^^^^^22526_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2252722528tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...atch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22529dbname = 'orchestrator'2253022531 @contextlib.contextmanager22532 def ephemeral_postgres(22533 tmp_path_factory: pytest.TempPathFactory, dbname: str22534 ) -> Iterator[str]:22535 """Throwaway Postgres on a unix socket with migrations applied."""22536 datadir = tmp_path_factory.mktemp("pgdata")22537 sockdir = tmp_path_factory.mktemp("pgsock")22538 subprocess.run( # noqa: S60322539 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22540 check=True,22541 capture_output=True,22542 )22543 proc = subprocess.Popen( # noqa: S60322544 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22545 stdout=subprocess.DEVNULL,22546 stderr=subprocess.DEVNULL,22547 )22548 try:22549 deadline = time.monotonic() + 3022550 while (22551 subprocess.run( # noqa: S60322552 ["pg_isready", "-h", str(sockdir), "-U", "test"],22553 check=False,22554 capture_output=True,22555 ).returncode22556 != 022557 ):22558 # The socket appears before recovery finishes; createdb would22559 # fail with "the database system is starting up".22560 if time.monotonic() > deadline:22561 msg = "postgres did not start"22562> raise RuntimeError(msg)22563E RuntimeError: postgres did not start2256422565nixbot/tests/support.py:319: RuntimeError22566______ ERROR at setup of test_restart_of_gated_build_settles_effect_rows _______22567[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142256822569self = <Coroutine test_restart_of_gated_build_settles_effect_rows>2257022571 def setup(self) -> None:22572 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22573 if runner_fixture_id not in self.fixturenames:22574 self.fixturenames.append(runner_fixture_id)22575 # When loop factories are configured, resolve the loop factory22576 # fixture early so that a factory variant change cascades cache22577 # invalidation before any async fixture checks its cache.22578 hook_caller = self.config.hook.pytest_asyncio_loop_factories22579 if hook_caller.get_hookimpls():22580 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22581> return super().setup()22582 ^^^^^^^^^^^^^^^2258322584/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22585_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22586nixbot/tests/conftest.py:33: in postgres_dsn22587 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22588 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22589/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22590 return next(self.gen)22591 ^^^^^^^^^^^^^^22592_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2259322594tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...atch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22595dbname = 'orchestrator'2259622597 @contextlib.contextmanager22598 def ephemeral_postgres(22599 tmp_path_factory: pytest.TempPathFactory, dbname: str22600 ) -> Iterator[str]:22601 """Throwaway Postgres on a unix socket with migrations applied."""22602 datadir = tmp_path_factory.mktemp("pgdata")22603 sockdir = tmp_path_factory.mktemp("pgsock")22604 subprocess.run( # noqa: S60322605 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22606 check=True,22607 capture_output=True,22608 )22609 proc = subprocess.Popen( # noqa: S60322610 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22611 stdout=subprocess.DEVNULL,22612 stderr=subprocess.DEVNULL,22613 )22614 try:22615 deadline = time.monotonic() + 3022616 while (22617 subprocess.run( # noqa: S60322618 ["pg_isready", "-h", str(sockdir), "-U", "test"],22619 check=False,22620 capture_output=True,22621 ).returncode22622 != 022623 ):22624 # The socket appears before recovery finishes; createdb would22625 # fail with "the database system is starting up".22626 if time.monotonic() > deadline:22627 msg = "postgres did not start"22628> raise RuntimeError(msg)22629E RuntimeError: postgres did not start2263022631nixbot/tests/support.py:319: RuntimeError22632________ ERROR at setup of test_restart_build_drops_queued_effect_items ________22633[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142263422635self = <Coroutine test_restart_build_drops_queued_effect_items>2263622637 def setup(self) -> None:22638 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22639 if runner_fixture_id not in self.fixturenames:22640 self.fixturenames.append(runner_fixture_id)22641 # When loop factories are configured, resolve the loop factory22642 # fixture early so that a factory variant change cascades cache22643 # invalidation before any async fixture checks its cache.22644 hook_caller = self.config.hook.pytest_asyncio_loop_factories22645 if hook_caller.get_hookimpls():22646 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22647> return super().setup()22648 ^^^^^^^^^^^^^^^2264922650/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22651_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22652nixbot/tests/conftest.py:33: in postgres_dsn22653 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22654 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22655/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22656 return next(self.gen)22657 ^^^^^^^^^^^^^^22658_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2265922660tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...atch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22661dbname = 'orchestrator'2266222663 @contextlib.contextmanager22664 def ephemeral_postgres(22665 tmp_path_factory: pytest.TempPathFactory, dbname: str22666 ) -> Iterator[str]:22667 """Throwaway Postgres on a unix socket with migrations applied."""22668 datadir = tmp_path_factory.mktemp("pgdata")22669 sockdir = tmp_path_factory.mktemp("pgsock")22670 subprocess.run( # noqa: S60322671 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22672 check=True,22673 capture_output=True,22674 )22675 proc = subprocess.Popen( # noqa: S60322676 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22677 stdout=subprocess.DEVNULL,22678 stderr=subprocess.DEVNULL,22679 )22680 try:22681 deadline = time.monotonic() + 3022682 while (22683 subprocess.run( # noqa: S60322684 ["pg_isready", "-h", str(sockdir), "-U", "test"],22685 check=False,22686 capture_output=True,22687 ).returncode22688 != 022689 ):22690 # The socket appears before recovery finishes; createdb would22691 # fail with "the database system is starting up".22692 if time.monotonic() > deadline:22693 msg = "postgres did not start"22694> raise RuntimeError(msg)22695E RuntimeError: postgres did not start2269622697nixbot/tests/support.py:319: RuntimeError22698___ ERROR at setup of test_restart_effects_after_pr_attach_keeps_effects_ref ___22699[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142270022701self = <Coroutine test_restart_effects_after_pr_attach_keeps_effects_ref>2270222703 def setup(self) -> None:22704 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22705 if runner_fixture_id not in self.fixturenames:22706 self.fixturenames.append(runner_fixture_id)22707 # When loop factories are configured, resolve the loop factory22708 # fixture early so that a factory variant change cascades cache22709 # invalidation before any async fixture checks its cache.22710 hook_caller = self.config.hook.pytest_asyncio_loop_factories22711 if hook_caller.get_hookimpls():22712 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22713> return super().setup()22714 ^^^^^^^^^^^^^^^2271522716/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22717_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22718nixbot/tests/conftest.py:33: in postgres_dsn22719 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22720 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22721/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22722 return next(self.gen)22723 ^^^^^^^^^^^^^^22724_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2272522726tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...atch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22727dbname = 'orchestrator'2272822729 @contextlib.contextmanager22730 def ephemeral_postgres(22731 tmp_path_factory: pytest.TempPathFactory, dbname: str22732 ) -> Iterator[str]:22733 """Throwaway Postgres on a unix socket with migrations applied."""22734 datadir = tmp_path_factory.mktemp("pgdata")22735 sockdir = tmp_path_factory.mktemp("pgsock")22736 subprocess.run( # noqa: S60322737 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22738 check=True,22739 capture_output=True,22740 )22741 proc = subprocess.Popen( # noqa: S60322742 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22743 stdout=subprocess.DEVNULL,22744 stderr=subprocess.DEVNULL,22745 )22746 try:22747 deadline = time.monotonic() + 3022748 while (22749 subprocess.run( # noqa: S60322750 ["pg_isready", "-h", str(sockdir), "-U", "test"],22751 check=False,22752 capture_output=True,22753 ).returncode22754 != 022755 ):22756 # The socket appears before recovery finishes; createdb would22757 # fail with "the database system is starting up".22758 if time.monotonic() > deadline:22759 msg = "postgres did not start"22760> raise RuntimeError(msg)22761E RuntimeError: postgres did not start2276222763nixbot/tests/support.py:319: RuntimeError22764_______ ERROR at setup of test_gated_restart_then_allowed_reuse_deploys ________22765[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142276622767self = <Coroutine test_gated_restart_then_allowed_reuse_deploys>2276822769 def setup(self) -> None:22770 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22771 if runner_fixture_id not in self.fixturenames:22772 self.fixturenames.append(runner_fixture_id)22773 # When loop factories are configured, resolve the loop factory22774 # fixture early so that a factory variant change cascades cache22775 # invalidation before any async fixture checks its cache.22776 hook_caller = self.config.hook.pytest_asyncio_loop_factories22777 if hook_caller.get_hookimpls():22778 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22779> return super().setup()22780 ^^^^^^^^^^^^^^^2278122782/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22783_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22784nixbot/tests/conftest.py:33: in postgres_dsn22785 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22786 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22787/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22788 return next(self.gen)22789 ^^^^^^^^^^^^^^22790_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2279122792tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...atch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22793dbname = 'orchestrator'2279422795 @contextlib.contextmanager22796 def ephemeral_postgres(22797 tmp_path_factory: pytest.TempPathFactory, dbname: str22798 ) -> Iterator[str]:22799 """Throwaway Postgres on a unix socket with migrations applied."""22800 datadir = tmp_path_factory.mktemp("pgdata")22801 sockdir = tmp_path_factory.mktemp("pgsock")22802 subprocess.run( # noqa: S60322803 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22804 check=True,22805 capture_output=True,22806 )22807 proc = subprocess.Popen( # noqa: S60322808 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22809 stdout=subprocess.DEVNULL,22810 stderr=subprocess.DEVNULL,22811 )22812 try:22813 deadline = time.monotonic() + 3022814 while (22815 subprocess.run( # noqa: S60322816 ["pg_isready", "-h", str(sockdir), "-U", "test"],22817 check=False,22818 capture_output=True,22819 ).returncode22820 != 022821 ):22822 # The socket appears before recovery finishes; createdb would22823 # fail with "the database system is starting up".22824 if time.monotonic() > deadline:22825 msg = "postgres did not start"22826> raise RuntimeError(msg)22827E RuntimeError: postgres did not start2282822829nixbot/tests/support.py:319: RuntimeError22830_____ ERROR at setup of test_rerun_single_effect_takes_pending_dependents ______22831[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142283222833self = <Coroutine test_rerun_single_effect_takes_pending_dependents>2283422835 def setup(self) -> None:22836 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22837 if runner_fixture_id not in self.fixturenames:22838 self.fixturenames.append(runner_fixture_id)22839 # When loop factories are configured, resolve the loop factory22840 # fixture early so that a factory variant change cascades cache22841 # invalidation before any async fixture checks its cache.22842 hook_caller = self.config.hook.pytest_asyncio_loop_factories22843 if hook_caller.get_hookimpls():22844 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22845> return super().setup()22846 ^^^^^^^^^^^^^^^2284722848/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22849_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22850nixbot/tests/conftest.py:33: in postgres_dsn22851 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22852 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22853/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22854 return next(self.gen)22855 ^^^^^^^^^^^^^^22856_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2285722858tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...atch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22859dbname = 'orchestrator'2286022861 @contextlib.contextmanager22862 def ephemeral_postgres(22863 tmp_path_factory: pytest.TempPathFactory, dbname: str22864 ) -> Iterator[str]:22865 """Throwaway Postgres on a unix socket with migrations applied."""22866 datadir = tmp_path_factory.mktemp("pgdata")22867 sockdir = tmp_path_factory.mktemp("pgsock")22868 subprocess.run( # noqa: S60322869 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22870 check=True,22871 capture_output=True,22872 )22873 proc = subprocess.Popen( # noqa: S60322874 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22875 stdout=subprocess.DEVNULL,22876 stderr=subprocess.DEVNULL,22877 )22878 try:22879 deadline = time.monotonic() + 3022880 while (22881 subprocess.run( # noqa: S60322882 ["pg_isready", "-h", str(sockdir), "-U", "test"],22883 check=False,22884 capture_output=True,22885 ).returncode22886 != 022887 ):22888 # The socket appears before recovery finishes; createdb would22889 # fail with "the database system is starting up".22890 if time.monotonic() > deadline:22891 msg = "postgres did not start"22892> raise RuntimeError(msg)22893E RuntimeError: postgres did not start2289422895nixbot/tests/support.py:319: RuntimeError22896______ ERROR at setup of test_reuse_replays_effect_statuses_to_new_commit ______22897[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142289822899self = <Coroutine test_reuse_replays_effect_statuses_to_new_commit>2290022901 def setup(self) -> None:22902 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22903 if runner_fixture_id not in self.fixturenames:22904 self.fixturenames.append(runner_fixture_id)22905 # When loop factories are configured, resolve the loop factory22906 # fixture early so that a factory variant change cascades cache22907 # invalidation before any async fixture checks its cache.22908 hook_caller = self.config.hook.pytest_asyncio_loop_factories22909 if hook_caller.get_hookimpls():22910 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22911> return super().setup()22912 ^^^^^^^^^^^^^^^2291322914/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22915_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22916nixbot/tests/conftest.py:33: in postgres_dsn22917 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22918 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22919/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22920 return next(self.gen)22921 ^^^^^^^^^^^^^^22922_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2292322924tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...atch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22925dbname = 'orchestrator'2292622927 @contextlib.contextmanager22928 def ephemeral_postgres(22929 tmp_path_factory: pytest.TempPathFactory, dbname: str22930 ) -> Iterator[str]:22931 """Throwaway Postgres on a unix socket with migrations applied."""22932 datadir = tmp_path_factory.mktemp("pgdata")22933 sockdir = tmp_path_factory.mktemp("pgsock")22934 subprocess.run( # noqa: S60322935 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],22936 check=True,22937 capture_output=True,22938 )22939 proc = subprocess.Popen( # noqa: S60322940 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],22941 stdout=subprocess.DEVNULL,22942 stderr=subprocess.DEVNULL,22943 )22944 try:22945 deadline = time.monotonic() + 3022946 while (22947 subprocess.run( # noqa: S60322948 ["pg_isready", "-h", str(sockdir), "-U", "test"],22949 check=False,22950 capture_output=True,22951 ).returncode22952 != 022953 ):22954 # The socket appears before recovery finishes; createdb would22955 # fail with "the database system is starting up".22956 if time.monotonic() > deadline:22957 msg = "postgres did not start"22958> raise RuntimeError(msg)22959E RuntimeError: postgres did not start2296022961nixbot/tests/support.py:319: RuntimeError22962____ ERROR at setup of test_attach_to_already_terminal_build_replays_status ____22963[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142296422965self = <Coroutine test_attach_to_already_terminal_build_replays_status>2296622967 def setup(self) -> None:22968 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"22969 if runner_fixture_id not in self.fixturenames:22970 self.fixturenames.append(runner_fixture_id)22971 # When loop factories are configured, resolve the loop factory22972 # fixture early so that a factory variant change cascades cache22973 # invalidation before any async fixture checks its cache.22974 hook_caller = self.config.hook.pytest_asyncio_loop_factories22975 if hook_caller.get_hookimpls():22976 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)22977> return super().setup()22978 ^^^^^^^^^^^^^^^2297922980/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 22981_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22982nixbot/tests/conftest.py:33: in postgres_dsn22983 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:22984 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^22985/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__22986 return next(self.gen)22987 ^^^^^^^^^^^^^^22988_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2298922990tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...atch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')22991dbname = 'orchestrator'2299222993 @contextlib.contextmanager22994 def ephemeral_postgres(22995 tmp_path_factory: pytest.TempPathFactory, dbname: str22996 ) -> Iterator[str]:22997 """Throwaway Postgres on a unix socket with migrations applied."""22998 datadir = tmp_path_factory.mktemp("pgdata")22999 sockdir = tmp_path_factory.mktemp("pgsock")23000 subprocess.run( # noqa: S60323001 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],23002 check=True,23003 capture_output=True,23004 )23005 proc = subprocess.Popen( # noqa: S60323006 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],23007 stdout=subprocess.DEVNULL,23008 stderr=subprocess.DEVNULL,23009 )23010 try:23011 deadline = time.monotonic() + 3023012 while (23013 subprocess.run( # noqa: S60323014 ["pg_isready", "-h", str(sockdir), "-U", "test"],23015 check=False,23016 capture_output=True,23017 ).returncode23018 != 023019 ):23020 # The socket appears before recovery finishes; createdb would23021 # fail with "the database system is starting up".23022 if time.monotonic() > deadline:23023 msg = "postgres did not start"23024> raise RuntimeError(msg)23025E RuntimeError: postgres did not start2302623027nixbot/tests/support.py:319: RuntimeError23028___ ERROR at setup of test_cancel_during_eval_resolves_linked_eval_contexts ____23029[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142303023031self = <Coroutine test_cancel_during_eval_resolves_linked_eval_contexts>2303223033 def setup(self) -> None:23034 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"23035 if runner_fixture_id not in self.fixturenames:23036 self.fixturenames.append(runner_fixture_id)23037 # When loop factories are configured, resolve the loop factory23038 # fixture early so that a factory variant change cascades cache23039 # invalidation before any async fixture checks its cache.23040 hook_caller = self.config.hook.pytest_asyncio_loop_factories23041 if hook_caller.get_hookimpls():23042 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)23043> return super().setup()23044 ^^^^^^^^^^^^^^^2304523046/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 23047_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 23048nixbot/tests/conftest.py:33: in postgres_dsn23049 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:23050 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^23051/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__23052 return next(self.gen)23053 ^^^^^^^^^^^^^^23054_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2305523056tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...atch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')23057dbname = 'orchestrator'2305823059 @contextlib.contextmanager23060 def ephemeral_postgres(23061 tmp_path_factory: pytest.TempPathFactory, dbname: str23062 ) -> Iterator[str]:23063 """Throwaway Postgres on a unix socket with migrations applied."""23064 datadir = tmp_path_factory.mktemp("pgdata")23065 sockdir = tmp_path_factory.mktemp("pgsock")23066 subprocess.run( # noqa: S60323067 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],23068 check=True,23069 capture_output=True,23070 )23071 proc = subprocess.Popen( # noqa: S60323072 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],23073 stdout=subprocess.DEVNULL,23074 stderr=subprocess.DEVNULL,23075 )23076 try:23077 deadline = time.monotonic() + 3023078 while (23079 subprocess.run( # noqa: S60323080 ["pg_isready", "-h", str(sockdir), "-U", "test"],23081 check=False,23082 capture_output=True,23083 ).returncode23084 != 023085 ):23086 # The socket appears before recovery finishes; createdb would23087 # fail with "the database system is starting up".23088 if time.monotonic() > deadline:23089 msg = "postgres did not start"23090> raise RuntimeError(msg)23091E RuntimeError: postgres did not start2309223093nixbot/tests/support.py:319: RuntimeError23094____ ERROR at setup of test_effect_log_does_not_collide_with_attribute_log _____23095[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142309623097self = <Coroutine test_effect_log_does_not_collide_with_attribute_log>2309823099 def setup(self) -> None:23100 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"23101 if runner_fixture_id not in self.fixturenames:23102 self.fixturenames.append(runner_fixture_id)23103 # When loop factories are configured, resolve the loop factory23104 # fixture early so that a factory variant change cascades cache23105 # invalidation before any async fixture checks its cache.23106 hook_caller = self.config.hook.pytest_asyncio_loop_factories23107 if hook_caller.get_hookimpls():23108 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)23109> return super().setup()23110 ^^^^^^^^^^^^^^^2311123112/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 23113_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 23114nixbot/tests/conftest.py:33: in postgres_dsn23115 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:23116 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^23117/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__23118 return next(self.gen)23119 ^^^^^^^^^^^^^^23120_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2312123122tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...atch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')23123dbname = 'orchestrator'2312423125 @contextlib.contextmanager23126 def ephemeral_postgres(23127 tmp_path_factory: pytest.TempPathFactory, dbname: str23128 ) -> Iterator[str]:23129 """Throwaway Postgres on a unix socket with migrations applied."""23130 datadir = tmp_path_factory.mktemp("pgdata")23131 sockdir = tmp_path_factory.mktemp("pgsock")23132 subprocess.run( # noqa: S60323133 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],23134 check=True,23135 capture_output=True,23136 )23137 proc = subprocess.Popen( # noqa: S60323138 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],23139 stdout=subprocess.DEVNULL,23140 stderr=subprocess.DEVNULL,23141 )23142 try:23143 deadline = time.monotonic() + 3023144 while (23145 subprocess.run( # noqa: S60323146 ["pg_isready", "-h", str(sockdir), "-U", "test"],23147 check=False,23148 capture_output=True,23149 ).returncode23150 != 023151 ):23152 # The socket appears before recovery finishes; createdb would23153 # fail with "the database system is starting up".23154 if time.monotonic() > deadline:23155 msg = "postgres did not start"23156> raise RuntimeError(msg)23157E RuntimeError: postgres did not start2315823159nixbot/tests/support.py:319: RuntimeError23160__________ ERROR at setup of test_post_process_paths_are_forge_scoped __________23161[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142316223163self = <Coroutine test_post_process_paths_are_forge_scoped>2316423165 def setup(self) -> None:23166 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"23167 if runner_fixture_id not in self.fixturenames:23168 self.fixturenames.append(runner_fixture_id)23169 # When loop factories are configured, resolve the loop factory23170 # fixture early so that a factory variant change cascades cache23171 # invalidation before any async fixture checks its cache.23172 hook_caller = self.config.hook.pytest_asyncio_loop_factories23173 if hook_caller.get_hookimpls():23174 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)23175> return super().setup()23176 ^^^^^^^^^^^^^^^2317723178/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 23179_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 23180nixbot/tests/conftest.py:33: in postgres_dsn23181 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:23182 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^23183/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__23184 return next(self.gen)23185 ^^^^^^^^^^^^^^23186_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2318723188tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...atch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')23189dbname = 'orchestrator'2319023191 @contextlib.contextmanager23192 def ephemeral_postgres(23193 tmp_path_factory: pytest.TempPathFactory, dbname: str23194 ) -> Iterator[str]:23195 """Throwaway Postgres on a unix socket with migrations applied."""23196 datadir = tmp_path_factory.mktemp("pgdata")23197 sockdir = tmp_path_factory.mktemp("pgsock")23198 subprocess.run( # noqa: S60323199 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],23200 check=True,23201 capture_output=True,23202 )23203 proc = subprocess.Popen( # noqa: S60323204 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],23205 stdout=subprocess.DEVNULL,23206 stderr=subprocess.DEVNULL,23207 )23208 try:23209 deadline = time.monotonic() + 3023210 while (23211 subprocess.run( # noqa: S60323212 ["pg_isready", "-h", str(sockdir), "-U", "test"],23213 check=False,23214 capture_output=True,23215 ).returncode23216 != 023217 ):23218 # The socket appears before recovery finishes; createdb would23219 # fail with "the database system is starting up".23220 if time.monotonic() > deadline:23221 msg = "postgres did not start"23222> raise RuntimeError(msg)23223E RuntimeError: postgres did not start2322423225nixbot/tests/support.py:319: RuntimeError23226_______ ERROR at setup of test_effects_phase_error_keeps_succeeded_build _______23227[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142322823229self = <Coroutine test_effects_phase_error_keeps_succeeded_build>2323023231 def setup(self) -> None:23232 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"23233 if runner_fixture_id not in self.fixturenames:23234 self.fixturenames.append(runner_fixture_id)23235 # When loop factories are configured, resolve the loop factory23236 # fixture early so that a factory variant change cascades cache23237 # invalidation before any async fixture checks its cache.23238 hook_caller = self.config.hook.pytest_asyncio_loop_factories23239 if hook_caller.get_hookimpls():23240 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)23241> return super().setup()23242 ^^^^^^^^^^^^^^^2324323244/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 23245_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 23246nixbot/tests/conftest.py:33: in postgres_dsn23247 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:23248 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^23249/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__23250 return next(self.gen)23251 ^^^^^^^^^^^^^^23252_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2325323254tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...atch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')23255dbname = 'orchestrator'2325623257 @contextlib.contextmanager23258 def ephemeral_postgres(23259 tmp_path_factory: pytest.TempPathFactory, dbname: str23260 ) -> Iterator[str]:23261 """Throwaway Postgres on a unix socket with migrations applied."""23262 datadir = tmp_path_factory.mktemp("pgdata")23263 sockdir = tmp_path_factory.mktemp("pgsock")23264 subprocess.run( # noqa: S60323265 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],23266 check=True,23267 capture_output=True,23268 )23269 proc = subprocess.Popen( # noqa: S60323270 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],23271 stdout=subprocess.DEVNULL,23272 stderr=subprocess.DEVNULL,23273 )23274 try:23275 deadline = time.monotonic() + 3023276 while (23277 subprocess.run( # noqa: S60323278 ["pg_isready", "-h", str(sockdir), "-U", "test"],23279 check=False,23280 capture_output=True,23281 ).returncode23282 != 023283 ):23284 # The socket appears before recovery finishes; createdb would23285 # fail with "the database system is starting up".23286 if time.monotonic() > deadline:23287 msg = "postgres did not start"23288> raise RuntimeError(msg)23289E RuntimeError: postgres did not start2329023291nixbot/tests/support.py:319: RuntimeError23292_____ ERROR at setup of test_reuse_post_process_error_still_reports_status _____23293[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142329423295self = <Coroutine test_reuse_post_process_error_still_reports_status>2329623297 def setup(self) -> None:23298 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"23299 if runner_fixture_id not in self.fixturenames:23300 self.fixturenames.append(runner_fixture_id)23301 # When loop factories are configured, resolve the loop factory23302 # fixture early so that a factory variant change cascades cache23303 # invalidation before any async fixture checks its cache.23304 hook_caller = self.config.hook.pytest_asyncio_loop_factories23305 if hook_caller.get_hookimpls():23306 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)23307> return super().setup()23308 ^^^^^^^^^^^^^^^2330923310/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 23311_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 23312nixbot/tests/conftest.py:33: in postgres_dsn23313 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:23314 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^23315/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__23316 return next(self.gen)23317 ^^^^^^^^^^^^^^23318_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2331923320tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...atch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')23321dbname = 'orchestrator'2332223323 @contextlib.contextmanager23324 def ephemeral_postgres(23325 tmp_path_factory: pytest.TempPathFactory, dbname: str23326 ) -> Iterator[str]:23327 """Throwaway Postgres on a unix socket with migrations applied."""23328 datadir = tmp_path_factory.mktemp("pgdata")23329 sockdir = tmp_path_factory.mktemp("pgsock")23330 subprocess.run( # noqa: S60323331 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],23332 check=True,23333 capture_output=True,23334 )23335 proc = subprocess.Popen( # noqa: S60323336 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],23337 stdout=subprocess.DEVNULL,23338 stderr=subprocess.DEVNULL,23339 )23340 try:23341 deadline = time.monotonic() + 3023342 while (23343 subprocess.run( # noqa: S60323344 ["pg_isready", "-h", str(sockdir), "-U", "test"],23345 check=False,23346 capture_output=True,23347 ).returncode23348 != 023349 ):23350 # The socket appears before recovery finishes; createdb would23351 # fail with "the database system is starting up".23352 if time.monotonic() > deadline:23353 msg = "postgres did not start"23354> raise RuntimeError(msg)23355E RuntimeError: postgres did not start2335623357nixbot/tests/support.py:319: RuntimeError23358____ ERROR at setup of test_reuse_with_missing_output_still_post_processes _____23359[gw1] darwin -- Python 3.14.6 /nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/bin/python3.142336023361self = <Coroutine test_reuse_with_missing_output_still_post_processes>2336223363 def setup(self) -> None:23364 runner_fixture_id = f"_{self._loop_scope}_scoped_runner"23365 if runner_fixture_id not in self.fixturenames:23366 self.fixturenames.append(runner_fixture_id)23367 # When loop factories are configured, resolve the loop factory23368 # fixture early so that a factory variant change cascades cache23369 # invalidation before any async fixture checks its cache.23370 hook_caller = self.config.hook.pytest_asyncio_loop_factories23371 if hook_caller.get_hookimpls():23372 _ = self._request.getfixturevalue(_asyncio_loop_factory.__name__)23373> return super().setup()23374 ^^^^^^^^^^^^^^^2337523376/nix/store/4fdzail6axj09flzabahq3f4b2ws3i4j-python3.14-pytest-asyncio-1.4.0/lib/python3.14/site-packages/pytest_asyncio/plugin.py:558: 23377_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 23378nixbot/tests/conftest.py:33: in postgres_dsn23379 with ephemeral_postgres(tmp_path_factory, dbname) as dsn:23380 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^23381/nix/store/i9q7np6h9bwa3ps6937lpwarkqw0izbf-python3-3.14.6/lib/python3.14/contextlib.py:141: in __enter__23382 return next(self.gen)23383 ^^^^^^^^^^^^^^23384_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2338523386tmp_path_factory = TempPathFactory(_given_basetemp=PosixPath('/private/var/tb/1/scratch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/p...atch/d884a20a40d861d2/build/pytest-of-_tribuchetbld1/pytest-0/popen-gw1'), _retention_count=3, _retention_policy='all')23387dbname = 'orchestrator'2338823389 @contextlib.contextmanager23390 def ephemeral_postgres(23391 tmp_path_factory: pytest.TempPathFactory, dbname: str23392 ) -> Iterator[str]:23393 """Throwaway Postgres on a unix socket with migrations applied."""23394 datadir = tmp_path_factory.mktemp("pgdata")23395 sockdir = tmp_path_factory.mktemp("pgsock")23396 subprocess.run( # noqa: S60323397 ["initdb", "-D", str(datadir), "-U", "test", "--auth=trust"],23398 check=True,23399 capture_output=True,23400 )23401 proc = subprocess.Popen( # noqa: S60323402 ["postgres", "-D", str(datadir), "-k", str(sockdir), "-c", "listen_addresses="],23403 stdout=subprocess.DEVNULL,23404 stderr=subprocess.DEVNULL,23405 )23406 try:23407 deadline = time.monotonic() + 3023408 while (23409 subprocess.run( # noqa: S60323410 ["pg_isready", "-h", str(sockdir), "-U", "test"],23411 check=False,23412 capture_output=True,23413 ).returncode23414 != 023415 ):23416 # The socket appears before recovery finishes; createdb would23417 # fail with "the database system is starting up".23418 if time.monotonic() > deadline:23419 msg = "postgres did not start"23420> raise RuntimeError(msg)23421E RuntimeError: postgres did not start2342223423nixbot/tests/support.py:319: RuntimeError23424=========================== short test summary info ============================23425ERROR nixbot/tests/test_db.py::test_migrations_idempotent - RuntimeError: pos...23426ERROR nixbot/tests/test_db.py::test_failed_migration_error_not_masked - Runti...23427ERROR nixbot/tests/test_db.py::test_edited_migration_rejected - RuntimeError:...23428ERROR nixbot/tests/test_db.py::test_catchup_migration_repairs_pre_0033_schema23429ERROR nixbot/tests/test_db.py::test_huge_attr_name_does_not_break_notify_trigger23430ERROR nixbot/tests/test_db.py::test_schema_constraints - RuntimeError: postgr...23431ERROR nixbot/tests/test_db.py::test_check_run_store_round_trip - RuntimeError...23432ERROR nixbot/tests/test_db.py::test_failed_status_store_component - RuntimeEr...23433ERROR nixbot/tests/test_db.py::test_failed_build_cache_component - RuntimeErr...23434ERROR nixbot/tests/test_db.py::test_get_or_create_build_concurrent_no_duplicates23435ERROR nixbot/tests/test_db.py::test_commit_eval_result_atomic - RuntimeError:...23436ERROR nixbot/tests/test_db.py::test_cancelled_build_not_reused - RuntimeError...23437ERROR nixbot/tests/test_db.py::test_reuse_backfills_pr_fields - RuntimeError:...23438ERROR nixbot/tests/test_db.py::test_reuse_by_other_pr_clears_both_identity_fields23439ERROR nixbot/tests/test_db.py::test_branch_push_takes_over_reused_pr_build - ...23440ERROR nixbot/tests/test_db.py::test_pr_does_not_capture_branch_push_build - R...23441ERROR nixbot/tests/test_db.py::test_complete_attribute_preserves_eval_outputs23442ERROR nixbot/tests/test_db.py::test_complete_attribute_marks_substituted_as_cached23443ERROR nixbot/tests/test_db.py::test_complete_attribute_replaces_log_metadata23444ERROR nixbot/tests/test_db.py::test_record_attributes_persists_pending_rows_with_outputs23445ERROR nixbot/tests/test_db.py::test_mark_attribute_building_does_not_resurrect_cancelled_rows23446ERROR nixbot/tests/test_db.py::test_mark_attribute_building_sets_status_and_started_at23447ERROR nixbot/tests/test_db.py::test_complete_attribute_if_unfinished_skips_terminal_rows23448ERROR nixbot/tests/test_db.py::test_failed_build_cache_scoped_per_project - R...23449ERROR nixbot/tests/test_db.py::test_eval_stats_lifecycle - RuntimeError: post...23450ERROR nixbot/tests/test_visibility.py::test_anonymous_sees_public_only - Runt...23451ERROR nixbot/tests/test_visibility.py::test_unauthorized_user_sees_public_only23452ERROR nixbot/tests/test_visibility.py::test_authorized_user_sees_private - Ru...23453ERROR nixbot/tests/test_visibility.py::test_admin_sees_everything - RuntimeEr...23454ERROR nixbot/tests/test_schedules.py::test_replace_schedules_preserves_last_run_for_unchanged_spec23455ERROR nixbot/tests/test_recovery.py::test_resume_skips_terminal_attributes - ...23456ERROR nixbot/tests/test_work_queue.py::test_enqueue_dedupes_pending - Runtime...23457ERROR nixbot/tests/test_visibility.py::test_admin_sees_disabled_repos_without_search23458ERROR nixbot/tests/test_visibility.py::test_non_admin_does_not_see_disabled_repos23459ERROR nixbot/tests/test_schedules.py::test_replace_schedules_tolerates_duplicate_effect_names23460ERROR nixbot/tests/test_recovery.py::test_settle_already_built - RuntimeError...23461ERROR nixbot/tests/test_work_queue.py::test_claim_serializes_per_key - Runtim...23462ERROR nixbot/tests/test_visibility.py::test_api_token_sees_private - RuntimeE...23463ERROR nixbot/tests/test_orchestrator.py::test_full_lifecycle - RuntimeError: ...23464ERROR nixbot/tests/test_visibility.py::test_admin_api_token_sees_private - Ru...23465ERROR nixbot/tests/test_schedules.py::test_store_roundtrip_and_due - RuntimeE...23466ERROR nixbot/tests/test_work_queue.py::test_settle_interrupted_requeues - Run...23467ERROR nixbot/tests/test_recovery.py::test_retention_cleanup - RuntimeError: p...23468ERROR nixbot/tests/test_visibility.py::test_forge_repo_admins_can_toggle_their_repos23469ERROR nixbot/tests/test_schedules.py::test_due_effects_window_and_bad_spec - ...23470ERROR nixbot/tests/test_orchestrator.py::test_failure_aggregation - RuntimeEr...23471ERROR nixbot/tests/test_visibility.py::test_forge_repo_writers_can_control_their_repos23472ERROR nixbot/tests/test_recovery.py::test_resume_includes_interrupted_building_attributes23473ERROR nixbot/tests/test_recovery.py::test_retention_skips_restarted_builds - ...23474ERROR nixbot/tests/test_visibility.py::test_fetch_errors_are_not_cached - Run...23475ERROR nixbot/tests/test_recovery.py::test_retention_ages_out_failed_caches - ...23476ERROR nixbot/tests/test_schedules.py::test_run_recording_and_overview - Runti...23477ERROR nixbot/tests/test_recovery.py::test_rerun_clears_stale_eval_warnings - ...23478ERROR nixbot/tests/test_visibility.py::test_access_cache_used - RuntimeError:...23479ERROR nixbot/tests/test_orchestrator.py::test_tree_hash_reuse - RuntimeError:...23480ERROR nixbot/tests/test_recovery.py::test_interrupted_effects_fail_on_recovery23481ERROR nixbot/tests/test_orchestrator.py::test_eval_reuse_from_cancelled_build23482ERROR nixbot/tests/test_control.py::test_control_buttons_hidden_without_permission23483ERROR nixbot/tests/test_visibility.py::test_metrics_unauthenticated_no_private_names23484ERROR nixbot/tests/test_cli.py::test_repo_list_and_toggle - RuntimeError: pos...23485ERROR nixbot/tests/test_web.py::test_html_error_pages - RuntimeError: postgre...23486ERROR nixbot/tests/test_deliver.py::test_match_skip_and_run - RuntimeError: p...23487ERROR nixbot/tests/test_visibility.py::test_configured_viewers_see_private - ...23488ERROR nixbot/tests/test_upload.py::test_chunk_args_splits_on_byte_limit - Run...23489ERROR nixbot/tests/test_recovery.py::test_interrupted_effects_sweep_spares_live_effects23490ERROR nixbot/tests/test_forge.py::test_project_store_sync_and_legacy_import23491ERROR nixbot/tests/test_visibility.py::test_api_token_inherits_login_groups23492ERROR nixbot/tests/test_db_fuzz.py::test_concurrent_queries_do_not_deadlock[0]23493ERROR nixbot/tests/test_orchestrator.py::test_eval_reuse_skipped_when_drvs_gone23494ERROR nixbot/tests/test_cli_api.py::test_repos_and_builds - RuntimeError: pos...23495ERROR nixbot/tests/test_control.py::test_admin_can_restart_and_cancel - Runti...23496ERROR nixbot/tests/test_web.py::test_api_strips_ansi_from_errors - RuntimeErr...23497ERROR nixbot/tests/test_cli.py::test_build_list_and_view - RuntimeError: post...23498ERROR nixbot/tests/test_upload.py::test_parse_path_info_both_formats - Runtim...23499ERROR nixbot/tests/test_cli_api.py::test_finished_attrs_cursor - RuntimeError...23500ERROR nixbot/tests/test_web.py::test_homepage - RuntimeError: postgres did no...23501ERROR nixbot/tests/test_control.py::test_pr_author_can_control_own_pr - Runti...23502ERROR nixbot/tests/test_deliver.py::test_permission_denied_records_reason - R...23503ERROR nixbot/tests/test_visibility.py::test_logout_invalidates_access_cache23504ERROR nixbot/tests/test_cli.py::test_build_restart_cancel - RuntimeError: pos...23505ERROR nixbot/tests/test_orchestrator.py::test_main_push_promotes_reused_pr_build23506ERROR nixbot/tests/test_cli.py::test_log_summary_attr_and_drv - RuntimeError:...23507ERROR nixbot/tests/test_forge.py::test_legacy_import_runs_despite_pull_based_rows23508ERROR nixbot/tests/test_control.py::test_repo_writer_can_control_without_admin_or_authorship23509ERROR nixbot/tests/test_db_fuzz.py::test_concurrent_queries_do_not_deadlock[1]23510ERROR nixbot/tests/test_cli_api.py::test_control_requires_token - RuntimeErro...23511ERROR nixbot/tests/test_web.py::test_project_page_with_filters - RuntimeError...23512ERROR nixbot/tests/test_deliver.py::test_modified_files_gate - RuntimeError: ...23513ERROR nixbot/tests/test_cli_api.py::test_enable_disable - RuntimeError: postg...23514ERROR nixbot/tests/test_upload.py::test_final_upload_reports_and_clears_queue23515ERROR nixbot/tests/test_service.py::test_scheduled_worktree_id_distinct_per_effect23516ERROR nixbot/tests/test_control.py::test_approve_pr_requires_writer_not_author23517ERROR nixbot/tests/test_web.py::test_status_badge_urls - RuntimeError: postgr...23518ERROR nixbot/tests/test_cli.py::test_repo_and_build_inference - RuntimeError:...23519ERROR nixbot/tests/test_service.py::test_scheduled_worktree_id_sanitizes_traversal23520ERROR nixbot/tests/test_orchestrator.py::test_merge_conflict_fails_build - Ru...23521ERROR nixbot/tests/test_forge.py::test_legacy_import_scopes_topics_per_forge23522ERROR nixbot/tests/test_control.py::test_cancel_all_requires_admin - RuntimeE...23523ERROR nixbot/tests/test_deliver.py::test_forge_outage_is_retried - RuntimeErr...23524ERROR nixbot/tests/test_web.py::test_all_digit_branch_is_filterable - Runtime...23525ERROR nixbot/tests/test_db_fuzz.py::test_concurrent_queries_do_not_deadlock[2]23526ERROR nixbot/tests/test_control.py::test_cancel_all_cancels_pending_and_running_builds23527ERROR nixbot/tests/test_control.py::test_cancel_all_button_admin_only - Runti...23528ERROR nixbot/tests/test_upload.py::test_intermediates_batch_with_final_and_drop_invalid23529ERROR nixbot/tests/test_control.py::test_csrf_cross_origin_rejected - Runtime...23530ERROR nixbot/tests/test_cli.py::test_auth_status - RuntimeError: postgres did...23531ERROR nixbot/tests/test_web.py::test_build_page - RuntimeError: postgres did ...23532ERROR nixbot/tests/test_service.py::test_resolve_credential_path - RuntimeErr...23533ERROR nixbot/tests/test_orchestrator.py::test_build_reuse_clears_pr_author_in_other_context23534ERROR nixbot/tests/test_web.py::test_attribute_rows_fragment_paginates - Runt...23535ERROR nixbot/tests/test_deliver.py::test_forge_outage_gives_up - RuntimeError...23536ERROR nixbot/tests/test_forge.py::test_prune_missing_disabled_projects - Runt...23537ERROR nixbot/tests/test_web.py::test_build_page_shows_eval_warning_groups - R...23538ERROR nixbot/tests/test_upload.py::test_stdin_mode - RuntimeError: postgres d...23539ERROR nixbot/tests/test_db_fuzz.py::test_concurrent_queries_do_not_deadlock[3]23540ERROR nixbot/tests/test_control.py::test_restart_single_attribute - RuntimeEr...23541ERROR nixbot/tests/test_service.py::test_build_service_accepts_asyncpg_dsn - ...23542ERROR nixbot/tests/test_cli_api.py::test_log_toc_and_text - RuntimeError: pos...23543ERROR nixbot/tests/test_forge.py::test_project_store_sync_skips_unchanged_rows23544ERROR nixbot/tests/test_web.py::test_build_page_shows_per_attribute_eval_warnings23545ERROR nixbot/tests/test_deliver.py::test_lock_shared_with_push_effect_and_supersession23546ERROR nixbot/tests/test_orchestrator.py::test_effects_started_flag - RuntimeE...23547ERROR nixbot/tests/test_control.py::test_restart_unknown_attribute_is_404 - R...23548ERROR nixbot/tests/test_cli_api.py::test_effect_run_text_and_stream - Runtime...23549ERROR nixbot/tests/test_db_fuzz.py::test_concurrent_queries_do_not_deadlock[4]23550ERROR nixbot/tests/test_service.py::test_visibility_fetcher_and_cache_ttl_wired23551ERROR nixbot/tests/test_upload.py::test_pending_paths_survive_restart - Runti...23552ERROR nixbot/tests/test_web.py::test_build_page_renders_ansi_in_error - Runti...23553ERROR nixbot/tests/test_control.py::test_restart_attribute_with_special_chars_redirects_encoded23554ERROR nixbot/tests/test_orchestrator.py::test_aggregation_generation_monotonic23555ERROR nixbot/tests/test_forge.py::test_gitea_hook_registration - RuntimeError...23556ERROR nixbot/tests/test_deliver.py::test_checkout_is_pr_head_without_token - ...23557ERROR nixbot/tests/test_upload.py::test_uploader_factory_picks_stream - Runti...23558ERROR nixbot/tests/test_web.py::test_running_build_shows_progress - RuntimeEr...23559ERROR nixbot/tests/test_service.py::test_aclose_cancels_in_flight_tasks - Run...23560ERROR nixbot/tests/test_control.py::test_admin_project_toggle - RuntimeError:...23561ERROR nixbot/tests/test_web.py::test_build_page_live_markers - RuntimeError: ...23562ERROR nixbot/tests/test_db_fuzz.py::test_concurrent_queries_do_not_deadlock[5]23563ERROR nixbot/tests/test_forge.py::test_gitlab_heads_carry_target_branch_base23564ERROR nixbot/tests/test_control.py::test_toggle_activates_newly_enabled_project23565ERROR nixbot/tests/test_orchestrator.py::test_internal_error_not_recorded_in_failed_build_cache23566ERROR nixbot/tests/test_web.py::test_attribute_history - RuntimeError: postgr...23567ERROR nixbot/tests/test_upload.py::test_stream_reports_per_path_and_clears_queue23568ERROR nixbot/tests/test_deliver.py::test_build_success_enqueues_delivery - Ru...23569ERROR nixbot/tests/test_db_fuzz.py::test_concurrent_queries_do_not_deadlock[6]23570ERROR nixbot/tests/test_service.py::test_pr_close_discards_queued_changes - R...23571ERROR nixbot/tests/test_forge.py::test_gitea_heads_encode_slashed_default_branch23572ERROR nixbot/tests/test_control.py::test_run_schedule - RuntimeError: postgre...23573ERROR nixbot/tests/test_orchestrator.py::test_log_path_attribute_name_sanitized23574ERROR nixbot/tests/test_forge.py::test_reconcile_unbuilt_heads - RuntimeError...23575ERROR nixbot/tests/test_control.py::test_schedules_are_listed_on_the_effects_page23576ERROR nixbot/tests/test_service.py::test_build_branches_gates_branch_pushes23577ERROR nixbot/tests/test_web.py::test_overview_ignores_pr_branches - RuntimeEr...23578ERROR nixbot/tests/test_web.py::test_pending_build_shows_eval_blocker - Runti...23579ERROR nixbot/tests/test_deliver.py::test_comment_and_close_webhooks_deliver23580ERROR nixbot/tests/test_db_fuzz.py::test_concurrent_queries_do_not_deadlock[7]23581ERROR nixbot/tests/test_control.py::test_repo_refresh - RuntimeError: postgre...23582ERROR nixbot/tests/test_orchestrator.py::test_cancel_interrupts_evaluation - ...23583ERROR nixbot/tests/test_upload.py::test_stream_error_is_reported_with_message23584ERROR nixbot/tests/test_web.py::test_project_filter_escapes_like_wildcards - ...23585ERROR nixbot/tests/test_control.py::test_api_enable_disable - RuntimeError: p...23586ERROR nixbot/tests/test_forge.py::test_gitea_watermark_stops_pagination - Run...23587ERROR nixbot/tests/test_web.py::test_page_out_of_range_does_not_error - Runti...23588ERROR nixbot/tests/test_service.py::test_tag_push_builds_peeled_commit - Runt...23589ERROR nixbot/tests/test_deliver.py::test_close_after_merge_push_reused_build23590ERROR nixbot/tests/test_control.py::test_api_restart_and_cancel - RuntimeErro...23591ERROR nixbot/tests/test_orchestrator.py::test_build_waiting_for_eval_slot_stays_pending23592ERROR nixbot/tests/test_upload.py::test_stream_child_crash_refeeds_pending - ...23593ERROR nixbot/tests/test_control.py::test_api_token_lifecycle - RuntimeError: ...23594ERROR nixbot/tests/test_web.py::test_activity_page - RuntimeError: postgres d...23595ERROR nixbot/tests/test_cli.py::test_log_follow_finished_attr_falls_back_to_stored_log23596ERROR nixbot/tests/test_upload.py::test_failure_reports_retries_and_gives_up23597ERROR nixbot/tests/test_deliver.py::test_build_finished_transitions - Runtime...23598ERROR nixbot/tests/test_service.py::test_tag_push_waits_for_a_branch_to_build_its_commit23599ERROR nixbot/tests/test_forge.py::test_gitlab_heads_filter_updated_after - Ru...23600ERROR nixbot/tests/test_orchestrator.py::test_pending_attribute_rows_recorded_for_crash_recovery23601ERROR nixbot/tests/test_cli.py::test_log_effect_by_name_and_id - RuntimeError...23602ERROR nixbot/tests/test_web.py::test_activity_no_sentinel_on_exact_page - Run...23603ERROR nixbot/tests/test_control.py::test_expired_api_tokens_pruned - RuntimeE...23604ERROR nixbot/tests/test_cli.py::test_log_effect_is_not_shadowed_by_attributes23605ERROR nixbot/tests/test_service.py::test_pr_approval_gate - RuntimeError: pos...23606ERROR nixbot/tests/test_control.py::test_token_creation_with_expiry - Runtime...23607ERROR nixbot/tests/test_forge.py::test_reconcile_watermark_store - RuntimeErr...23608ERROR nixbot/tests/test_deliver.py::test_command_while_running_gets_notice - ...23609ERROR nixbot/tests/test_web.py::test_activity_rows_fragment_pagination - Runt...23610ERROR nixbot/tests/test_orchestrator.py::test_eval_warnings_null_when_empty23611ERROR nixbot/tests/test_service.py::test_pr_approval_disabled_by_default - Ru...23612ERROR nixbot/tests/test_control.py::test_proxy_user_can_manage_api_tokens - R...23613ERROR nixbot/tests/test_deliver.py::test_other_command_does_not_supersede - R...23614ERROR nixbot/tests/test_web.py::test_project_rows_fragment_filters - RuntimeE...23615ERROR nixbot/tests/test_service.py::test_restart_gitlab_mr_build_fetches_mr_refs23616ERROR nixbot/tests/test_control.py::test_bearer_token_cannot_manage_api_tokens23617ERROR nixbot/tests/test_forge.py::test_register_repo_hook_without_admin_warns23618ERROR nixbot/tests/test_orchestrator.py::test_rerun_flips_stale_red_eval_status23619ERROR nixbot/tests/test_web.py::test_metrics_are_gauges - RuntimeError: postg...23620ERROR nixbot/tests/test_control.py::test_api_token_controls_build - RuntimeEr...23621ERROR nixbot/tests/test_service.py::test_restart_eval_failed_build_reevaluates23622ERROR nixbot/tests/test_deliver.py::test_label_change_redelivers_pull_request23623ERROR nixbot/tests/test_web.py::test_metrics_are_cached - RuntimeError: postg...23624ERROR nixbot/tests/test_forge.py::test_gitlab_hook_registration - RuntimeErro...23625ERROR nixbot/tests/test_control.py::test_build_service_composition - RuntimeE...23626ERROR nixbot/tests/test_orchestrator.py::test_recovery_rerun_failures_not_cached23627ERROR nixbot/tests/test_web.py::test_static_urls_carry_content_version - Runt...23628ERROR nixbot/tests/test_deliver.py::test_build_outcome_and_restart_leave_event_history23629ERROR nixbot/tests/test_forge.py::test_register_repo_hook_500_with_403_in_body_raises23630ERROR nixbot/tests/test_control.py::test_restart_removes_stale_logs - Runtime...23631ERROR nixbot/tests/test_orchestrator.py::test_gitlab_mr_fetches_merge_request_refs23632ERROR nixbot/tests/test_web.py::test_legacy_project_urls_redirect - RuntimeEr...23633ERROR nixbot/tests/test_service.py::test_restart_clears_stale_error_and_warnings23634ERROR nixbot/tests/test_forge.py::test_gitlab_register_repo_hook_status_classification23635ERROR nixbot/tests/test_deliver.py::test_restart_event_effect_reruns_with_stored_payload23636ERROR nixbot/tests/test_control.py::test_restart_clears_failed_cache - Runtim...23637ERROR nixbot/tests/test_orchestrator.py::test_rerun_fetches_forge_change_request_refs[github]23638ERROR nixbot/tests/test_web.py::test_private_repo_public_badge_bypasses_session_visibility23639ERROR nixbot/tests/test_service.py::test_restart_unknown_attribute_is_a_noop23640ERROR nixbot/tests/test_web.py::test_legacy_redirect_hides_invisible_projects23641ERROR nixbot/tests/test_deliver.py::test_listing_failure_recorded_on_build - ...23642ERROR nixbot/tests/test_control.py::test_webhook_setup_shown_to_admin_only - ...23643ERROR nixbot/tests/test_forge.py::test_gitea_legacy_hook_delete_failure_warns23644ERROR nixbot/tests/test_web.py::test_legacy_redirect_404s_on_ambiguous_owner_name23645ERROR nixbot/tests/test_orchestrator.py::test_rerun_fetches_forge_change_request_refs[gitlab]23646ERROR nixbot/tests/test_service.py::test_restart_failed_eval_attribute_reevaluates23647ERROR nixbot/tests/test_control.py::test_webhook_secret_regeneration - Runtim...23648ERROR nixbot/tests/test_deliver.py::test_tag_runs_onpush_effects_with_tag - R...23649ERROR nixbot/tests/test_web.py::test_health_and_static - RuntimeError: postgr...23650ERROR nixbot/tests/test_orchestrator.py::test_cancelled_build_reuse_rebuilds23651ERROR nixbot/tests/test_forge.py::test_sync_tolerates_in_batch_duplicates - R...23652ERROR nixbot/tests/test_control.py::test_retry_after_parsing - RuntimeError: ...23653ERROR nixbot/tests/test_service.py::test_interrupted_reeval_keeps_attribute_rows23654ERROR nixbot/tests/test_web.py::test_404s - RuntimeError: postgres did not start23655ERROR nixbot/tests/test_control.py::test_work_retry_delay_honors_retry_after23656ERROR nixbot/tests/test_deliver.py::test_tag_waits_for_a_running_release - Ru...23657ERROR nixbot/tests/test_orchestrator.py::test_inflight_share_fans_out_final_status23658ERROR nixbot/tests/test_service.py::test_restart_cancelled_build_reschedules_attributes23659ERROR nixbot/tests/test_deliver.py::test_tag_listing_failure_recorded_apart_from_build_effects23660ERROR nixbot/tests/test_control.py::test_report_retry - RuntimeError: postgre...23661ERROR nixbot/tests/test_orchestrator.py::test_stale_event_does_not_supersede_newer_build23662ERROR nixbot/tests/test_service.py::test_restart_cancelled_mid_eval_reevaluates23663ERROR nixbot/tests/test_orchestrator.py::test_eval_failure_cleans_cancel_events23664ERROR nixbot/tests/test_web.py::test_log_viewer_and_raw - RuntimeError: postg...23665ERROR nixbot/tests/test_web.py::test_structured_log_endpoints - RuntimeError:...23666ERROR nixbot/tests/test_control.py::test_effect_item_setup_failure_settles_row23667ERROR nixbot/tests/test_service.py::test_restart_while_unwinding_waits_then_runs23668ERROR nixbot/tests/test_web.py::test_structured_log_window_caps_huge_derivation23669ERROR nixbot/tests/test_orchestrator.py::test_eval_settings_wired - RuntimeEr...23670ERROR nixbot/tests/test_web.py::test_attr_named_dot_txt_not_shadowed_by_raw_route23671ERROR nixbot/tests/test_control.py::test_restart_attribute_posts_pending - Ru...23672ERROR nixbot/tests/test_service.py::test_restart_attribute_while_build_running23673ERROR nixbot/tests/test_web.py::test_attr_names_with_special_characters - Run...23674ERROR nixbot/tests/test_orchestrator.py::test_eval_netrc_withheld_from_pr_with_instance_wide_creds23675ERROR nixbot/tests/test_control.py::test_recovery_reports_interrupted_effects23676ERROR nixbot/tests/test_service.py::test_cancel_not_running_posts_forge_status23677ERROR nixbot/tests/test_web.py::test_log_viewer_waits_for_queued_attribute - ...23678ERROR nixbot/tests/test_web.py::test_log_viewer_unavailable_for_logless_status23679ERROR nixbot/tests/test_control.py::test_work_dispatch - RuntimeError: postgr...23680ERROR nixbot/tests/test_orchestrator.py::test_eval_gcroots_dir_removed_after_build23681ERROR nixbot/tests/test_service.py::test_check_rerequested_dispatch - Runtime...23682ERROR nixbot/tests/test_web.py::test_eval_error_served_like_build_log - Runti...23683ERROR nixbot/tests/test_service.py::test_cancel_not_running_settles_attribute_rows23684ERROR nixbot/tests/test_orchestrator.py::test_effects_run_after_default_branch_success23685ERROR nixbot/tests/test_control.py::test_restart_resets_effects - RuntimeErro...23686ERROR nixbot/tests/test_web.py::test_api_projects_and_builds - RuntimeError: ...23687ERROR nixbot/tests/test_control.py::test_effects_restart_route - RuntimeError...23688ERROR nixbot/tests/test_web.py::test_build_rows_link_refs - RuntimeError: pos...23689ERROR nixbot/tests/test_service.py::test_cancel_attribute_not_running_reaggregates_build23690ERROR nixbot/tests/test_orchestrator.py::test_when_changed_reuses_the_last_success23691ERROR nixbot/tests/test_control.py::test_single_effect_restart_route - Runtim...23692ERROR nixbot/tests/test_web.py::test_attributes_sort_building_before_pending23693ERROR nixbot/tests/test_control.py::test_effect_cancel_route - RuntimeError: ...23694ERROR nixbot/tests/test_orchestrator.py::test_when_changed_decides_when_the_lock_is_free23695ERROR nixbot/tests/test_service.py::test_pull_based_projects_synced_and_buildable23696ERROR nixbot/tests/test_web.py::test_queue_sorts_active_before_pending - Runt...23697ERROR nixbot/tests/test_control.py::test_webhook_panel_is_forge_aware - Runti...23698ERROR nixbot/tests/test_web.py::test_queue_position_is_global_and_skips_running23699ERROR nixbot/tests/test_control.py::test_api_attr_and_effects_control - Runti...23700ERROR nixbot/tests/test_orchestrator.py::test_when_changed_ignores_failures_and_follows_a_restart23701ERROR nixbot/tests/test_service.py::test_topic_does_not_hard_filter_discovery23702ERROR nixbot/tests/test_web.py::test_openapi_docs - RuntimeError: postgres di...23703ERROR nixbot/tests/test_orchestrator.py::test_pr_worktree_config_cannot_grant_effects23704ERROR nixbot/tests/test_web.py::test_structured_live_stream - RuntimeError: p...23705ERROR nixbot/tests/test_service.py::test_startup_reevaluates_interrupted_eval23706ERROR nixbot/tests/test_web.py::test_drv_raw_serves_running_attribute - Runti...23707ERROR nixbot/tests/test_orchestrator.py::test_rerun_effects_runs_effects_again23708ERROR nixbot/tests/test_web.py::test_log_sse_stream_caps_history_backlog - Ru...23709ERROR nixbot/tests/test_service.py::test_rerun_of_interrupted_eval_reevaluates23710ERROR nixbot/tests/test_web.py::test_log_sse_stream_neutralizes_carriage_returns23711ERROR nixbot/tests/test_orchestrator.py::test_rerun_effects_cancels_hung_effect23712ERROR nixbot/tests/test_service.py::test_rerun_resumes_building_rows_and_keeps_finished23713ERROR nixbot/tests/test_web.py::test_api_builds_commit_filter - RuntimeError:...23714ERROR nixbot/tests/test_orchestrator.py::test_cancel_hung_effect - RuntimeErr...23715ERROR nixbot/tests/test_web.py::test_log_tail_param - RuntimeError: postgres ...23716ERROR nixbot/tests/test_service.py::test_rerun_reevaluates_when_drv_paths_were_garbage_collected23717ERROR nixbot/tests/test_web.py::test_api_build_failures - RuntimeError: postg...23718ERROR nixbot/tests/test_orchestrator.py::test_rerun_single_effect - RuntimeEr...23719ERROR nixbot/tests/test_service.py::test_reeval_failure_marks_build_failed - ...23720ERROR nixbot/tests/test_web.py::test_api_build_failures_rejects_non_positive_tail23721ERROR nixbot/tests/test_web.py::test_llms_txt - RuntimeError: postgres did no...23722ERROR nixbot/tests/test_orchestrator.py::test_recovery_rerun_runs_effects - R...23723ERROR nixbot/tests/test_service.py::test_gitlab_discovery_and_hook_registration23724ERROR nixbot/tests/test_web.py::test_event_broker_pushes_status_changes - Run...23725ERROR nixbot/tests/test_web.py::test_events_stream_coalesces_burst - RuntimeE...23726ERROR nixbot/tests/test_orchestrator.py::test_unsupported_system_attr_does_not_block_aggregation23727ERROR nixbot/tests/test_service.py::test_health_serves_while_startup_blocks23728ERROR nixbot/tests/test_web.py::test_events_stream_refreshes_visibility - Run...23729ERROR nixbot/tests/test_orchestrator.py::test_linked_context_reported_on_eval_failure23730ERROR nixbot/tests/test_web.py::test_attribute_search - RuntimeError: postgre...23731ERROR nixbot/tests/test_web.py::test_build_page_shows_effects - RuntimeError:...23732ERROR nixbot/tests/test_orchestrator.py::test_eval_failure_settles_streamed_attributes23733ERROR nixbot/tests/test_web.py::test_build_page_shows_event_effects - Runtime...23734ERROR nixbot/tests/test_web.py::test_build_page_groups_dependency_checks_apart23735ERROR nixbot/tests/test_orchestrator.py::test_effect_rows_roundtrip - Runtime...23736ERROR nixbot/tests/test_web.py::test_effect_log_raw_text - RuntimeError: post...23737ERROR nixbot/tests/test_orchestrator.py::test_pending_effects_replace_skipped_rows23738ERROR nixbot/tests/test_web.py::test_effect_log_viewer_status_icon - RuntimeE...23739ERROR nixbot/tests/test_web.py::test_effect_changes_notify_build_events - Run...23740ERROR nixbot/tests/test_orchestrator.py::test_effect_items_resume_only_pending23741ERROR nixbot/tests/test_web.py::test_effects_state_api - RuntimeError: postgr...23742ERROR nixbot/tests/test_orchestrator.py::test_effect_crash_settles_the_row - ...23743ERROR nixbot/tests/test_web.py::test_pr_comment_api - RuntimeError: postgres ...23744ERROR nixbot/tests/test_web.py::test_workload_identity_api - RuntimeError: po...23745ERROR nixbot/tests/test_orchestrator.py::test_concurrent_effects_use_independent_worktrees23746ERROR nixbot/tests/test_web.py::test_logout_revokes_session_cookie - RuntimeE...23747ERROR nixbot/tests/test_web.py::test_gitlab_nested_group_routes - RuntimeErro...23748ERROR nixbot/tests/test_orchestrator.py::test_locked_effect_gets_shared_dedup_key23749ERROR nixbot/tests/test_web.py::test_scheduled_run_viewer_renders_ansi - Runt...23750ERROR nixbot/tests/test_web.py::test_scheduled_run_viewer_cross_project_40423751ERROR nixbot/tests/test_orchestrator.py::test_effect_item_not_claimable_until_dep_settles23752ERROR nixbot/tests/test_web.py::test_scheduled_run_log_unavailable_placeholder23753ERROR nixbot/tests/test_web.py::test_scheduled_run_viewer_waiting_before_log23754ERROR nixbot/tests/test_orchestrator.py::test_effect_dep_failure_skips_dependent23755ERROR nixbot/tests/test_web.py::test_project_tabs_link_builds_and_effects - R...23756ERROR nixbot/tests/test_web.py::test_failing_badge_counts_effects_whose_latest_run_failed23757ERROR nixbot/tests/test_orchestrator.py::test_lock_serializes_builds_without_interleaving23758ERROR nixbot/tests/test_web.py::test_old_schedule_history_url_redirects - Run...23759ERROR nixbot/tests/test_web.py::test_project_effects_filter_and_paginate - Ru...23760ERROR nixbot/tests/test_orchestrator.py::test_effect_dep_cycle_fails_discovery23761ERROR nixbot/tests/test_web.py::test_scheduled_run_stream_replays_history - R...23762ERROR nixbot/tests/test_web.py::test_scheduled_run_notify_build_events - Runt...23763ERROR nixbot/tests/test_orchestrator.py::test_failed_effect_reports_failure_status23764ERROR nixbot/tests/test_web.py::test_api_log_toc_and_text - RuntimeError: pos...23765ERROR nixbot/tests/test_orchestrator.py::test_post_process_error_does_not_wedge_build23766ERROR nixbot/tests/test_web.py::test_api_log_toc_flat_log_fallback - RuntimeE...23767ERROR nixbot/tests/test_web.py::test_api_log_stream_json - RuntimeError: post...23768ERROR nixbot/tests/test_orchestrator.py::test_unexpected_eval_path_error_settles_build23769ERROR nixbot/tests/test_web.py::test_build_eval_stats_surface - RuntimeError:...23770ERROR nixbot/tests/test_orchestrator.py::test_reuse_empty_succeeded_build_posts_eval_success23771ERROR nixbot/tests/test_orchestrator.py::test_stale_event_reusing_old_build_does_not_cancel_newer23772ERROR nixbot/tests/test_orchestrator.py::test_reuse_for_default_branch_push_runs_effects23773ERROR nixbot/tests/test_orchestrator.py::test_tag_reusing_deployed_build_delivers_its_own_effects23774ERROR nixbot/tests/test_orchestrator.py::test_tag_attached_to_in_flight_build_delivers_on_success23775ERROR nixbot/tests/test_orchestrator.py::test_restart_of_gated_build_settles_effect_rows23776ERROR nixbot/tests/test_orchestrator.py::test_restart_build_drops_queued_effect_items23777ERROR nixbot/tests/test_orchestrator.py::test_restart_effects_after_pr_attach_keeps_effects_ref23778ERROR nixbot/tests/test_orchestrator.py::test_gated_restart_then_allowed_reuse_deploys23779ERROR nixbot/tests/test_orchestrator.py::test_rerun_single_effect_takes_pending_dependents23780ERROR nixbot/tests/test_orchestrator.py::test_reuse_replays_effect_statuses_to_new_commit23781ERROR nixbot/tests/test_orchestrator.py::test_attach_to_already_terminal_build_replays_status23782ERROR nixbot/tests/test_orchestrator.py::test_cancel_during_eval_resolves_linked_eval_contexts23783ERROR nixbot/tests/test_orchestrator.py::test_effect_log_does_not_collide_with_attribute_log23784ERROR nixbot/tests/test_orchestrator.py::test_post_process_paths_are_forge_scoped23785ERROR nixbot/tests/test_orchestrator.py::test_effects_phase_error_keeps_succeeded_build23786ERROR nixbot/tests/test_orchestrator.py::test_reuse_post_process_error_still_reports_status23787ERROR nixbot/tests/test_orchestrator.py::test_reuse_with_missing_output_still_post_processes23788================= 477 passed, 29 skipped, 363 errors in 55.53s =================