-
Notifications
You must be signed in to change notification settings - Fork 363
large files and we loop forever #14
Comments
What do you see when you attach strace to the worker? |
How to test with this problem? I checkout your code, and it seems work for me in my box. And I saw the image are from the static file handler. In Nginx, there is no larger buffer than 32k, can you split your big buffer to small chunk with a chain? It could save the memory. And all the small chunk buffers can be recycled. |
Try loading "/Puzzle.jpg.pagespeed.ce.91_WewrLtP.jpg" on jefftk-pagespeed-resource-handler after setting up nginx to load from https://github.com/pagespeed/ngx_pagespeed/tree/jefftk-pagespeed-resource-handler/test/www .
That's probably the problem. When we pull from pagespeed we try to allocate an nginx buffer big enough for whatever is in the pagespeed buffer right now:
I'll change that to split into multiple nginx buffers if the pagespeed buffer is big. |
I've added buffer-splitting to jefftk-resource-handler [1]. it hasn't fixed the problem. Still working on it. [1] which has replaced jefftk-pagespeed-resource-handler and is based off master instead of jefftk-async-rewrite |
On 2012-11-1 23:04, Jeff Kaufman wrote:
Thanks, |
It looks like something is keeping buffers from going out, and before it would build up a lot of empty buffers. In fefdac7 I made it stop producing empty buffers, so now it's just stuck on real content-full buffers. |
2012/11/01 17:55:44 [debug] 28441#0: *1 http write filter: l:1 f:0 s:192201 |
Fixed by @yaoweibin in pull request #18 |
In jefftk-pagespeed-resource-handler, large resource (non-html) files get us into into an infinite loop:
This consistently happens for me after producing 49019 bytes of output. It happens with both javascript files and images.
In jefftk-async-rewrite I can get the same thing if I disable the "only rewrite html resources" check (at the beginning of ngx_http_pagespeed_body_filter).
The text was updated successfully, but these errors were encountered: