Comment devrais-je interpréter les erreurs Heroku H18?

Nous voyons beaucoup d’erreur H18 (Request Interrupted) dans les journaux. Comment devraient-ils être interprétés, puisque sock = client dans tous les cas, je suppose que c’est le client qui se déconnecte. Devrait-il donc être prudent de les ignorer?

Cela indique généralement que le réseau de l’utilisateur a été déconnecté (par exemple, cela arrive avec une certaine fréquence pour les utilisateurs mobiles) ou que l’utilisateur final a fermé son navigateur ou similaire (par exemple, appuyé sur Stop, sur une autre page, etc.).

Vous pouvez ignorer en toute sécurité ceux qui sont étiquetés comme étant de type client avec “sock = client”, mais souhaiteriez peut-être rechercher ceux qui sont fermés par le serveur (“sock = server”).

Edit (10 août 2015) : Ma réponse ci-dessous pour les erreurs H18 est obsolète. Heroku a changé le comportement des erreurs H18, les rendant plus spécifiques (et plus graves) qu’avant. Cette réponse est maintenant plus correcte.


H18 Erreurs

J’ai récemment demandé à l’assistance Heroku un nombre significatif d’erreurs H18 (3 à 4 heures par heure). Mon application recevait et était en train de faire surface dans la section Mesortingcs du nouveau tableau de bord Heroku (capture d’écran ci-dessus). J’ai référencé la réponse de Catsby sur ce sujet et je lui ai demandé de confirmer si elles ne pouvaient en fait pas être utilisées. C’est la réponse que j’ai reçue du support Heroku:

Je viens de parcourir les dernières 24 heures du H18 sur votre application. Ils sont tous sock = client et en regardant l’agent utilisateur, je vois beaucoup de coupables habituels. Les navigateurs mobiles pour la plupart et aussi le dernier Chrome que j’ai vu d’autres applications ont également des problèmes depuis quelques jours. À moins que vous ne voyiez un modèle tel que celui d’une URL ou d’un utilisateur particulier, il ne s’agit souvent que de problèmes réseau.

[Que ces erreurs H18 sont] Non exploitable n’est pas toujours vrai. Certaines applications s’en préoccupent et cela peut parfois signifier un crash client plutôt qu’une erreur réseau. Les navigateurs se bloquent de temps en temps, mais les navigateurs mobiles peuvent être particulièrement fragiles. Si une application utilise beaucoup d’actifs et déclenche des erreurs “ne répondant pas à la page”, vous pouvez voir des pics dans les H18. Dans ce cas, il y a parfois quelque chose que vous pouvez faire pour y remédier. Les autres applications sont entièrement desservies par des réseaux câblés et ne s’y attendraient jamais. Dans ce cas, il pourrait y avoir un commutateur ou un pare-feu défectueux. Par souci de transparence, nous souhaitons toujours signaler ces erreurs, car il est impossible de savoir si elles peuvent ou ne peuvent pas être utilisées.

Pour résumer, la plupart du temps, vous pouvez les ignorer si ce sont sock=client erreurs sock=client , mais cela indique que les clients se déconnectent, ce qui pourrait indiquer un réel problème selon la façon dont votre application est mise en réseau avec ses clients. connexion) … mais vous pouvez probablement les ignorer en toute sécurité.

FYI: Les deux premières réponses ne sont plus correctes (elles étaient au moment de l’écriture, mais les choses ont changé). H18s sont maintenant toujours sock = server. Heroku a ajouté un nouveau code d’erreur H27 pour sock = client.

Détails ici: https://devcenter.heroku.com/changelog-items/662

H18 devrait être pris plus au sérieux maintenant, alors que les H27 peuvent généralement être ignorés en toute sécurité.