On Fri, Dec 30, 2016 at 11:10 AM, JackDrogon <[email protected]> wrote: > > It's so diffcult for me to tracing the timeout problem. > > > > I painted a map of the backend request. > I tracing varnish, found that cache/cache_obj.c:ObjWaitState lock for waiting > backend response. But the vwe_thread epoll wait time is not right, it is > default time 100s > When epoll_wait is run, it wait for backend response first_bytes_timeout, > which in my case is 7s. > If I set cache_waiter_epoll.c:vwe_thread => vwe->next = now + 1, all is > right. The timeout time became 2s.
Feel free to comment on github in the issue I mentioned if you think you have a lead. I thought I had seen a commit fix this in the not so recent past, but I must have confused it with another ticket (probably 1806). As I said, I plan to mention this during the next bugwash. > I read some varnish code, not full. I want know where is the code that > varnish add the backend response header read event to epoll when keepalive is > enable. > I guess It's cnt_miss in my case, but I can't see the code, it's in vgc.so. > How can see the vgc.so's origin code which is generated by libvcc. To translate your VCL code to C, see varnishd -C (in the varnishd man). But this C code will not touch the waiting code, it's only code that is called by varnishd for each step (sub) in the VCL engine, executing your VCL logic (reading/setting variables, picking transitions etc). Dridi _______________________________________________ varnish-misc mailing list [email protected] https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc
