program story

Chrome net :: ERR_INCOMPLETE_CHUNKED_ENCODING 오류

inputbox 2020. 8. 4. 07:20
반응형

Chrome net :: ERR_INCOMPLETE_CHUNKED_ENCODING 오류


지난 2 개월 동안 Chrome 개발자 콘솔에서 다음과 같은 오류가 발생했습니다.

net::ERR_INCOMPLETE_CHUNKED_ENCODING

조짐:

  • 페이지가로드되지 않습니다.
  • 잘린 CSS 및 JS 파일.
  • 페이지가 걸려 있습니다.

서버 환경 :

  • 아파치 2.2.22
  • PHP
  • 우분투

이것은 사내 Apache 서버에서 발생합니다. 다른 사용자에게는 일어나지 않습니다. 즉, 이 문제를 경험 한 사용자가 없으며 개발자 팀의 다른 사람도 없습니다.

다른 사람들은 정확히 동일한 버전의 Chrome으로 동일한 서버에 액세스하고 있습니다. 또한 모든 확장 프로그램을 사용 중지하고 시크릿 모드에서 탐색을 시도했지만 아무런 효과가 없습니다.

Firefox를 사용했는데 정확히 같은 일이 발생합니다. 잘린 파일 및 기타 Firefox가 콘솔 오류를 발생시키지 않으므로 Firebug를 통해 HTTP 요청을 검사하여 문제를 확인해야합니다.

Apache의 응답 헤더 :

Cache-Control:no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Connection:close
Content-Encoding:gzip
Content-Type:text/html; charset=utf-8
Date:Mon, 27 Apr 2015 10:52:52 GMT
Expires:Thu, 19 Nov 1981 08:52:00 GMT
Pragma:no-cache
Server:Apache/2.2.22 (Ubuntu)
Transfer-Encoding:chunked
Vary:Accept-Encoding
X-Powered-By:PHP/5.3.10-1ubuntu3.8

테스트하는 동안 htaccess 파일에서 HTTP 1.0을 강제 실행하여 문제를 해결할 수있었습니다.

SetEnv downgrade-1.0

이것은 문제를 제거합니다. 그러나 HTTP 1.1보다 HTTP 1.0을 강제하는 것은 적절한 해결책이 아닙니다.

업데이트 :이 문제가 발생하는 유일한 사람이므로 클라이언트 쪽 문제인지 여부를 조사하는 데 더 많은 시간을 할애해야한다고 생각했습니다. Chrome 설정으로 이동하여 "기본값으로 복원"옵션을 사용하면 약 10-20 분 동안 문제가 사라집니다 . 그런 다음 돌아옵니다.


확인. 이 테스트를 세 번 테스트 한 결과 안티 바이러스 (ESET NOD32 ANTIVIRUS 5)로 인해 발생한 것으로 100 % 확신 합니다.

실시간 보호를 비활성화 할 때마다 문제가 사라집니다. 오늘은 실시간 보호를 6-7 시간 동안 끈 상태로 두었지만 문제가 발생하지 않았습니다.

몇 분 전에 문제가 1 분 이내에 나타나도록 다시 켰습니다.

지난 24 시간 동안, 나는 실시간 보호를 다시 켜고 끈다. 매번-결과는 같습니다.

업데이트 : 카스퍼 스키 안티 바이러스에서 실시간 보호와 동일한 문제를 겪은 다른 개발자를 만났습니다. 그는 그것을 비활성화하고 문제가 사라졌습니다. 즉이 문제는 ESET에만 국한되지 않습니다.


페이지를 전송하는 중에 Chrome이 차단되었다는 오류가 발생했습니다. 귀하의 문제는 이유를 파악하려고합니다.

분명히 이것은 몇 가지 버전의 Chrome에 영향을 미치는 알려진 문제 일 수 있습니다. 내가 알 수있는 한,이 버전이 전송되는 청크의 내용 길이와 해당 청크의 표현 된 크기에 크게 민감한 문제입니다 (나는 그 중 하나에서 멀리 떨어져있을 수 있음). 요컨대, 약간 불완전한 헤더 문제가 있습니다.

