【发布时间】:2020-09-04 14:22:31
【问题描述】:
我的生产服务器在特定请求上出现了分块错误,这似乎无处不在。服务器上没有更改任何配置文件,服务器上的其他任何内容都没有更改。我什至不知道从哪里开始调试这个错误。
此分块错误仅发生在 1 个带有查询参数的 GET 请求上。
在 Chrome 上,错误是:
net::ERR_INCOMPLETE_CHUNKED_ENCODING 200 (Ok)。
为了确保这不是 Chrome 特定的问题,我在 Firefox 上进行了尝试,但同样的事情发生了,尽管出现了不同的错误 SyntaxError: JSON.parse: unterminated string at line 。检查响应显示 Firefox 正在从请求中接收一些 JSON,但不是全部。
在服务器上,我使用 cURL 获取具有完全相同查询参数的 URL,并收到此错误:ncurl: (18) transfer closed with outstanding read data remaining。如果我使用 HTTP 1.0 没有任何变化,但如果我添加标头 "Expect: " ,则请求会在某些时候停止接收数据。
cURL 不是这里的问题,我需要这个请求来处理 Javascript AJAX 请求。提出此请求的文件已 7 个月未更改。
此请求的预期返回是来自数据库的 50 - 200 行。如果我直接在数据库上做SELECT查询,是没有问题的。
我从哪里开始寻找?日志文件没有感兴趣的信息,服务器有足够的内存和cpu。
我们的服务器是 Ubuntu 16.04 和 Apache 2.4。我们的 API 是 DreamFactory;也没有更改任何设置。
【问题讨论】: