From a5f3db98a7b329e4791df5696e8633716a6b7c51 Mon Sep 17 00:00:00 2001 From: syui Date: Fri, 16 Jan 2026 01:13:41 +0000 Subject: [PATCH] =?UTF-8?q?bgs=20=E3=82=92=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bgs.md | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/bgs.md b/bgs.md index 37d0d65..f0c2680 100644 --- a/bgs.md +++ b/bgs.md @@ -49,4 +49,32 @@ $ curl -X POST "https://bgs.${PDS_HOST}/admin/repo/reset?did=${did}" \ ```sh $ curl -X POST "http://bgs.${PDS_HOST}/admin/pds/resync?host=${PDS_HOST}" \ -H 'Authorization: Bearer '" -``` \ No newline at end of file +``` + +## TLに投稿が表示されない場合 + +### 原因 + +bskyサービスがBGSのFirehoseを購読する際、BGSが`since: ""`(空文字列)を送信することがある。atprotoのバリデーションは`since`が`null`または有効なTID形式を要求するため、空文字列で`FirehoseValidationError`が発生し、bskyの`RepoSubscription`が停止する。 + +```sh +PDS → BGS (Firehose) → bsky (RepoSubscription) → bsky DB → TL表示 +``` + +`RepoSubscription`が停止すると、BGSからbskyへデータが流れなくなり、TLに投稿が表示されなくなる。 + +### 恒久的な修正 + +`210-bgs-since-empty-fix.patch`を適用してBGSを再ビルド。このパッチは`indexer/indexer.go`で空文字列の`since`を`null`に正規化する。 + +### 一時的な回避策 + +パッチを適用できない場合、bskyのsubscriptionテーブルにカーソルを挿入して問題のあるseq=1をスキップする: + +```bash +# bskyデータベースに接続してカーソルを設定 +$ docker compose exec database psql -U postgres -d bsky -c \"INSERT INTO subscription (service, method, state) VALUES ('wss://bgs.syu.is', 'subscribeRepos', 2) ON CONFLICT (service, method) DO UPDATE SET state = 2;\"" + +# bsky再起動 +$ docker compose restart bsky +```