えっとね、

・メンション
・返信(リプライ)

この二つ、違うから覚えておいてね。

メンションは、投稿本文中に @ つけてアカウント書くことで実行できるもので、そのアカウントに通知される。いくつでも指定できるよ。

どの投稿からメンションされたか合わせて通知するので、投稿に気が付いて、見に行くことができるね。

メンションは『言及』っていう意味だよ。

返信(リプライ)は、投稿同士の関係のことで、返信先になる元の投稿があって、そこに返信をぶら下げる形になる。

構造的に、返信の対象はひとつだけ。

で、返信自体は通知されないんだ。

返信の際にメンションが自動的につくので、返信された人に通知がいくんだよ。

実は、メンションをつけずに返信すれば、通知されない返信ができるよ。

ハッシュタグリレーからブースト通知来るやつ、来なくなるように仕様変更してるんですが、反映されてますか?(いつも通知されている皆さんへ)

ReDoS対策、ユーザーに正規表現を書かせないっていうのが最善手なんですが、まあ使いたいじゃないですか。

なので、システム的に影響を緩和しつつ、まずは自由に使って貰って、具合が悪いものがみつかったら個別対応する方向で運用しています。

他の機能もだいたいそういう方向です。

キーワード購読は、単語を並べる方式と、自分で正規表現を記述する方式の両方が使えます。

よくわからない場合は単語を並べる方式を活用してください。内部的には単純マッチではなく、ヘンなところにひっかからないように工夫されているので、ヘタな正規表現を自分で書くより結果が良好ということもあります。

スレッドを表示

早朝のメンテで、rubyのバージョン変更を行いました。現在3.2.6になっています。

合わせて、キーワード購読の正規表現マッチングにタイムアウトを設定しました。

これまで、キーワード購読の処理に非常に時間のかかる場合があり、ジョブが詰まる他、そのジョブがずっと計算しているのでCPU負荷をかけ続けるという問題が発生していました。

効果はマイルドでしたが、いわゆるReDoSという脆弱性にあたるものです。

※ ものすごく計算負荷の高い正規表現を処理させることで正常なサーバ機能を妨害するサービス拒否攻撃の一種

また、Ruby 3.2系以降は時間のかかる正規表現の一部が解消されていて処理自体も早くなっているので、全体にパフォーマンスが向上しているものと思います。

あけおめには間に合わなかったというか、リスクが高いので後回しにしていたんですが、先に投入できていればもっとスムースだったかもしれませんねー。

なお、期せずしてタイムアウトするような正規表現を設定していた人は、今回の変更以降、取りこぼしが発生している可能性があります。正直わからないと思いますが、急に流量が減った人は、正規表現を見直してみてください。

内部的に影響範囲の広いアップデートをかけました。

挙動に異常を見つけた際はお知らせください。

古いものを表示
Fedibird

様々な目的に使える、日本の汎用マストドンサーバーです。安定した利用環境と、多数の独自機能を提供しています。