Chrome net::ERR_INCOMPLETE_CHUNKED_ENCODING kesalahan

Selama dua bulan terakhir, saya telah menerima galat berikut di Chrome's konsol pengembang:

net::ERR_INCOMPLETE_CHUNKED_ENCODING

Gejala:

  • Halaman tidak memuat.
  • Dipotong CSS dan JS file.
  • Halaman menggantung.

Lingkungan Server:

  • Apache 2.2.22
  • PHP
  • Ubuntu

Hal ini terjadi kepada saya di rumah kami di Apache server. Hal ini tidak terjadi pada orang lain - contoh: Tidak ada pengguna yang mengalami masalah ini - dan juga orang lain di tim dev kami.

Orang lain yang mengakses tepat pada server yang sama dengan versi yang sama persis dari Chrome. Saya juga telah mencoba menonaktifkan semua ekstensi dan menjelajah dalam mode Penyamaran - tidak ada efek.

Saya telah menggunakan Firefox dan hal yang sama terjadi. Terpotong file dan yang lainnya. Satu-satunya hal adalah, Firefox doesn't meningkatkan setiap konsol kesalahan sehingga anda perlu untuk memeriksa HTTP request via Firebug untuk melihat masalah.

Respon Header dari 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

Saat pengujian, saya bisa memperbaiki masalah dengan memaksa HTTP 1.0 di file htaccess:

SetEnv downgrade-1.0

Ini akan menyingkirkan masalah. Namun, memaksa HTTP 1.0 HTTP 1.1 adalah solusi yang tidak tepat.

Update: Karena I'm hanya satu yang mengalami masalah ini, saya menyadari bahwa saya perlu untuk menghabiskan lebih banyak waktu menyelidiki apakah atau tidak itu adalah sisi klien masalah. Jika saya pergi ke Chrome's pengaturan dan gunakan "Mengembalikan ke Default" pilihan, masalah akan hilang selama sekitar 10-20 menit. Kemudian itu kembali.

Mengomentari pertanyaan (17)
Larutan

OK. I've triple-diuji ini dan aku am 100% yakin bahwa hal ini disebabkan oleh anti-virus saya (ESET NOD32 ANTIVIRUS 5).

Setiap kali saya menonaktifkan perlindungan Real-Time, masalah menghilang. Hari ini, saya meninggalkan Real-Time perlindungan off selama 6-7 jam, dan masalah ini tidak pernah terjadi.

Beberapa saat yang lalu, saya beralih kembali, hanya untuk masalah ke permukaan dalam satu menit.

Selama 24 jam terakhir, saya telah beralih perlindungan Real-Time on dan off lagi, hanya untuk memastikan. Setiap waktu - hasilnya telah sama.

Update: saya telah menemukan pengembang lain yang memiliki masalah yang sama persis dengan Real-Time perlindungan pada-nya Kaspersky anti-virus. Ia dinonaktifkan dan masalah pergi. yaitu masalah Ini doesn't tampaknya terbatas untuk ESET.

Komentar (11)

Kesalahan adalah mencoba untuk mengatakan bahwa Chrome terputus saat laman sedang dikirim. Masalah anda adalah mencoba untuk mencari tahu mengapa.

Rupanya, ini mungkin menjadi masalah yang diketahui mempengaruhi beberapa versi Chrome. Sejauh yang saya tahu, itu adalah sebuah masalah dari versi ini secara besar-besaran sensitif terhadap kandungan panjang potongan yang dikirim dan menyatakan ukuran yang chunk (aku bisa menjadi jauh pada yang satu). Singkatnya, sedikit tidak sempurna header masalah.

Di sisi lain, bisa jadi server tidak mengirim terminal 0-panjang potongan. Yang mungkin dapat diperbaiki dengan ob_flush();. Hal ini juga mungkin bahwa Chrome (atau sambungan atau sesuatu) adalah menjadi lambat. Jadi, ketika koneksi ditutup, halaman ini belum dimuat. Saya tidak tahu mengapa hal ini bisa terjadi.

Berikut ini adalah paranoid programmer menjawab:

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

Dalam kasus anda, ini mungkin menjadi kasus script waktu keluar. Saya tidak benar-benar yakin mengapa hal itu harus hanya mempengaruhi anda, tetapi hal itu bisa turun untuk sekelompok kondisi ras? Yang's mengucapkan menebak. Anda harus dapat menguji ini dengan memperpanjang waktu eksekusi script.

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

