首页 > 解决方案 > 在 Chrome、Firefox 和 cURL 上突然出现分块请求问题

问题描述

我的生产服务器似乎不知从何而来,在特定请求上出现了分块错误。服务器上没有更改任何配置文件,服务器上的其他任何内容都没有更改。我什至不确定从哪里开始调试此错误。

此分块错误仅发生在带有查询参数的 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 没有任何变化,但如果我添加 header "Expect: ",请求会在某个时候停止接收数据。

cURL 不是这里的问题,我需要这个请求来处理 Javascript AJAX 请求。提出此请求的文件已 7 个月未更改。

此请求的预期返回是来自数据库的 50 - 200 行。如果我直接对数据库进行 SELECT 查询,则没有问题。

我从哪里开始看?日志文件没有感兴趣的信息,服务器有足够的内存和 CPU。

我们的服务器是 Ubuntu 16.04 和 Apache 2.4。我们的 API 是 DreamFactory;那里的设置也没有改变。

标签: curlapache2chunking

解决方案


更改opcache.fast_shutdown=0我的 php.ini 文件似乎已经解决了这个问题。zend_mm_heap corruptedApache 的 error_log在我遇到此问题的每个请求上都读取了一个新行。

看到这个问题


推荐阅读