Closed gquintard closed 6 months ago
looks like this happened with 2962375b4ed80e2197a318f92f2fb9f6cfcd12f8
I did have a look and found that this is due to a missing NULL check here: https://github.com/varnishcache/varnish-cache/blob/7aeca4d632827e2db91bf63e67e4c61c9319d038/bin/varnishd/storage/stevedore.c#L310
stv->var_#nm
may or may not be implemented by the stevedore, for example using storage.s0.happy
with the malloc
stevedore would result in the same panic.
Not sure about the fix, returning a default value here could be misleading. Should we make these mandatory on every stevedore ?
Should we make these mandatory on every stevedore ?
👍🏽 the implementation is not hard and we should just check for the callbacks to be present when initializing the stevedore.
ok @Dridi it also makes sense to restore the previous behavior, but happy = 0 is a bad default.
ok @Dridi it also makes sense to restore the previous behavior, but happy = 0 is a bad default.
I pushed a fix disappointed that @gquintard didn't submit one :p
I think it is interesting that despite an unhelpful default behavior it took so long (and a refactoring accident) to bubble up. I limited my intervention to restoring the previous behavior.
I pushed a fix disappointed that @gquintard didn't submit one :p
Thank you :)
I think it is interesting that despite an unhelpful default behavior it took so long (and a refactoring accident) to bubble up. I limited my intervention to restoring the previous behavior.
Yes. But now that we have the first storage router (at least the first I know of) I guess it's time to actually use the happy callback...
Expected Behavior
VCL shouldn't panic
Current Behavior
Possible Solution
No response
Steps to Reproduce (for bugs)
Context
found and reproduced by r#8899 on
slack
. Tested ondocker
(debian) image and on nativearch
packagesthis affects 6.3 and later. I'm getting a
configure
error on older commits, so I haven't had the chance tobisect
yetVarnish Cache version
No response
Operating system
No response
Source of binary packages used (if any)
No response