Itu juga mungkin yang sederhana seperti yang anda butuhkan untuk memperbarui Chrome install (sebagai masalah ini adalah Chrome tertentu).

UPDATE: saya bisa meniru kesalahan ini (akhirnya) ketika sebuah kesalahan fatal yang dilemparkan para PHP (di localhost) adalah output buffering. Saya membayangkan output terlalu buruk hancur menjadi banyak digunakan (header tapi sedikit atau tidak ada konten).

Secara khusus, saya sengaja telah saya kode rekursif yang menamakan dirinya sampai PHP, benar, menyerah. Dengan demikian, server tidak mengirim terminal 0-panjang potongan - yang merupakan masalah yang diidentifikasi sebelumnya.

Komentar (3)

Aku punya masalah ini. Dilacak setelah mencoba sebagian yang lain jawaban pada pertanyaan ini. Hal itu disebabkan oleh pemilik dan izin /var/lib/nginx dan lebih khusus /var/lib/nginx/tmp direktori yang salah.

Tmp direktori ini digunakan oleh fast-cgi untuk cache tanggapan seperti yang dihasilkan, tetapi hanya jika mereka berada di atas ukuran tertentu. Jadi masalah intermiten dan hanya terjadi ketika respon yang dihasilkan lebih besar.

Periksa nginx <host_name>.error_log untuk melihat jika anda memiliki masalah izin.

Untuk memperbaiki kesalahan, juga pemilik dan group dari /var/lib/nginx dan semua sub-direktori adalah nginx.

Komentar (3)

Berikut harus memperbaikinya untuk setiap klien.

<?php

//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));

Tapi dalam kasus saya berikut adalah pilihan yang lebih baik dan tetap itu juga:

.htaccess:

php_value opcache.enable 0
Komentar (4)

OMG, aku punya masalah yang sama 5 menit yang lalu. Saya menghabiskan beberapa jam untuk menemukan solusi. Pada pandangan pertama menonaktifkan antivirus memecahkan masalah pada Windows. Tapi kemudian saya melihat masalah di linux lainnya pc tanpa antivirus. Tidak ada kesalahan dalam log nginx. Saya uwsgi menunjukkan sesuatu tentang "pipa Rusak" tetapi tidak semua permintaan. Tahu apa? Itu tidak ada ruang yang tersisa pada perangkat, yang saya temukan ketika restart server pada Database log, dan df disetujui ini. Hanya penjelasan tentang mengapa antivirus diselesaikan ini adalah bahwa hal itu mencegah browser caching (harus memeriksa setiap permintaan), tapi browser dengan beberapa perilaku aneh dapat mengabaikan respon buruk dan menunjukkan cache tanggapan.

Komentar (2)

Hal ini diketahui Chrome masalah. Menurut Chrome dan Chromium pelacak bug tidak ada yang universal solusi untuk ini. Masalah ini tidak terkait dengan jenis server dan versi, itu adalah hak di Chrome.

Pengaturan Content-Encoding header identitas memecahkan masalah ini ke saya.

dari developer.mozilla.org

identitas | Menunjukkan fungsi identitas (yaitu tidak ada kompresi, atau modifikasi).

Jadi, yang bisa saya sarankan, bahwa dalam beberapa kasus Chrome tidak bisa melakukan kompres gzip dengan benar.

Komentar (0)

Dalam kasus saya, saya sedang mengalami /usr/local/var/run/nginx/fastcgi_temp/3/07/0000000073" gagal (13: Permission denied) yang mungkin dihasilkan Chrome net::ERR_INCOMPLETE_CHUNKED_ENCODING kesalahan.

Aku harus menghapus /usr/local/var/run/nginx/ dan biarkan nginx membuat lagi.

$ 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
Komentar (0)

Ketika saya menghadapi kesalahan ini( sementara membuat AJAX panggilan dari javascript ); alasannya adalah respon dari kontroler adalah salah; itu kembali JSON yang tidak valid format.

Komentar (0)

Solusi termudah adalah untuk meningkatkan proxy_read_timeout untuk set proxy lokasi untuk nilai yang lebih tinggi (katakanlah 120s) di nginx.conf.

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

