libvdp-pesi:master commitshttps://code.uplex.de/uplex-varnish/libvdp-pesi/commits/master2024-02-28T14:11:46Zhttps://code.uplex.de/uplex-varnish/libvdp-pesi/commit/f8ab2c0c89fcd4059331303f01987e8b4e5d7da4Add missing VDP_Close2024-02-28T14:11:46ZNils Gorollnils.goroll@uplex.dehttps://code.uplex.de/uplex-varnish/libvdp-pesi/commit/d5f51e1aaa47ce0854c6f98f6652fac9325b9f16Intermediate relief to avoid panic in VDP_bytes()2024-02-28T09:03:24ZNils Gorollnils.goroll@uplex.de
Due to a relatively recent change in varnish-cache, VDP_Close() in the
parallel esi thread can race VDP_Deliver in the deliver thread,
resulting in a panic.
See #19 for detailshttps://code.uplex.de/uplex-varnish/libvdp-pesi/commit/92ec4800d4bcd352f1ac5bd66c30cbb932eeaaabAdd onerror_continue parameter to pretend onerror="continue" was set2024-02-13T14:28:56ZNils Gorollnils.goroll@uplex.de
With this change,
pesi.set(onerror_continue, true);
can be used to restore behavior from before varnish-cache 7.3.
See pesi.set() documentation for details.
The test case is a modified version of the one by Geoff Simmons posted
in <a href="https://github.com/varnishcache/varnish-cache/issues/4053#issuecomment-1936000064" rel="nofollow noreferrer noopener" target="_blank">https://github.com/varnishcache/varnish-cache/issues/4053#issuecomment-1936000064</a>https://code.uplex.de/uplex-varnish/libvdp-pesi/commit/da4ad0f1e3beaea864f9043c368d8360ba89f88fOoops, sorry2024-01-31T14:31:42ZNils Gorollnils.goroll@uplex.dehttps://code.uplex.de/uplex-varnish/libvdp-pesi/commit/2725c2c9d0e8ba8af49ca579c97bc0f7175e23faYes, this branch should work with 7.42024-01-31T14:29:37ZNils Gorollnils.goroll@uplex.dehttps://code.uplex.de/uplex-varnish/libvdp-pesi/commit/05dc3298cb126afb55e8087eaa62ffe95a0add17Flexelinting2024-01-02T08:59:32ZNils Gorollnils.goroll@uplex.dehttps://code.uplex.de/uplex-varnish/libvdp-pesi/commit/c33501f7ea1c4281de865ef47e1e2a35bd51df5fpesi.activate: Set filters through VRT2024-01-02T08:58:13ZNils Gorollnils.goroll@uplex.de
this also fixes a build issue introduced by Varnish-Cache
13cf51e70c00b912ce39110d7eff50ccc01b7bb9https://code.uplex.de/uplex-varnish/libvdp-pesi/commit/ad7e2b1b5ccbd7dcd972545901b95c96460a9b32Adjust to varnish-cache 65242d1d97a3f0a75880f85bf2d1e0b56f917d982023-08-01T15:38:46ZNils Gorollnils.goroll@uplex.dehttps://code.uplex.de/uplex-varnish/libvdp-pesi/commit/16f2bda4080738ddafac36c2f1577d7113307c93ESI: Use response status modulo 10002023-07-12T13:43:22ZNils Gorollnils.goroll@uplex.de
fixes <a href="https://github.com/varnishcache/varnish-cache/issues/3958" rel="nofollow noreferrer noopener" target="_blank">https://github.com/varnishcache/varnish-cache/issues/3958</a>https://code.uplex.de/uplex-varnish/libvdp-pesi/commit/b7e6a48e85b26d30eec6853e975b6b26bc6a8d31Avoid missing VMODTOOL / VSCTOOL go unnoticed2023-07-08T14:33:59ZNils Gorollnils.goroll@uplex.de
Ref #15https://code.uplex.de/uplex-varnish/libvdp-pesi/commit/671ec41f8904489b132efd9f7cd541b63ec016a5Increase vsl buffer for tests with a lot of debug2023-06-26T19:37:17ZNils Gorollnils.goroll@uplex.de
and check that the setting is actually applied (it is).https://code.uplex.de/uplex-varnish/libvdp-pesi/commit/6564b2de942764eed9376138987a1ef94a6ee534Rephrase readme so that it doesn't seem to suggest that PESI can make respons...2023-06-21T23:07:08ZDaniel Karpdanielkarp@gmail.comhttps://code.uplex.de/uplex-varnish/libvdp-pesi/commit/43e1b3623fc860c3be3430328e9dcc08efc73ecdFix bug attribution in changelog and mention #112023-06-12T19:35:18ZNils Gorollnils.goroll@uplex.dehttps://code.uplex.de/uplex-varnish/libvdp-pesi/commit/34bed43e4d6adf3ec2138ade92b7ca6e8152b15bremove front-push related code2023-06-12T19:24:07ZNils Gorollnils.goroll@uplex.de
Now that only the top thread delivers, we can remove the
support for multiple unpending and delivering threads.https://code.uplex.de/uplex-varnish/libvdp-pesi/commit/ed188cf7ed70435963a20e839c7cfe289ec9f124Finish implementation of onerror=continue2023-06-12T19:24:07ZNils Gorollnils.goroll@uplex.de
This concludes the fix for !11
Some bits were already implemented in previous commits.
See <a href="https://github.com/varnishcache/varnish-cache/issues/3938" rel="nofollow noreferrer noopener" target="_blank">https://github.com/varnishcache/varnish-cache/issues/3938</a> for why
this took so long.
Also implemented a fix for <a href="https://github.com/varnishcache/varnish-cache/issues/3939" rel="nofollow noreferrer noopener" target="_blank">https://github.com/varnishcache/varnish-cache/issues/3939</a>
(which is not yet in varnish-cache)https://code.uplex.de/uplex-varnish/libvdp-pesi/commit/77b898518c2e3e66e5859416a41b1ec07083e5d3Refactor error latching2023-06-12T19:24:03ZNils Gorollnils.goroll@uplex.dehttps://code.uplex.de/uplex-varnish/libvdp-pesi/commit/b2d66c4c7844bd3f30fe9c82f04321aaed6baf19Make buffer big enough for -DDEBUG2023-06-12T19:24:03ZNils Gorollnils.goroll@uplex.dehttps://code.uplex.de/uplex-varnish/libvdp-pesi/commit/19a91a07aa8d4b26e1b9489c8ab2e3c06b920181Add missing node_free()2023-06-12T19:24:03ZNils Gorollnils.goroll@uplex.dehttps://code.uplex.de/uplex-varnish/libvdp-pesi/commit/4bf08a4d9ae8f15df8e93efd2ae47e3bf097f1a0Refactor retval handling in vped_deliver()2023-06-12T19:24:03ZNils Gorollnils.goroll@uplex.dehttps://code.uplex.de/uplex-varnish/libvdp-pesi/commit/cbe2a4045e25d9572603332b5f420092c106a945Set parent in node_new to insert T_NEXUS nodes only when they are read2023-06-12T19:23:55ZNils Gorollnils.goroll@uplex.de
In order to properly handle vped_include() failing, we need a way to
insert a node only when it's ready and free it when not.
Thus, we link to the parent in node_new(), but do not insert the
child to the parent's list. As before, this happens in node_insert.
On the way, we also add node_free() to free a node without finalizing
it.
Partly fixes !11https://code.uplex.de/uplex-varnish/libvdp-pesi/commit/cabb69f2fafa29ec3a9c8f56f13747dea931a176Refactor: centralize T_NEXUS init2023-06-12T08:01:58ZNils Gorollnils.goroll@uplex.dehttps://code.uplex.de/uplex-varnish/libvdp-pesi/commit/96a7987ebd9cd3cff4b4ee7ddc92175d8629ec14Refactor: Move nexus children init from node_insert to node_new2023-06-12T07:53:52ZNils Gorollnils.goroll@uplex.dehttps://code.uplex.de/uplex-varnish/libvdp-pesi/commit/9015c6d0fd57835be873f86037e48f69c0e00f81Refactor node init2023-06-12T07:51:09ZNils Gorollnils.goroll@uplex.dehttps://code.uplex.de/uplex-varnish/libvdp-pesi/commit/bbed74ff27703897c46ad92c143e93349020af7eRefactor: node_alloc() always gets called with a pesi argument2023-06-12T07:35:18ZNils Gorollnils.goroll@uplex.dehttps://code.uplex.de/uplex-varnish/libvdp-pesi/commit/377ab45077206fc7b23f6761b86cf867adc08fe4Refactor: move potentially failing allocations to earlier2023-06-12T07:26:25ZNils Gorollnils.goroll@uplex.dehttps://code.uplex.de/uplex-varnish/libvdp-pesi/commit/cc1cf81214cc513246cf36ab44dffd6a7fb3a24aCheck for VARNISHSRC in flint.sh2023-06-12T07:17:29ZNils Gorollnils.goroll@uplex.dehttps://code.uplex.de/uplex-varnish/libvdp-pesi/commit/6c5d8c50fe2547e3df6f747895853cbd2dff6e70Avoid a brain twister: For onerror=continue, use the same semantics as varnis...2023-06-11T13:50:31ZNils Gorollnils.goroll@uplex.de
Related prep-work for !6https://code.uplex.de/uplex-varnish/libvdp-pesi/commit/e2352c14889494399e8d018ddbd9efe840a493c0Add a changelog2023-06-11T13:35:54ZNils Gorollnils.goroll@uplex.dehttps://code.uplex.de/uplex-varnish/libvdp-pesi/commit/6e7ac6e29f0a7afb7885302b921706eda14084f8lcov: Exclude unreachable-by-design lines2023-06-11T12:44:42ZNils Gorollnils.goroll@uplex.dehttps://code.uplex.de/uplex-varnish/libvdp-pesi/commit/5801823d931aa36fe6af1b6b22f4c5c1d1b647a7Constify2023-06-11T12:13:09ZNils Gorollnils.goroll@uplex.de
found by flexelinthttps://code.uplex.de/uplex-varnish/libvdp-pesi/commit/a6d02b66e19ec43abbc26e0a54dd184ce919301bRemove ST_OPEN state2023-06-11T12:11:29ZNils Gorollnils.goroll@uplex.de
Now that we got rid of front unpending, we can also remove all
the complications due to the ST_OPEN state.
Begin with removing that state itself.https://code.uplex.de/uplex-varnish/libvdp-pesi/commit/9a80a6cfa8f1a7137049d417ffe26246c05c569aUse $restrict2023-06-11T11:43:38ZNils Gorollnils.goroll@uplex.dehttps://code.uplex.de/uplex-varnish/libvdp-pesi/commit/fc1ffc353c8429cbb087dbcec2c85dd5854ea657Fully gc T_FINAL2023-06-11T11:33:07ZNils Gorollnils.goroll@uplex.de
It was effectively removed in <a href="/uplex-varnish/libvdp-pesi/commit/913c46530909866cf8575e925efddcd64b6d237b" data-original="913c46530909866cf8575e925efddcd64b6d237b" data-link="false" data-link-reference="false" data-project="77" data-commit="913c46530909866cf8575e925efddcd64b6d237b" data-reference-type="commit" data-container="body" data-placement="bottom" title="Optimizations made possible with HSH_Cancel() in VDP_Close()" class="gfm gfm-commit has-tooltip">913c4653</a> but
dead code was left until now.https://code.uplex.de/uplex-varnish/libvdp-pesi/commit/5b578827075bf230dc88d7d04252ec5b2cc41aaaMake static2023-06-11T11:26:49ZNils Gorollnils.goroll@uplex.de
found by flexelinthttps://code.uplex.de/uplex-varnish/libvdp-pesi/commit/f7f50adc6de751baa4a7595f07b1f37aa34506deSilence flexelint2023-06-11T11:26:49ZNils Gorollnils.goroll@uplex.dehttps://code.uplex.de/uplex-varnish/libvdp-pesi/commit/4920561202b48c3e2821cd0b7a076833f543df67Tell flexelint where to find VSC_main.h2023-06-11T11:14:28ZNils Gorollnils.goroll@uplex.dehttps://code.uplex.de/uplex-varnish/libvdp-pesi/commit/65217a205c2348d03709f760fb66a7566d9e851bConstify2023-06-11T10:58:18ZNils Gorollnils.goroll@uplex.de
Found by flexelinthttps://code.uplex.de/uplex-varnish/libvdp-pesi/commit/a31817407dd5311ae7b6b5f95a773d6241b365adRemove the unused front push feature2023-06-11T10:56:10ZNils Gorollnils.goroll@uplex.de
Ever since the first release of vmod_pesi, we knew that this feature
was probably not useful: As explained in the THREADS section of the
vcc / man page, we can not push to VDPs, so the only case where this
could work was when there are no VDPs. The only case pESI itself does
not need any is non-esi, non-gzip uncacheable streaming. Also, the
only case where it made a significant difference from pushing from the
level 0 / front thread was when there are no threads available and the
front thread runs the current include.
Since then, we never encountered a situation where we would have
needed this feature.https://code.uplex.de/uplex-varnish/libvdp-pesi/commit/913c46530909866cf8575e925efddcd64b6d237bOptimizations made possible with HSH_Cancel() in VDP_Close()2023-06-09T14:26:08ZNils Gorollnils.goroll@uplex.de
Now we can keep references also to private leaf objects.
For ESI objects, which we also need to inspect when building the
delivery tree, we still need to make copies in pesi_buf_bytes because,
if the final flag to ObjIterate() is set, the storage engine can (and
usually will) free segments "behind" delivery.https://code.uplex.de/uplex-varnish/libvdp-pesi/commit/2ccb511ffb0d8ac51c79b4fdbc6e4d8c2ab1f1a4The master branch now has breaking changes2023-06-09T14:24:19ZNils Gorollnils.goroll@uplex.de