regression-env: refuse compose-era test DB URLs (localhost:543x / *_test_db) instead of reachability timeout
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 2/5
- 見積もり時間
- 1〜3時間
- 初心者へのやさしさ
- 72/100
- issue の種類
- 機能追加
- 明瞭さ
- 明確に書かれている
- 活発さ
- 活発
- 技術スタック
- docker-compose, postgresql, typescript
- 領域
- testing-qa
調査の方向性
tests/regression/lib/regression-env.mjs の isDevDatabaseUrl と legacyDevDatabaseUrl から始めて、既存の開発データの形式がどのように照合されているかを確認してください。このチェックを拡張し、ポート 5432〜5435 の localhost postgres URL と、_test_db で終わるデータベース名を拒否するようにしてください。REGRESSION_ALLOW_DEV_DB=1 による上書きは維持します。回帰テストの実行が、pnpm run bos dev または pglite::memory: を案内するメッセージとともに即座に失敗し、これらの URL に対して tests/regression/lib/start-stack.mjs の waitForDatabases に到達しなくなれば完了です。
索引モデルが issue の本文から書いたものです。
説明
Problem
ADR 0038 retired docker-compose: all test databases are in-memory pglite, and CI no longer runs postgres. But a compose-era URL can still sneak into .env.test (or .env) and the current dev-data guard does not catch it.
What happened in practice (PR #403): a new plugin's .env.test entry carried a stale compose-era test URL —
AGENT_CONNECT_DATABASE_URL=postgres://everythingdev:everythingdev@localhost:5434/api_test_db
The regression suite resolved it, waitForDatabases (tests/regression/lib/start-stack.mjs) probed localhost:5434, found nothing listening (line removed from CI), and every regression job failed after its full retry budget with:
Error: test databases not reachable: localhost:5434 ...
Why the guard missed it
legacyDevDatabaseUrl in tests/regression/lib/regression-env.mjs refuses only the dev-data shapes:
- pglite dev default (
pglite:.bos/db) - postgres on localhost with user/pass
everythingdev:everythingdevand db name exactlyapi_dborauth_db
api_test_db on port 5434 passes that check, so instead of a fail-fast refusal the run dies on a slow reachability timeout with no pointer at the actual mistake.
Proposal
Teach the guard to also classify compose-era test DB URLs and refuse them (with the same override escape hatch, REGRESSION_ALLOW_DEV_DB=1):
- localhost postgres URLs pointing at the compose-era test ports/hosts (5432–5435 range on localhost/127.0.0.1)
- db names matching the compose-test convention (
api_test_db,auth_test_db, and any*_test_db)
The refusal message should point at the fix: regenerate .env.test via pnpm run bos dev, or set the secret to pglite::memory: per ADR 0038.
Reference
- PR #403 incident:
fix(agent-connect): .env.test routes the plugin database to in-memory pglite (ADR 0038)(commit d620e39d) - Guard lives in
tests/regression/lib/regression-env.mjs(isDevDatabaseUrl/legacyDevDatabaseUrl) - Timeout lives in
tests/regression/lib/start-stack.mjs(waitForDatabases)
- 主要言語
- TypeScript
- スター
- 5
- フォーク
- 3
- 平均マージ
- 10時間 44分
- マージ済み PR(30日)
- 189
環境構築
- Dockerfile または Docker Compose ファイルあり
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
NEARBuilders/everything-dev のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 66/100
NEARBuilders/everything-dev#686 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
NEARBuilders/everything-dev#678 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 77/100
NEARBuilders/everything-dev#628 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
NEARBuilders/everything-dev#400 ·
メンテナーはふだん 1 日以内に返信
-
wayfinder:map
難易度 5/5 1週間以上 初心者へのやさしさ 20/100
NEARBuilders/everything-dev#739 ·
メンテナーはふだん 1 日以内に返信
NEARBuilders/everything-dev の issue をすべて見る
似ている issue
-
難易度 1/5 1時間未満 初心者へのやさしさ 88/100
-
bug needs triage
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
DSpace/dspace-angular#6511 ·
メンテナーはふだん 1 日以内に返信
-
area: frontend area:byok bug severity:low
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
メンテナーはふだん 1 日以内に返信
-
Phone app shows Unknown for a remote machine whose key changed対応中かも @janicduplessis が今日担当しました。 オープンarea: mobile priority: P3 type: bug
難易度 1/5 1時間未満 初心者へのやさしさ 78/100
appandflow/stim#5006 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
Area - Local to Cloud Bug
難易度 2/5 1〜3時間 初心者へのやさしさ 66/100
microsoft/vscode-mssql#23209 ·
メンテナーはふだん 1 日以内に返信