Saya menemukan solusi ini di sini https://rijulaggarwal.wordpress.com/2018/01/10/atmosphere-long-polling-on-nginx-chunked-encoding-error/

Komentar (1)

Aku hanya menatap memiliki masalah yang sama. Dan melihat itu hanya terjadi ketika halaman yang terdapat UTF-8 karakter dengan urutan nilai yang lebih besar dari 255 (yaitu multibyte).

Apa yang akhirnya menjadi masalah adalah bagaimana header Content-Length sedang dihitung. Yang mendasari backend adalah komputasi panjang karakter, bukan byte panjang. Mematikan content-length header tetap masalah untuk sementara waktu sampai aku bisa memperbaiki back end template sistem.

Komentar (0)

Ini terjadi pada dua klien yang berbeda' server yang dipisahkan oleh beberapa tahun terakhir, menggunakan kode yang sama yang digunakan di ratusan server lain untuk waktu yang tanpa masalah.

Untuk klien-klien ini, hal itu terjadi sebagian besar pada script PHP yang harus streaming HTML - yang adalah, "Koneksi: dekat" di halaman mana output dikirim ke browser sebagai output menjadi tersedia.

Ternyata bahwa koneksi antara PHP dan web server menjatuhkan prematur, sebelum naskah selesai dan sebelum batas waktu.

Masalahnya adalah opcache.fast_shutdown = 1 di php utama.file ini. Direktif ini dinonaktifkan secara default, tetapi tampaknya beberapa server administrator percaya ada peningkatan kinerja yang bisa didapat di sini. Dalam semua tes saya, saya tidak pernah mencatat perbedaan positif menggunakan pengaturan ini. Dalam pengalaman saya, hal ini telah menyebabkan beberapa script untuk benar-benar menjalankan lebih lambat, dan sekali track record kadang-kadang memasuki shutdown sedangkan script adalah masih melaksanakan, atau bahkan di akhir eksekusi sedangkan web server yang masih membaca dari buffer. Ada laporan bug dari tahun 2013, yang belum terselesaikan pada Februari 2017, yang mungkin berkaitan: https://github.com/zendtech/ZendOptimizerPlus/issues/146

Saya telah melihat kesalahan berikut muncul karena ini ERR_INCOMPLETE_CHUNKED_ENCODING ERR_SPDY_PROTOCOL_ERROR Kadang-kadang ada korelatif segfaults login; kadang-kadang tidak.

Jika anda mengalami salah satu, cek phpinfo, dan pastikan opcache.fast_shutdown dinonaktifkan.

Komentar (0)

Di sini masalahnya adalah saya Avast AV. Segera saya dinonaktifkan, masalah itu hilang.

Tapi, aku benar-benar ingin memahami penyebab perilaku ini.

Komentar (0)

Bagi saya hal itu disebabkan oleh tidak cukup ruang bebas pada hard drive.

Komentar (0)

I'm sorry to say, I don't memiliki jawaban yang tepat untuk anda. Tapi saya tidak mengalami masalah ini juga, dan, setidaknya dalam kasus saya, menemukan jalan di sekitar itu. Jadi mungkin itu'll menawarkan beberapa petunjuk untuk orang lain yang tahu lebih banyak tentang Php di bawah tenda.

Dalam skenario ini, saya memiliki sebuah array yang dilewatkan ke fungsi. Isi dari array yang digunakan untuk menghasilkan sebuah string HTML yang akan dikirim kembali ke browser, dengan menempatkan semua itu dalam sebuah variabel global yang's kemudian dicetak. (Fungsi ini isn't benar-benar kembali apa-apa. Ceroboh, aku tahu, tapi itu's intinya.) Di dalam array ini, antara lain, adalah beberapa elemen yang membawa, dengan referensi, bersarang asosiatif array yang didefinisikan di luar fungsi ini. Dengan proses eliminasi, saya menemukan bahwa manipulasi dari setiap elemen di dalam array ini dalam fungsi ini, dirujuk atau tidak, termasuk upaya untuk unset mereka dirujuk unsur, hasil di Chrome melemparkan jaring::ERR_INCOMPLETE_CHUNKED_ENCODING kesalahan dan menampilkan konten. Hal ini terjadi walaupun fakta bahwa string HTML di variabel global adalah persis apa yang seharusnya.

