Misskey 8.12.0から8.12.0以前のインスタンスをフォローできない
フォローできる
フォローは成功したように見えるが、相手の方へは反映されていない
Misskey 8.12.0
Pleroma対応の変更が影響している??
8.10.0 <=> 8.12.0 で特に相互にフォロー/フォロー解除大丈夫そう
8.7.0(misskey.tmin.ml) <=> 8.12.0(misskey.m544.net) で確認したが特に問題なさそう
ちなみに発症したのははじめてインスタンスに認識されたアカウントだった。
既存はまだ確認してない。
相手先インスタンスに自分のアカウントが一度も認識されていない状態で送るとそうなった。
一度相手先インスタンスで、自分のIDを/@user@instanceで認識させてからフォロー送ったらフォローできた。バージョン関係ないかも。
両方とも新しいアカウントを作って、/@[email protected]でフォローして確認してみた
| 方向 | 通知 | 投稿 |
|:-:|:-:|:-:|
| 古 => 新 | 来る | 確認できない |
| 新 => 古 | 来ない | 届く |
新しいインスタンスから古いインスタンスをフォローしようとする時、できていない?
(相手先に自分のアカウントが一度も認識されていない状態)
自分のアカウント: @userA1@instanceA
相手のアカウント: @userB2@instanceB
1, instanceAで/@userB2@instanceBにアクセス
わかった
A(新)→B(旧) に 送ったときに、Bで未認知だと登録できない
A(新)→B(新) に 送ったときに、Bで未認知だと登録できない
本質的には、未認知ユーザが来たときの登録時のバグ(昔からある)
今回keyIdの形式を正しく修正したので顕在化したと思われる
新→新でダメなパターンは、受信側の新をさらに修正すれば大丈夫そう
新→旧パターンを救おうとすると、旧がバージョンアップするor新を戻すしかない
詳細はこんな感じ
ActivityPubでリクエストするときに署名用の公開鍵のIDを指定する箇所がある
この指定方法には以下の2形式あり
http://host/~acct:user@hostP2番めのはレガシーな形式で一部実装でしか使えないので、今回Pleroma対応時に1番目で送信するように変更している。
問題はないはずだったのだけど、Misskeyが2番目の形式で受け取った場合の処理にバグがあったらしく
なぜかユーザーの解決に上記の公開鍵IDのURLを使用してしまう。
そのため、新形式で送られてきた場合は新ユーザーが解決できなくなった。
※ actor: https://example.com/users/xxxxxxを使用するべきところ
公開鍵ID: https://example.com/users/xxxxxx/publicを使用してしまう
なぜMastdonから新形式で来た時は大丈夫だったのかというと
actor: https://example.com/users/xxxxxx
公開鍵ID: https://example.com/users/xxxxxx#main-key
みたいになっているため、#以降はリモートリクエスト時に無視されてactorと同じになるためと思われる。
該当の受信部分を修正すれば、8.12.0 => 修正後バージョン 分は大丈夫になるが、
8.12.0以降 => 8.12.0以前(修正後バージョンより前) はダメなまま。
完全に解決させるためには、受信部分以外の修正以外にも何かをする必要がある
(全インスタンスがバージョンが上がるまでまつ or 旧形式に戻してしまう or 旧インスタンスだけリクエストを分ける)
( @syuilo Misskey旧バージョンへのサポートをどこまで行うかって方針決まっていますか?なければ明確にしておくと良いかもしれません。 )
個人的には、下手にリストを作って解決するぐらいだったら切り捨てた方がよいと思います。
リスト自体をメンテナンスするのが大変になるのと、鯖缶がリスト更新を待たないと更新できなくなってしまうので……
@AyaMorisawaさんがおっしゃるように、サポート範囲を決めた方がよいかと思います。
皆さんありがとうございます。
Misskeyのバージョンアップはそれほど大変な作業ではないと思いますし、こちらが何かするよりほかのインスタンスが最新バージョンに追従するのを待った方が無難だと思いますがいかがでしょうか
だったりするので、そこまで急がなくてもいいのかもしれない?
https://fediverse.network/misskey
見る限りだと放置されてるインスタンス以外はバージョンアップついてきてるみたい?
Most helpful comment
だったりするので、そこまで急がなくてもいいのかもしれない?