반면에 서버가 터미널 0 길이 청크를 보내지 않을 수 있습니다. 로 고칠 수 있습니다 ob_flush();. Chrome (또는 연결 또는 무언가)이 느려질 수도 있습니다. 따라서 연결이 닫히면 페이지가 아직로드되지 않았습니다. 왜 이런 일이 일어날 지 모르겠습니다.

편집증 프로그래머가 여기에 대답합니다 :

<?php
    // ... your code
    flush();
    ob_flush();
    sleep(2);
    exit(0);
?>

귀하의 경우에는 스크립트 시간이 초과되었을 수 있습니다. 왜 그것이 당신에게만 영향을 미치는지 잘 모르겠지만 많은 경쟁 조건에 처할 수 있습니까? 그것은 완전히 추측입니다. 스크립트 실행 시간을 연장하여이를 테스트 할 수 있어야합니다.

<?php
    // ... your while code
    set_time_limit(30);
    // ... more while code
?>

Chrome 설치를 업데이트해야하는 것처럼 간단 할 수도 있습니다 (이 문제는 Chrome에만 해당됨).

업데이트 : PHP (동일한 로컬 호스트에 있음)가 버퍼링 출력 하는 동안 치명적인 오류가 발생했을 때이 오류를 마침내 복제 할 수있었습니다 . 나는 출력이 너무 많이 엉망이되어 많은 용도로 사용하기에 충분하지 않다고 생각합니다 (헤더가 거의 없지만 내용이 거의 없음).

특히, 실수로 PHP가 포기할 때까지 실수로 코드를 재귀 적으로 호출했습니다. 따라서 서버는 터미널 0 길이 청크를 보내지 않았습니다. 이는 이전에 확인한 문제였습니다.


나는이 문제가 있었다. 이 질문에 대한 대부분의 다른 답변을 시도한 후에 그것을 추적했습니다. 이는 디렉토리 의 소유자 및 권한으로 인해 발생했으며 /var/lib/nginx특히 /var/lib/nginx/tmp디렉토리가 올바르지 않습니다.

tmp 디렉토리는 fast-cgi에서 응답이 생성 될 때 특정 크기 이상인 경우에만 응답을 캐시하는 데 사용됩니다. 따라서이 문제는 간헐적이며 생성 된 응답이 큰 경우에만 발생합니다.

nginx <host_name>.error_log권한 문제가 있는지 확인하십시오 .

수정하려면 소유자와 그룹 /var/lib/nginx및 모든 하위 디렉토리가 nginx인지 확인하십시오.


다음은 모든 클라이언트에 대해 수정해야합니다.

//Gather output (if it is not already in a variable, use ob_start() and ob_get_clean() )    

// Before sending output:
header('Content-length: ' . strlen($output));

그러나 제 경우에는 다음이 더 나은 옵션이었고 수정했습니다.

.htaccess :

php_value opcache.enable 0

OMG, 5 분 전에 같은 문제가있었습니다. 나는 해결책을 찾기 위해 몇 시간을 보냈다. 처음에는 안티 바이러스를 비활성화하면 Windows의 문제가 해결되었습니다. 그러나 바이러스 백신이없는 다른 Linux PC에서 문제를 발견했습니다. nginx 로그에 오류가 없습니다. 나는 uwsgi"깨진 파이프"에 대해 뭔가를 보여 주었지만 모든 요청에 ​​대해 그렇지는 않았다. 무엇을 알고? 장치에 남은 공간이 없었습니다. 데이터베이스 로그에서 서버를 다시 시작할 때 찾은 것을 df승인했습니다. 안티 바이러스가 해결 된 이유에 대해서만 설명하면 브라우저 캐싱을 막을 수 있지만 (모든 요청을 확인해야 함) 이상한 동작이있는 브라우저는 단순히 잘못된 응답을 무시하고 캐시 된 응답을 표시 할 수 있습니다.


내 경우에는 /usr/local/var/run/nginx/fastcgi_temp/3/07/0000000073" failed (13: Permission denied)아마도 Chrome net :: ERR_INCOMPLETE_CHUNKED_ENCODING 오류가 발생했을 수 있습니다.

