bgs を更新
28
bgs.md
28
bgs.md
@@ -50,3 +50,31 @@ $ curl -X POST "https://bgs.${PDS_HOST}/admin/repo/reset?did=${did}" \
|
|||||||
$ 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
|
||||||
|
```
|
||||||
|
|||||||
Reference in New Issue
Block a user