Даследаванне ERR_INVALID_CHUNKED_ENCODING праз проксі
Вызначце, дзе адказ робіцца няпоўным або скажоным, параўнаўшы яго фарміраванне, кропку спынення і журналы проксі-маршруту.
ERR_INVALID_CHUNKED_ENCODING азначае, што адказ не ўдалося дэкадаваць як поўнае chunked-паведамленне. Паспяховае паступленне часткі змесціва не даказвае, што астатні адказ быў карэктным.
- Захавайце загалоўкі адказу і першую памылку дэкадара. Вызначце, які кампанент паведаміў пра яе і ці было паведамленне аб'яўлена chunked.
- Знайдзіце кропку спынення. Кадаванне HTTP/1.1 chunked патрабуе памераў, адпаведных даных, раздзяляльнікаў і завяршальнага chunk, а таксама trailers, дзе гэта датычыцца. Ранняе закрыццё злучэння і скажоны памер — розныя зачэпкі.
- Параўнайце той жа кантраляваны запыт на мэтавым маршруце. Супастаўце запыт з журналамі проксі і upstream. Шукайце закрыццё upstream, прамежкавае пераўтварэнне або скасаванне прыкладаннем у гэтай кропцы.
Не рабіце выснову пра фарміраванне HTTP з памеру буфера TCP. Адно чытанне socket можа змяшчаць палову chunk або некалькі chunk; бібліятэка можа затым паказаць дэкадаванае змесціва ў розных буферах. Запіс JSON мае яшчэ адну мяжу. Проксі можа перафарміраваць адказ, не захоўваючы арыгінальныя межы пакетаў.
Калі доказы паказваюць на старую рэалізацыю Squid, захавайце яе нумар выпуску разам з гэтай высновай. Парады па патчах для Squid 2.x не апісваюць кожны сучасны выпуск. Падчас параўнання захоўвайце звычайнае дэкадаванне і праверку сертыфіката: задушэнне памылкі можа пакінуць няпоўны файл падобным на паспяховае спампоўванне.