/usr/local/var/run/nginx/nginx 를 제거 하고 다시 만들도록했습니다.

$ sudo rm -rf /usr/local/var/run/nginx/
$ sudo nginx -s stop
$ sudo mkdir /usr/local/var/run/nginx/
$ sudo chown nobody:nobody /usr/local/var/run/nginx/
$ sudo nginx

알려진 Chrome 문제입니다. Chrome 및 Chromium 버그 추적기에 따르면 이에 대한 보편적 인 해결책은 없습니다. 이 문제는 서버 유형 및 버전과 관련이 없으며 Chrome에 있습니다.

이 문제 Content-Encodingidentity해결하기 위해 헤더를 설정 하면 나에게.

에서 developer.mozilla.org

정체성 | 식별 기능을 나타냅니다 (예 : 압축 및 수정 없음).

따라서 경우에 따라 Chrome에서 gzip 압축을 올바르게 수행하지 못할 수도 있습니다.


여기서 문제는 Avast AV였습니다. 사용 중지하자마자 문제가 사라졌습니다.

그러나 나는이 행동의 원인을 정말로 이해하고 싶습니다.


방금 비슷한 문제가 발생했습니다. 그리고 페이지에 서수 값이 255보다 큰 UTF-8 문자 (예 : 멀티 바이트)가 포함 된 경우에만 발생했습니다.

결국 문제는 Content-Length 헤더가 계산되는 방식이었습니다. 기본 백엔드는 바이트 길이가 아닌 문자 길이를 계산했습니다. 콘텐츠 길이 헤더를 끄면 백엔드 템플릿 시스템을 수정할 수있을 때까지 일시적으로 문제가 해결되었습니다.


이것은 수년 동안 분리 된 두 개의 서로 다른 클라이언트 서버에서 문제없이 수백 대의 다른 서버에 배포 된 동일한 코드를 사용하여 발생했습니다.

이러한 클라이언트의 경우 주로 HTML을 스트리밍하는 PHP 스크립트, 즉 출력을 사용할 수있게되면 출력이 브라우저로 전송되는 "연결 : 닫기"페이지에서 발생했습니다.

스크립트가 완료되기 전에 그리고 시간 초과가되기 전에 PHP 프로세스와 웹 서버 간의 연결이 너무 일찍 끊어졌다.

문제는 메인 php.ini 파일에서 opcache.fast_shutdown = 1이었습니다. 이 지시문은 기본적으로 비활성화되어 있지만 일부 서버 관리자는 여기에 성능 향상이 있다고 생각합니다. 모든 테스트 에서이 설정을 사용하여 긍정적 인 차이점을 언급 한 적이 없습니다. 필자의 경험에 따르면 일부 스크립트는 실제로 더 느리게 실행되며 스크립트가 여전히 실행되는 동안 또는 웹 서버가 여전히 버퍼에서 읽는 동안 실행이 종료 될 때 종료로 들어가는 끔찍한 트랙 레코드를 가지고 있습니다. https://github.com/zendtech/ZendOptimizerPlus/issues/146 과 관련하여 2017 년 2 월 현재 해결되지 않은 2013 년부터 오래된 버그 보고서가 있습니다.

이 ERR_INCOMPLETE_CHUNKED_ENCODING ERR_SPDY_PROTOCOL_ERROR로 인해 다음 오류가 나타나는 것을 보았습니다. 때때로 관련 segfault가 기록됩니다. 때로는 그렇지 않습니다.

둘 중 하나가 발생하면 phpinfo를 확인하고 opcache.fast_shutdown이 비활성화되어 있는지 확인하십시오.


가장 쉬운 해결책은 설정된 프록시 위치에 대한 proxy_read_timeout을 nginx.conf에서 더 높은 값 (120 초)으로 늘리는 것입니다.

location / {
....
proxy_read_timeout 120s
....
}

나는이 솔루션을 여기에서 발견했다 : https://rijulaggarwal.wordpress.com/2018/01/10/atmosphere-long-polling-on-nginx-chunked-encoding-error/


