- 30 Jul, 2019 11 commits
-
-
Nils Goroll authored
but better safe than sorry
-
Nils Goroll authored
-
Nils Goroll authored
-
Nils Goroll authored
-
Nils Goroll authored
-
Nils Goroll authored
it's too early in set_delivered() because set_closed() calls set_delivered() on a nexus when all children are already devivered, but that can happen from within the nexus node's fsm. we will add extra finis when it's safe in a later commit
-
Nils Goroll authored
in the varnish-cache variant of the code this works because not VDP_Push is used but the internal push to the parent
-
Nils Goroll authored
When subreqs still used the topreq's VDPs, we could not do this, but now that we properly layer the VDPs again, we can (and should)
-
Nils Goroll authored
-
Nils Goroll authored
waiting for the boc happened at the wrong place *** v1 debug|Assert error in vped_gzgz_init(), foreign/cache_esi_deliver.c line 163: *** v1 debug| Condition(foo->start > 0 && foo->start < foo->olen * 8) not true.
-
Nils Goroll authored
... because of T_FINAL. Because the parent's thread (except for the root) will terminate eventually, this is also all good, except for the case that we spend all available threads on T_FINAL. Leave the hard problems for later, *sigh*
-
- 29 Jul, 2019 23 commits
-
-
Nils Goroll authored
for esi_level = 0, we still need to close the root in the vdp, but for levels down, we want to make sure that the vdps are right before anything is happening below our node
-
Nils Goroll authored
-
Nils Goroll authored
-
Nils Goroll authored
the producer should have the T_FINAL lock before making the node available by releasing the tree lock
-
Nils Goroll authored
those VSL(SLT_Debug, 0, ...) trigger false positives while testing
-
Nils Goroll authored
or at least I fail to see how it should with just one req->vdc
-
Nils Goroll authored
...why I could have meant by topa-rent
-
Nils Goroll authored
This restores src/foreign/cache_esi_deliver.c to basically the code from varnish-cache and avoids any unlayered pushes / crc.
-
Geoff Simmons authored
-
Geoff Simmons authored
Never mind that this currently never happens anyway.
-
Geoff Simmons authored
-
Geoff Simmons authored
-
Geoff Simmons authored
-
Geoff Simmons authored
-
Geoff Simmons authored
-
Nils Goroll authored
in for nexus nodes (= ESI subrequests), we fini the pesi vdp (and, conceptually, the buf also, but that requires details still) when we are done with parsing, such that any other vdps are still in place. Also we push a vdp which pushes bytes up one parent like ved_ved in varnish-cache. So we should now have a VDP chain for each subreq basically matching that of varnish-cache
-
Geoff Simmons authored
-
Nils Goroll authored
I always got confused about this myself, so the name was probably bad
-
Nils Goroll authored
gzip status needs to be per esi inlcude (= per nexus): If the esi is gzipped and is used in an ungzip context, the ungzip vdp gets pushed by varnish-cache, yet still all content below needs to be (pretend-)gzipped for that ungzip to work.
-
Nils Goroll authored
-
Geoff Simmons authored
-
Nils Goroll authored
-
Nils Goroll authored
geoffs load tests have shown that my previous idea of trying to fool varnish-cache code in temporarily changing the objcore flags was bad and leads to all kinds of nasty races. So so we add yet another method which not only keeps the subreq intact, but also halts its thread until deliery is ready. This requires another thread to exist for longer, hopyfully will get us towards the goals described in d9c36c7e.
-
- 28 Jul, 2019 6 commits
-
-
Nils Goroll authored
We called pesi_finish() after notifying the topreq, so they could both be running pesi_finish(), breaking out has_task assertion
-
Nils Goroll authored
firstly, this is a cleanup The relevant fix is that we raced a backend fetches objcore->flags modification, which simply was wrong. Fiddling the flags under the oh->mtx should solve this race.
-
Nils Goroll authored
-
Nils Goroll authored
-
Nils Goroll authored
and add back assertions that we hopefully do not mess it up
-
Nils Goroll authored
-