ERR_INVALID_CHUNKED_ENCODING znamená, že odpoveď nebolo možné dekódovať ako úplnú chunked správu. To, že časť obsahu dorazila úspešne, nedokazuje, že zvyšok odpovede bol platný.

  1. Zachovajte hlavičky odpovede a prvú chybu dekodéra. Určte, ktorý komponent ju nahlásil a či bola správa deklarovaná ako chunked.
  2. Nájdite bod zastavenia. Kódovanie chunked v HTTP/1.1 vyžaduje veľkosti, príslušné údaje, oddeľovače a záverečný blok, podľa potreby aj trailers. Skoré zatvorenie spojenia a poškodená veľkosť sú rôzne stopy.
  3. Porovnajte tú istú kontrolovanú požiadavku na zamýšľanej trase. Spárujte požiadavku s logmi proxy a nadradeného servera. Hľadajte zatvorenie zo strany nadradeného servera, transformáciu sprostredkovateľa alebo zrušenie aplikáciou v tom bode.

Neusudzujte rámcovanie HTTP z veľkosti TCP buffera. Jedno čítanie socketu môže obsahovať polovicu bloku alebo viac blokov; knižnica potom môže sprístupniť dekódovaný obsah v rôznych bufferoch. JSON záznam má ešte inú hranicu. Proxy môže odpoveď pre-rámcovať bez zachovania pôvodných hraníc paketov.

Ak dôkazy ukazujú na starú implementáciu Squid, ponechajte číslo jej vydania pri tomto závere. Rady k záplatám pre Squid 2.x neopisujú každé aktuálne vydanie. Počas porovnávania zachovajte bežné dekódovanie a overovanie certifikátov: potlačenie chyby môže spôsobiť, že neúplný súbor vyzerá ako úspešné stiahnutie.

Súvisiace články