ai/at
1
0

bgs を更新

2026-01-16 01:13:41 +00:00
parent 3f854d02c1
commit a5f3db98a7

30
bgs.md

@@ -49,4 +49,32 @@ $ curl -X POST "https://bgs.${PDS_HOST}/admin/repo/reset?did=${did}" \
```sh ```sh
$ curl -X POST "http://bgs.${PDS_HOST}/admin/pds/resync?host=${PDS_HOST}" \ $ curl -X POST "http://bgs.${PDS_HOST}/admin/pds/resync?host=${PDS_HOST}" \
-H 'Authorization: Bearer <BGS_ADMIN_KEY>'" -H 'Authorization: Bearer <BGS_ADMIN_KEY>'"
``` ```
## 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
```