Re: #551: Varnish Crash: Missing errorhandling code in HSH_Prepare(), cache_hash.c line 188
Ah, I stand corrected. But I was definitely having random crashes when I enabled the vcl_fetch() section below: sub vcl_recv { ... set req.http.Unmodified-Host = req.http.Host; set req.http.Unmodified-URL = req.url; ... } sub vcl_fetch { ... set obj.http.X-Token-URL = req.url; set obj.http.X-Original-URL = req.http.Unmodified-URL; set obj.http.X-Token-Host = req.http.Host; set obj.http.X-Original-Host = req.http.Unmodified-Host; set obj.http.X-Set-Cookie = obj.http.Set-Cookie; ... } I'm a bit loathe to reenable this to get a full stacktrace and gdb output, but if there's really nothing wrong with this I might consider it. Also, using trunk (a couple weeks ago) I can't reference obj in vcl_fetch() at all, which I assumed was an intentional side-step of the #310 bug. Thx, -- Ken On Sep 16, 2009, at 9:30 AM, Varnish wrote: #551: Varnish Crash: Missing errorhandling code in HSH_Prepare(), cache_hash.c line 188 -- +- Reporter: cheerios |Owner: phk Type: defect| Status: closed Priority: normal|Milestone: Component: varnishd | Version: 2.0 Severity: normal| Resolution: invalid Keywords:| -- +- Changes (by kristian): * status: new = closed * resolution: = invalid Comment: Cheerios: I'm going to close this for now, since this sounds exactly like a sess_workspace issue. Feel free to re-open this if you can confirm that this is unaffected by sess_workspace. Further discussion should go on the mail list though. ... and: Replying to [comment:4 kb]: Possibly unrelated, but modifying obj in vcl_fetch() will cause crashes (see #310); I found out the hard way. You mean vcl_hit. The object is safely locked in vcl_fetch, and can be modified. Odd though that setting obj.ttl specifically seems to be safe. Nah, not really that odd. Setting a ttl fairly atomic, while manipulating strings usually means copying and replacing. But this discussion doesn't belong here. -- Ticket URL: http://varnish.projects.linpro.no/ticket/551#comment:5 Varnish http://varnish.projects.linpro.no/ The Varnish HTTP Accelerator ___ varnish-bugs mailing list varnish-b...@projects.linpro.no http://projects.linpro.no/mailman/listinfo/varnish-bugs ___ varnish-misc mailing list varnish-misc@projects.linpro.no http://projects.linpro.no/mailman/listinfo/varnish-misc
Re: #551: Varnish Crash: Missing errorhandling code in HSH_Prepare(), cache_hash.c line 188
On Wed, Sep 16, 2009 at 09:54:25AM -0700, Ken Brownfield wrote: Ah, I stand corrected. But I was definitely having random crashes when I enabled the vcl_fetch() section below: (...) I'm a bit loathe to reenable this to get a full stacktrace and gdb output, but if there's really nothing wrong with this I might consider it. Nothing wrong with it, but my first guess would be obj_workspace being overloaded, which would look similar to #551 unless you know exactly what to look for. Also, using trunk (a couple weeks ago) I can't reference obj in vcl_fetch() at all, which I assumed was an intentional side-step of the #310 bug. Nope, it's just renamed beresp. For now, it's still the same thing for all intents and purposes, but the idea is to only fetch headers so as to be able to go from fetch to pipe in some unknown future. - Kristian pgpZgO6nxYTwZ.pgp Description: PGP signature ___ varnish-misc mailing list varnish-misc@projects.linpro.no http://projects.linpro.no/mailman/listinfo/varnish-misc
Re: #551: Varnish Crash: Missing errorhandling code in HSH_Prepare(), cache_hash.c line 188
On Sep 16, 2009, at 10:03 AM, Kristian Lyngstol wrote: On Wed, Sep 16, 2009 at 09:54:25AM -0700, Ken Brownfield wrote: I'm a bit loathe to reenable this to get a full stacktrace and gdb output, but if there's really nothing wrong with this I might consider it. Nothing wrong with it, but my first guess would be obj_workspace being overloaded, which would look similar to #551 unless you know exactly what to look for. I'm probably being a little too clever with my -p obj_workspace=2048, which is normally enough. Also, using trunk (a couple weeks ago) I can't reference obj in vcl_fetch() at all, which I assumed was an intentional side-step of the #310 bug. Nope, it's just renamed beresp. For now, it's still the same thing for all intents and purposes, but the idea is to only fetch headers so as to be able to go from fetch to pipe in some unknown future. Thanks much, I think I'm all squared away with my user error. :-) Though it might be nice to more gracefully handle (or at least report) workspace overflows. -- Ken - Kristian ___ varnish-misc mailing list varnish-misc@projects.linpro.no http://projects.linpro.no/mailman/listinfo/varnish-misc