最近、未読メッセージの青い数字が(本来表示されないはずの時に)表示されるのはなぜですか?

これはメタで非常に新しい(今日?)現象です。「最新」にいくつかのトピックがあり、未読メッセージを示す青い数字が表示されています(1 件のみだったと思います)。なぜ表示されるのか分かりません。私が言及されたわけでもなく、トピックは「通常」モードです。監視も追跡もしていません。私が一度も開いたことのないトピックだったと思います。「未読」セクションを確認したところ、それらは表示されていませんでした。他の人も同じ現象に遭遇していますか?

(追伸:私は今、酔っていません)

どのトピックで問題が発生したか分からないと、デバッグが難しいですね。もし再度問題が発生した場合は、どのトピックで起きているかメモを取ってみていただけますか?

Discourseの設定に基づき、過去数日間に作成されたトピックについては、「最新」リストのタイトル後に青いドットが表示されるはずです。これらのトピックは「新しいトピック」リストにも記載されている必要があります。「最新トピック」リストに数字が入った青いアイコンが表示されている場合は、あなたがウォッチまたはトラッキングしているトピックに新しい投稿があることを示すものです。これらのトピックは「未読」リストにも表示されるはずです。

トピックを4分間読むと自動的にウォッチ設定が適用されるため、おそらくこれが原因だと思われます。

こちらのトピック:Could Discourse offer a StackExchange-like SSO/Federated login service? と、こちらのトピック:WordPress comments are showing が「未読 1」というメッセージを表示していました。これは、私たちが今いるこのトピックを作成する直前のことです。

「青いドット」について何が起こっていたのかは確信が持てません。あまり注意を払っていなかったためです。
おっしゃることはすべて理解しており、確かに私が意図していた通りでした。青いアイコンが表示されるべきではなかったと(かなり)確信しています。それらは、滞在時間によって自動的にウォッチされるものではなかったからです。前述の通り、私はそれらを一度も開いたことがないと思いますし、後で確認したところ、どちらも「通常」のステータスでした。

今日のメタへの前回の訪問時には、この「問題」を抱えたトピックが 1 つあったと記憶しています。詳しくは確認しなかったので、どのトピックだったかは覚えておらず、完全に確信も持てません。しかし、このメッセージの冒頭で説明した事象は、確かに発生したはずのないものであり、私自身もかなり確信しています。以前にそのようなことは見たことがなかったと思います。これが何かの助けになれば幸いです。

また、未読メッセージが1件ある(青い数字)というトピックが表示されてしまいました。これは本来あるべきことではないはずです(あるいは、なぜそうなるのかわかりません)。このトピックです:Email for specific category

頻繁に起こっているわけではありません。たまに一度ある程度です。どうやら、いつも未読メッセージは1件だけ表示されるようです(まだ確信はありません。追跡してみます)。これまで発生した3つのトピックを比較してみましたが、目立ったパターンは見当たりませんでした。

他の誰もこの現象に気づいていませんか?

(あるいは、日付や時刻の問題でしょうか?もしかすると、前回の発生からちょうど1週間後に再び起きたのかもしれません?)

この件について少し考えてみたところ、ブラウザを「最新」ページに開いたままにして戻り、青いバー「x件の新しいまたは更新されたトピックを表示」をクリックしたときに発生する可能性があります。これは、日曜日の早朝の短い時間枠内に投稿されたメッセージに限って、そのような状況でしか起こらないのかもしれません!?

まだ確信はありません(今後この仮説を検証します)が、私が目撃した現象から考えると、理にかなっているように思えます。ブラウザを「最新」ページに長時間開いたままにしている人はあまりいないかもしれません(私はそうしていますが)、そのため、この現象があまり報告されていないのかもしれません。

再現を試してみたい場合は、@simon さん、ぜひお試しください:次の週末にブラウザを「最新」ページに開いたままにし、しばらくしてから青いバーをクリックして新しいメッセージを確認してみてください。私の推測が正しければ、もしかすると発生するかもしれません。

さらに続けます:現在の状況としては、metaをブラウザで「最新」ページに開いたままにし、時間の経過とともに青いバーをクリックして新しいメッセージを確認する行為と関連しているように思えます。興味深い点は、あるトピックで発生した後、そのトピックに入り、戻るボタンで退出すると、さらに複数のトピックで同様の現象が起きたことです(ただし、各トピックには常に「1」の青い数字のみが表示されました)。しかし、ブラウザで「ページを再読み込み」するだけで、それらは消えました。

