HPE_INVALID_EOF_STATE是什么意思?

8

使用winston记录器与hapi.js一起使用时,我们偶尔会收到以下消息:

data: {"bytesParsed":0,"code":"HPE_INVALID_EOF_STATE"}

这是什么意思?它来自哪里?

2个回答

5
这是来自nodejs http解析器的错误,请参见此处了解更多细节。我不是c专家,不知道为什么会出现这个错误,但我从未在hapi或node中遇到过这种情况。另请参见此问题,其中包含一些更多背景信息,针对的是旧版本的node。

3
HPE_INVALID_EOF_STATE 中,HPE 代表 HTTP 解析器错误,而 EOF 则表示文件结束。可以将其解读为遇到了意外的文件(或字符串)结束的 HTTP 解析器错误。

那么我们再深入一些。当查看 特定行 时,我发现 HPE_INVALID_EOF_STATE 错误发生在收到0字节的HTTP数据包时。

它发生在 http_parser_execute() 方法中,很可能是由于到达了格式不正确的 HTTP 数据包所致。看起来这个问题已经被解决了,这是针对旧版本 Node.js 的情况: https://github.com/nodejs/node-v0.x-archive/issues/5220


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接