Hanya dengan re-perkakas script untuk tidak menerapkan referensi ke elemen array di tempat pertama melakukan hal-hal mulai bekerja normal lagi. Saya menduga ini sebenarnya adalah sebuah bug Php memiliki sesuatu untuk dilakukan dengan kehadiran dirujuk unsur melemparkan content-length header, tapi aku benar-benar don't tahu cukup tentang hal ini untuk mengatakan dengan pasti.

Komentar (1)

Aku punya masalah ini dengan sebuah situs di Chrome dan Firefox. Jika aku berbalik dari Avast Web Shield itu pergi. Saya tampaknya telah berhasil mendapatkan itu untuk bekerja dengan Web Shield berjalan dengan menambahkan beberapa html5 boilerplate htaccess saya htaccess:

# ------------------------------------------------------------------------------
# | 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.



    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"



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



    # Force compression for mangled headers.
    # http://developer.yahoo.com/blogs/ydn/posts/2010/12/pushing-beyond-gzipping


            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



    # 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 `` and `` lines
    #  as `AddOutputFilterByType` is still in the core directives).

        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




# ------------------------------------------------------------------------------
# | 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!


    Header set Connection Keep-Alive
Komentar (0)

Saya hanya ingin berbagi pengalaman saya dengan anda jika seseorang mungkin memiliki masalah yang sama dengan MOODLE.

Kami platform moodle itu tiba-tiba sangat lambat, dashboard waktu sekitar 2-3 kali lebih lama untuk memuat (sampai 6 detik) maka biasanya dan dari waktu ke waktu beberapa halaman didn't mendapatkan dimuat sama sekali (tidak error 404 tapi halaman kosong). Di Alat Pengembang Konsol kesalahan berikut terlihat: net::ERR_INCOMPLETE_CHUNKED_ENCODING.

Mencari kesalahan ini, itu terlihat seperti Chrome adalah masalah, tapi kami punya masalah dengan berbagai browser. Setelah berjam-jam penelitian dan membandingkan database dari hari-hari sebelum akhirnya saya menemukan masalah, seseorang ternyata Acara Pemantauan pada. Namun, di "perubahan Konfigurasi" log, perubahan ini tidak't terlihat! Menghidupkan Acara Pemantauan off, akhirnya memecahkan masalah - kita tidak punya aturan yang ditetapkan untuk kegiatan monitoring.

Kami're menjalankan Moodle 3.1.2+ dengan MariaDB dan PHP 5.4.

Komentar (0)

Saya perbaiki adalah:

<?php  ob_start(); ?>


.....
....//your whole code
....

<?php
        ob_clean();
ob_end_flush();

ob_flush();

?>

Berharap ini akan membantu seseorang di masa depan, dan dalam kasus saya yang Kaspersky masalah tetapi perbaikan atas karya besar :)

Komentar (0)

Saya mendapatkan net::ERR_INCOMPLETE_CHUNKED_ENCODING, setelah pemeriksaan lebih dekat dari server log kesalahan saya menemukan bahwa itu adalah karena PHP eksekusi script timeout.

Menambahkan baris ini di atas script PHP diselesaikan untuk saya:

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

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

Komentar (0)

Dalam kasus saya itu terjadi selama json serialisasi dari web api kembali muatan - aku punya 'melingkar' referensi dalam Entity Framework model, saya kembali sederhana satu-ke-banyak objek grafik kembali tapi anak memiliki referensi kembali ke orang tua, yang tampaknya json serializer doensn't seperti. Menghapus properti pada anak yang merupakan referensi induk melakukan trik.

Semoga ini bisa membantu seseorang yang mungkin memiliki masalah yang sama.

Komentar (0)

Menarik untuk melihat berapa banyak penyebab yang berbeda ada untuk masalah ini!

Banyak yang mengatakan itu's Chrome masalah, jadi saya mencoba Safari dan masih memiliki masalah. Kemudian mencoba semua solusi di thread ini, termasuk mematikan saya AVG Realtime Protection, tidak beruntung.

Bagi saya, masalah saya .htaccess. Semua itu terkandung adalah FallbackResource index.php, tapi ketika saya menamakannya htaccess.txt saya masalah itu diselesaikan.

Komentar (2)