つまり、数日間ページを再読み込みせず、「継続的」に使用している場合に発生する可能性があります(問題が私の側にあるわけではない限り!?)

たまにこの現象が起きるんです。再び発生した後(「通常」の青い数字と、以前見たことのないトピック)にこのトピックを見つけ、その数字が実際何を表しているのかを調べるために検索しました。

どうやらバグのようです(「未読」メッセージを表していますが、あなたはそのトピックを追跡も監視もしていません!そもそもそれらに一度も入ったことがないことさえよくあります)。現在、私にも同じ現象が発生しています:かなり「偶発的」です。いつかその原因を突き止め、解決できればよいのですが。

これは昨日ブックマークした投稿です。青い丸は「新規」、灰色の丸は「未読」を示しています。

ただし、メタからは青い円内の数字を「未読」と呼ぶものがあります(数字の1が青い円内に表示されます):

あなたの未読トピックがここに表示されます。

デフォルトでは、以下の条件に該当する場合、トピックは未読とみなされ、未読数が1として表示されます:

  • トピックを作成した場合
  • トピックに返信した場合
  • トピックを4分以上読んだ場合

または、各トピックの下部にある通知コントロールを通じて、トピックを明示的に「追跡中」または「監視中」に設定した場合。

この設定を変更するには、設定 をご覧ください。

おそらく、ここでは話題から少しそれてしまっていますね…

他にも、一見無関係に見えますが、どうやら関連していると思われる問題があります。ここ数日、私がフォロー(ウォッチ)しているいくつかのトピックに、未読メッセージが大量に表示されています。これらの青い丸は、前述のバグとは異なり、実際にフォローしているトピックに付いています。

「未読投稿」の数は、トピック内の実際のメッセージ数よりもはるかに多いです。もしかすると、このトピックから大量のメッセージが削除されたのではないでしょうか?削除されたメッセージが実際には存在しなくなっているにもかかわらず、「未読」として表示されている可能性があります。私が最後に遭遇したのはこのトピックです:https://meta.discourse.org/t/discourse-signatures/42263(返信が4件しかないのに、92件の未読メッセージと表示されています)

これはおそらく、「青い丸」や「未読メッセージ」に関連する別のバグではないでしょうか。

はい、削除があるとカウントがずれます。

いつかこれを修正する価値はありますか?削除時に「未読」数を適切に処理するべきでしょう。あなたの回答は「いいえ」という意味に取れますが…?:confused:

現在の動作では、大量削除が明らかになっており、少し奇妙です(すでに読んだ、さらには存在しないはずの投稿について「x 件の投稿を読む必要があります」と通知されてしまいます)。

これは非常に複雑な変更であり、極端なパフォーマンスコストを伴わずにこのカウントを修正することはできません。

フロントページで 100% 正確なカウントを取得するには、表示しているすべてのトピックに含まれるすべての投稿を確認する必要があります。これはコストが高すぎ、フロントページの表示が非常に遅くなる原因となります。

まあ、そうでしょう。
仕組みがわからないので、私の考えが的外れならご容赦ください。私の頭の中では、削除が発生した際にサーバー側で何か処理を行って、すべてのユーザーの数を削除分だけ修正するといったことを想定していました。フロントページで削除された投稿があるかどうかを毎回チェックするのは理にかなっていないことは理解しています。特に、削除は例外であり(新規投稿が基本です)。

カウントはすべて動的です。

  1. あなたが読み進めた投稿番号が何であるかがわかります
  2. トピックの最高投稿番号がわかります
  3. 重要な情報: 既存のトピックへのハイパーリンクを壊したくないため、投稿番号の付け直しは行いません。1000 件の削除後に投稿を作成した場合、その投稿番号は 1001 となります。

各ユーザーの実際の数値についてサーバー側にキャッシュを保持していません。もしそうした場合、投稿や削除のたびに非常に高コストな再計算が必要になる可能性があります。例えば:

  • 投稿 1
  • 投稿 2 削除
  • 投稿 3
  • 投稿 4 削除
  • 投稿 5

この実装では、削除時にすべてのユーザーに対して全件をカウントし、そのキャッシュを常に同期させる必要があります。このような集計のコストは非常に非常に高いものです。

@sam さん、ご説明いただきありがとうございます!

