いつものように、この問題を少し広げて、3〜5箇所の障害に関する、まあまあ面白い(?)物語としてお話しします。
真夜中に4時間かけて調査した後の話なので、そう面白いものでもありません。技術的に不正確な部分もあるかもしれませんが、間違いを含めながらでも、より読みやすくするためにこうしています。
基本的事実(説明が長くなってすみません):私のSSOは自宅サーバーにリダイレクトされます(数年前にGandiがいくつかの問題を解決できず、Dynadotに移行したためです)。また、Hostpapaが非常に信頼できるLFCホスティングを買収したことで、彼らが何かを無言でアップグレードして、インフラ全体がダウンするリスクを避けるためにも、リダイレクトする方がうまくいくことがわかりました。
さて、ここからが3箇所(いや、これを5箇所もの障害としてカウントしてもいいでしょうか?それなら新記録です)です。
1*) Operaが今日また更新され、どうやら301/302リダイレクトを非常に(好まない)扱い、それらをハードキャッシュしてしまうコードが追加されたようです(Chromium関連)。
2*) Dynadotが今夜30秒以上の遅延が発生していたようです(Chromiumの問題を引き起こすのに必要な時間であり、これがキャッシュされてしまったので、まずい)。
3*) Discourseがクラッシュしました(上記のoopsのことです)。SSOに30秒以内にアクセスできなかったためです。アプリを再起動する必要がありましたが、Discourseが再起動までダウンしていたのか、それともダウンしていなかったのかは実際には不明です(パニックモードになっていました
)。Geminiはログに基づいて、sso/rails/redisなどをループで実行するよう私に提案しました。これはアップグレードを試みた後ですが、この点に関連付けて述べています。
4*) 何が起きているのか理解できないため、念のためLinuxを再起動し、Discourseのアップグレードを開始しました。しかし、GitHubの問題により失敗しました。そして、いつものようにまずディスクを少しクリーンアップする必要がありましたが、0GBにはなっていませんでした(それならredisの問題の原因にもなり得たでしょう)。そして、はい、今後は安定したように見えるので、クラウドに10GB追加し、おそらくArkshineのアップグレードも行う予定です。
5*) 1番目の問題に近いですが、これらすべてを解決しようとしている間、どこかで修正されたか確認するためにページを何度もハードリフレッシュしていました。おそらく、最初の障害からキャッシュされたリダイレクトに常にヒットしているのだろうと推測していますが、そのため、最初の再起動後も問題が修正されたかどうかも見ることができません。
- SSOには問題なくアクセスできます。
- SSOを使用していない別のドメインのサイトも正常に動作しています。
- DiscourseでSSOを無効にするとフォーラムは表示されますが、通常のログインが機能したことがないので、あまり助けにはなりません。しかし、少なくとも本当にSSOが問題を引き起こしていることはわかりました。
- Geminiはプライベートウィンドウでテストするよう提案したので、実際にFirefoxを起動してみたら、フォーラムは正常に動作していました。素晴らしい、ただし… ええと?
- Operaは依然として失敗します。はい、おそらくリダイレクトをキャッシュしているのでしょうが、当時私はそれを知らませんでした。まだサイトのCookieやキャッシュなどをクリアするつもりはありません。
- 動作していることがわかったので、実際にやりたかった作業をFirefoxを使って30分ほど行いました。
- Operaを再起動したら、ほら、フォーラムが表示されました。もう少し早くOperaを再起動していたかもしれません、覚えていませんが、おそらくキャッシュがタイムアウトして、適切なリフレッシュが行われたのでしょう。
面白いことに、今朝目覚めたらOperaがまたアップグレードされていました。このハードキャッシュのアップグレードが、他の場所でも多くの問題を引き起こしたかもしれません
。
追記:3) はもちろん、私たちにとって最も興味深い部分です。まだログから見つかるかもしれません(必要なら掘り下げます)。Discourseがクラッシュした場合、タイマーを使って再起動を試みますか?それとも、アプリを再起動するまでサイト全体がダウンしていたのですか?