我应该如何解释Heroku H18错误?

我们在日志中看到很多错误H18(请求中断)。 这应该如何解释,因为袜子=客户端在所有情况下,我认为这是客户端断开连接。 因此,是否可以安全地忽略这些?

这通常表明用户的networking已经断开(例如,移动用户的频率出现这种情况),或者terminal用户closures了他们的浏览器或类似的网站(例如按下“停止”,去到不同的页面等)。

你可以放心地忽略被标记为客户端的那些“sock = client”,但是可能想要调查服务器端(“sock = server”)closures的那些。

编辑(2015年8月10日) :我的答案下面的H18错误已过时。 Heroku 改变了H18错误的行为,使它们比以前更加具体(和严肃)。 这个答案现在更加正确。


H18错误

我最近问Heroku的支持是否有大量的H18错误(有时候是3-4个小时),我的应用程序正在接收并出现在新的Heroku仪表板(上面的屏幕截图)的Metrics部分。 我引用了catsby在这个主题上的回应,并要求确认他们是否实际上不可行。 这是我从Heroku支持收到的回应:

我刚刚在你的应用程序上经历了H18的最后24小时。 他们都是袜子=客户端,看着用户代理我看到很多通常的罪魁祸首。 移动浏览器的大部分,也是我见过其他应用程序的最新的Chrome也有问题,以及几天前。 除非您看到特定url或用户的模式,否则通常只是networking问题。

[这些H18错误是不可操作的并不总是如此。 有些应用程序确实在意,有时也意味着客户端崩溃,而不是networking错误。 浏览器不时崩溃,但特别是移动浏览器可能非常脆弱。 如果一个应用程序使用大量资产并触发“页面无响应”错误,您可能会在H18s中看到尖峰。 在这种情况下,有时候你可以做些什么。 其他应用程序完全服务于有线networking,永远不会期望它,在这种情况下,可能是一个错误的交换机或防火墙。 为了透明起见,我们仍然希望报告这些错误,因为无法判断它们是否可行。

总而言之,大多数情况下,如果他们是sock=client错误,您可以忽略它们,但是这确实表明客户端正在断开连接,这可能表示一个真正的问题,这取决于您的应用程序如何与客户端networking连接(例如,移动networking或真正的不良networking连接)…但可能你可以放心地忽略它们。

供参考:前2个答案不再正确(他们在写作时,但事情改变)。 H18s现在总是sock =服务器。 Heroku为sock = client添加了一个新的错误代码H27。

详情请点击: https : //devcenter.heroku.com/changelog-items/662

H18现在应该更加重视,而H27一般可以放心的忽略。