죄송합니다. 정확한 답변이 없습니다. 그러나 나는이 문제도 겪었고 적어도 내 경우에는 그 주위에 길을 찾았습니다. 아마도 Php에 대해 더 많이 알고있는 다른 누군가에게 단서를 제공 할 것입니다.

시나리오는 배열을 함수에 전달한 것입니다. 이 배열의 내용은 HTML 문자열을 생성하여 나중에 인쇄되는 전역 변수 안에 배치하여 브라우저로 다시 전송하는 데 사용됩니다. (이 함수는 실제로 아무것도 반환하지 않습니다. 조잡합니다, 그러나 그것은 요점입니다.)이 배열 안에는 무엇보다도이 함수 외부에 정의 된 중첩 연관 배열을 참조하는 몇 가지 요소가 있습니다. . 제거 프로세스를 통해 참조 된 요소를 설정 해제하려는 시도를 포함 하여이 함수 내 에서이 배열 내에서 요소를 조작하면 참조에 관계없이 Chrome에서 net :: ERR_INCOMPLETE_CHUNKED_ENCODING 오류가 발생하고 내용이 표시되지 않는 것으로 나타났습니다.

처음부터 배열 요소에 대한 참조를 적용하지 않도록 스크립트를 다시 작성해야만 정상적으로 작동하기 시작했습니다. 나는 이것이 실제로 콘텐츠 길이 헤더를 던지는 참조 된 요소의 존재와 관련이있는 Php 버그라고 생각하지만, 확실히 이것에 대해 충분히 알지 못합니다.


Chrome 및 Firefox의 사이트 에서이 문제가 발생했습니다. Avast Web Shield를 끄면 사라졌습니다. 내 htaccess 파일에 html5 상용구 htaccess를 추가하여 Web Shield와 함께 작동하도록하는 것처럼 보입니다.

# ------------------------------------------------------------------------------
# | Expires headers (for better cache control)                                 |
# ------------------------------------------------------------------------------

# The following expires headers are set pretty far in the future. If you don't
# control versioning with filename-based cache busting, consider lowering the
# cache time for resources like CSS and JS to something like 1 week.

<IfModule mod_expires.c>

    ExpiresActive on
    ExpiresDefault                                      "access plus 1 month"

  # CSS
    ExpiresByType text/css                              "access plus 1 week"

  # Data interchange
    ExpiresByType application/json                      "access plus 0 seconds"
    ExpiresByType application/xml                       "access plus 0 seconds"
    ExpiresByType text/xml                              "access plus 0 seconds"

  # Favicon (cannot be renamed!)
    ExpiresByType image/x-icon                          "access plus 1 week"

  # HTML components (HTCs)
    ExpiresByType text/x-component                      "access plus 1 month"

  # HTML
    ExpiresByType text/html                             "access plus 0 seconds"

  # JavaScript
    ExpiresByType application/javascript                "access plus 1 week"

  # Manifest files
    ExpiresByType application/x-web-app-manifest+json   "access plus 0 seconds"
    ExpiresByType text/cache-manifest                   "access plus 0 seconds"

  # Media
    ExpiresByType audio/ogg                             "access plus 1 month"
    ExpiresByType image/gif                             "access plus 1 month"
    ExpiresByType image/jpeg                            "access plus 1 month"
    ExpiresByType image/png                             "access plus 1 month"
    ExpiresByType video/mp4                             "access plus 1 month"
    ExpiresByType video/ogg                             "access plus 1 month"
    ExpiresByType video/webm                            "access plus 1 month"

  # Web feeds
    ExpiresByType application/atom+xml                  "access plus 1 hour"
    ExpiresByType application/rss+xml                   "access plus 1 hour"

  # Web fonts
    ExpiresByType application/font-woff                 "access plus 1 month"
    ExpiresByType application/vnd.ms-fontobject         "access plus 1 month"
    ExpiresByType application/x-font-ttf                "access plus 1 month"
    ExpiresByType font/opentype                         "access plus 1 month"
    ExpiresByType image/svg+xml                         "access plus 1 month"