「それほどひどくない」ように思えます(削除された投稿も含めてカウントされていることは誰でも理解できると思います)。ただ、これが私が目撃した状況にどうつながるのか、理解に苦しむ部分があります。例えば、最後に「92 の未読投稿」と表示された場合です。私の訪問の間に 92 件の新しい投稿が作成され、かつ削除されたとは考えにくいです。

最大の疑問は、(最高投稿番号 - 最終閲覧投稿番号) の差が負になった場合、どうなるのかということです。現在、システムはこの負の数の絶対値を未読投稿数として表示していないでしょうか?もしそうなら、修正すべき点はこれだけです:負の数を未読メッセージとして表示しないようにする。

問題は、「最高投稿番号」が実際に「あなたが読み終えた投稿番号」より小さくなった場合、つまり最後の投稿や最後のいくつかの投稿が削除された場合に発生します。トピックの最後の投稿が削除されていない限り、私の説明の理解に基づけば、問題はないはずです。上記の例では、トピックの最初の投稿のみが残され、すべて削除されたため、「最高投稿番号」が OP(元投稿者)の投稿番号になったと考えられます。

そのケースは防いでいます。青い吹き出しは表示されません… (-55) のような値は表示しません。

例:

  • 投稿 1
  • 投稿 2
  • 投稿 3   ← ここまで読んだ
  • 投稿 4
  • 投稿 5

その後:

  • 投稿 1
  • 投稿 2
  • 投稿 3   ← ここまで読んだ
  • 投稿 4
  • 投稿 5

未読の投稿はなく、青い吹き出しも表示されません。

その後:

  • 投稿 1
  • 投稿 2
  • 投稿 3   ← ここまで読んだ
  • 投稿 4
  • 投稿 5
  • 投稿 6

未読は 3 つあることになっています… 実際には 1 つだけですが、これは現在の実装の代償であり、単純な方法で改善することはできません。

@sam、あなたが何を言っているのか、そしてどのように説明しているのかは理解できます(それは理にかなっており非常に明確です)が、Discourse で今起きていることとは一致していないようです :confused:

最後の例:今、このトピック Discourse BBCode で 29 件の未読投稿が表示されています。前回ここを訪れたとき(それほど長く前ではありませんが)未読メッセージはまったくなかったと確信していますが、今では OP と 2 時間前の投稿 2 件のみ(トピック内の総メッセージ数 = 3)が表示されています。私が前回訪れてから 27 件の新しい投稿が作成されて削除されたとは考えにくいのですが、そうだったのでしょうか?(それが簡単な説明になるのですが!)。確認していただけませんか?(もし確認できないなら、なぜ「29 件の未読」という青いバッジが表示されたのでしょうか?)

もしかすると、このようなトピックに関連しているのかもしれません:「このトピックへの返信は 1 ヶ月後に自動的に削除されます」。あるいは、ユーザーがトピックをフォローし始めたタイミングに関連しているのでしょうか?

少し混乱しています :wink:

@sam 参考までに、このトピックについて「未読投稿 146 件」という青いバブルが表示されました:https://meta.discourse.org/t/discourse-calendar/97376。しかし、あなたの前述の説明によると、それがどのようにして起こり得るのか理解できません。私が考えられる唯一の可能性は、実際の投稿が削除された際に「既読までの位置」が下がることです(あなたはそれが起こらないと言いましたが、そうではないようです)。いずれにせよ、大量の削除が発生すると、未読投稿を示す大きな青いバブルが表示されることは事実です。

そのトピックには139件の削除された返信があり、これが確かに原因です。

最後の読み込み済み投稿が存在しない場合、最高読み込み番号をリセットする正規化コードがいくつかあると考えています。この動作の調整を検討してもよいかもしれません。

素晴らしい、まさにそれが目的だったのですね。

もう一つ quick な質問ですが、約 200 件の投稿が削除された別のトピックを見かけました。なぜ完全に削除するのではなく、「アーカイブ」カテゴリを作成し、これらの投稿をそこに「アーカイブ済みトピック」として移動させないのでしょうか?このカテゴリはデフォルトでは検索対象から除外しつつ、必要に応じて検索できる機能を持たせることも可能です。こうすれば、過去の「知識」や議論を誰でもアクセス・検索・閲覧できる形で残しつつ、目指している「整理」や「剪定」の効果も得られます。

これらのメッセージを全員がアクセスできるように維持する「コスト」は、本当に高すぎるのでしょうか?(余談ですが、完全に削除されているのか、それとも内部ではまだアクセス可能なのでしょうか?つまり、公開からは削除されているだけ、ということでしょうか?)

ありがとうございます。