ログにかなりの数のエラー H18 (リクエストの中断) が記録されています。すべての場合で sock=client であるため、これらをどのように解釈する必要がありますか。切断しているのはクライアントであると想定しています。したがって、これらを無視しても安全でしょうか?
6 に答える
これは通常、ユーザーのネットワークが切断されているか(たとえば、モバイルユーザーの場合、これはある程度の頻度で発生します)、エンドユーザーがブラウザなどを閉じた(たとえば、[停止]を押した、別のページに移動したなど)ことを示します。
「sock=client」で本質的にクライアントエンドとしてタグ付けされているものは無視しても問題ありませんが、サーバーエンド(「sock = server」)によって閉じられているものを調査することをお勧めします。
編集 (2015 年 8 月 10 日) : H18 エラーに対する以下の回答は古くなっています。Heroku はH18 エラーの動作を変更し、以前よりも具体的 (かつ深刻) なものにしました。この回答はより正確になりました。
最近、Heroku のサポートに、かなりの数 (1 時間に 3 ~ 4 件) の H18 エラーが発生しており、新しい Heroku ダッシュボード (上のスクリーンショット) のメトリクス セクションにアプリが表示されていることについて尋ねました。このスレッドでのキャッツビーの回答を参照し、実際に対処できないかどうかを確認するように依頼しました。これは、Heroku サポートから受け取った応答です。
あなたのアプリで過去 24 時間の H18 を調べました。それらはすべて sock=client であり、User-Agent を見ると、多くの通常の犯人が見えます。ほとんどの場合、モバイル ブラウザと、数日前から他のアプリで問題が発生しているのを確認した最新の Chrome にも問題があります。特定の URL やユーザーなどのパターンが見られない限り、ネットワークの問題であることがよくあります。
[これらの H18 エラーは] 実用的ではないということは、常に正しいとは限りません。一部のアプリはそれを気にしますが、ネットワーク エラーではなくクライアント クラッシュを意味する場合もあります。ブラウザはときどきクラッシュしますが、特にモバイル ブラウザは非常に脆弱です。アプリが大量のアセットを使用し、「ページが応答していません」というエラーをトリガーする場合、H18 でスパイクが発生する可能性があります。そんな時、自分にできることがあります。他のアプリは完全に有線ネットワークでサービスされ、それを期待することはありません。その場合、スイッチまたはファイアウォールに障害がある可能性があります. 透明性を確保するために、これらのエラーは引き続き報告したいと考えています。これらのエラーが実行可能かどうかを判断する方法がないからです。
要約すると、ほとんどの場合、sock=client
エラーの場合は無視できますが、それはクライアントが切断されていることを示しており、アプリケーションがクライアントにどのようにネットワーク化されているか (モバイルまたはネットワーク接続が非常に悪いなど) によっては、実際の問題を示している可能性があります。 ..しかし、おそらくそれらを安全に無視できます。
参考までに: Ben Sheldonとcatsby の回答は、もはや正しくありません。執筆時点のものですが、事情が変わっています。H18 は常に sock=server になります。Heroku は、sock=client の新しいエラー コード H27 を追加しました。
詳細はこちら: https://devcenter.heroku.com/changelog-items/662
H18 は間違いなくあなたのサービスの問題であるため、より真剣に受け止めるべきです。H27 はクライアントの問題であるため、通常は安全に無視できます。