</IfModule>

# ------------------------------------------------------------------------------
# | Compression                                                                |
# ------------------------------------------------------------------------------

<IfModule mod_deflate.c>

    # Force compression for mangled headers.
    # http://developer.yahoo.com/blogs/ydn/posts/2010/12/pushing-beyond-gzipping
    <IfModule mod_setenvif.c>
        <IfModule mod_headers.c>
            SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding
            RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding
        </IfModule>
    </IfModule>

    # Compress all output labeled with one of the following MIME-types
    # (for Apache versions below 2.3.7, you don't need to enable `mod_filter`
    #  and can remove the `<IfModule mod_filter.c>` and `</IfModule>` lines
    #  as `AddOutputFilterByType` is still in the core directives).
    <IfModule mod_filter.c>
        AddOutputFilterByType DEFLATE application/atom+xml \
                                      application/javascript \
                                      application/json \
                                      application/rss+xml \
                                      application/vnd.ms-fontobject \
                                      application/x-font-ttf \
                                      application/x-web-app-manifest+json \
                                      application/xhtml+xml \
                                      application/xml \
                                      font/opentype \
                                      image/svg+xml \
                                      image/x-icon \
                                      text/css \
                                      text/html \
                                      text/plain \
                                      text/x-component \
                                      text/xml
    </IfModule>

</IfModule>

# ------------------------------------------------------------------------------
# | Persistent connections                                                     |
# ------------------------------------------------------------------------------

# Allow multiple requests to be sent over the same TCP connection:
# http://httpd.apache.org/docs/current/en/mod/core.html#keepalive.

# Enable if you serve a lot of static content but, be aware of the
# possible disadvantages!

 <IfModule mod_headers.c>
    Header set Connection Keep-Alive
 </IfModule>

누군가 MOODLE 과 동일한 문제가있을 경우 경험을 공유하고 싶었습니다 .

Our moodle platform was suddenly very slowly, the dashboard took about 2-3 times longer to load (up to 6 seconds) then usual and from time to time some pages didn't get loaded at all (not a 404 error but a blank page). In the Developer Tools Console the following error was visible: net::ERR_INCOMPLETE_CHUNKED_ENCODING.

Searching for this error, it looks like Chrome is the issue, but we had the problem with various browsers. After hours of research and comparing the databases from the days before I finally found the problem, someone turned the Event Monitoring on. However, in the "Config changes" log, this change wasn't visible! Turning Event Monitoring off, finally solved the problem - we had no rules defined for event monitoring.

We're running Moodle 3.1.2+ with MariaDB and PHP 5.4.


My fix is:

<?php  ob_start(); ?>
<!DOCTYPE html>
<html lang="de">
.....
....//your whole code
....
</html>
<?php
        ob_clean();
ob_end_flush();

ob_flush();

?>

Hope this will help someone in future, and in my case its a Kaspersky issue but the fix above works great :)


In my case it was happening during json serialization of a web api return payload - I had a 'circular' reference in my Entity Framework model, I was returning a simple one-to-many object graph back but the child had a reference back to the parent, which apparently the json serializer doensn't like. Removing the property on the child that was referencing the parent did the trick.

Hope this helps someone who might have a similar issue.


When i faced this error( while making AJAX call from javascript ); the reason was the response from controller was erroneous; it was returning a JSON which was not of valid format.


I was getting net::ERR_INCOMPLETE_CHUNKED_ENCODING, upon closer inspection of the server error logs I found that it was due to PHP script execution timeout.

Adding this line on top of PHP script solved it for me:

ini_set('max_execution_time', 300); //300 seconds = 5 minutes

Ref: Fatal error: Maximum execution time of 30 seconds exceeded


Well. Not long ago I also met this question. And finally I get the solutions which really address this issue.

My problem symptoms are also the pages not loading and find the json data was be randomly truncated.

Here are the solutions which I summary could help to solve this problem

1.Kill the anti-virus software process
2.Close chrome's Prerendering Instant pages feature
3.Try to close all the apps in your browser
4.Try to define your Content-Length header
  <?php
     header('Content-length: ' . strlen($output));
  ?>
5.Check your nginx fastcgi buffer is right 
6.Check your nginx gzip is open

If there are any loop or item which is not existing then you face this issue.

When running the App on Chrome, the page is blank and become unresponsive.

Scenario Start:

Dev Environment: MAC, STS 3.7.3, tc Pivotal Server 3.1, Spring MVC Web,

in ${myObj.getfName()}

Scenario End:

Reason of issue: getfName() function is not defined on the myObj.

Hope it help you.


my guess is the server is not correctly handling the chunked transfer-encoding. It needs to terminal a chunked files with a terminal chunk to indicate the entire file has been transferred.So the code below maybe work:

echo "\n";
flush();
ob_flush();
exit(0);

In my case it was broken config for mysqlnd_ms php extension on the server. Funny thing is that it was working fine on requests with short duration. There was a warning in server error log, so we have fixed it quick.


This seems like a common problem with multiple causes and solutions, so I'm going to put my answer here for anyone who may require it.

I was getting net::ERR_INCOMPLETE_CHUNKED_ENCODING on Chrome, osx, php70, httpd24 combination, but the same code ran fine on the production server.

I initially tailed the regular logs but nothing really showed up. A quick ls -later showed system.log was the latest touched file in /var/log, and tailing that gave me

Saved crash report for httpd[99969] version 2.4.16 (805) 
to /Library/Logs/DiagnosticReports/httpd.crash

Contained within:

Process:               httpd [99974]
Path:                  /usr/sbin/httpd
Identifier:            httpd
Version:               2.4.16 (805)
Code Type:             X86-64 (Native)
Parent Process:        httpd [99245]
Responsible:           httpd [99974]
User ID:               70

PlugIn Path:             /usr/local/opt/php70-mongodb/mongodb.so
PlugIn Identifier:       mongodb.so

A brew uninstall php70-mongodb and a httpd -k restart later and everything was smooth sailing.


In my case it was issue of html. There was '\n' in json response causing the issue. So I removed that.


Fascinating to see how many different causes there are for this issue!

Many say it's a Chrome issue, so I tried Safari and still had issues. Then tried all solutions in this thread, including turning off my AVG Realtime Protection, no luck.

For me, the issue was my .htaccess file. All it contained was FallbackResource index.php, but when I renamed it to htaccess.txt, my issue was resolved.


Hmmm I just stumbled upon a similar issue but with different reasons behind...

I'm using Laravel Valet on a vanilla PHP project with Laravel Mix. When I opened the site in Chrome, it was throwing net::ERR_INCOMPLETE_CHUNKED_ENCODING errors. (If I had the site loaded on HTTPS protocol, the error changed to net::ERR_SPDY_PROTOCOL_ERROR.)

I checked the php.ini and opcache was not enabled. I found that in my case the problem was related to versioning the asset files - for some reason, it did not seem to like a query string in the URL of the assets (well, oddly enough, just one in particular?).

I have removed mix.version() for the local environment, and the site loads just fine in my Chrome on both HTTP and HTTPS protocols.


In the context of a Controller in Drupal 8 (Symfony Framework) this solution worked for me:

$response = new Response($form_markup, 200, array(
  'Cache-Control' => 'no-cache',
));

$content = $response->getContent();
$contentLength = strlen($content);
$response->headers->set('Content-Length', $contentLength);

return $response;

Otherwise the response header 'Transfer-Encoding' got a value 'chunked'. This may be a problem for Chrome browser.


I had this problem (showing ERR_INCOMPLETE_CHUNKED_ENCODING in Chrome, nothing in other browsers). Turned out the problem was my hosting provider GoDaddy adding a monitoring script at the end of my output.

https://www.godaddy.com/community/cPanel-Hosting/how-to-remove-additional-quot-monitoring-quot-script-added/td-p/62592


Check the nginx folder permission and set appache permission for that:

chown -R www-data:www-data /var/lib/nginx

For me it was caused by insufficient free space on hard drive.

참고URL : https://stackoverflow.com/questions/29894154/chrome-neterr-incomplete-chunked-encoding-error

반응형