varnish-cache:master

Last commit made on 2024-05-29
Get this branch:
git clone -b master https://git.launchpad.net/varnish-cache

Branch merges

Branch information

Name:
master
Repository:
lp:varnish-cache

Recent commits

bb57b07... by Dridi Boukelmoune <email address hidden>

vsm: s/fanton/fantom/

1659215... by Nils Goroll <email address hidden>

Revert vtest: Add "option timeout"

veto'ed by phk.

It was my intention to make a helpful improvement along the way, but I have
no capacity at the moment for a longer process.

This reverts commit d6aef69a6b1da8fc8e392d2de159a0861418d7ce.
This reverts commit 9b76b9a4baa4fedd2fb3a904b0dceafd263d0ddc.
This reverts commit 8fc1b2c3af3eea0aa0a424fdc6bb76788a9f5661.

d6aef69... by Nils Goroll <email address hidden>

vtest: Polish option code

Code after vtc_fatal() is unreachable

9b76b9a... by Nils Goroll <email address hidden>

Give v51.vtc more time

it repeatedly timed out on arm

8fc1b2c... by Nils Goroll <email address hidden>

vtest: Add "option timeout" to adjust the timeout per test case

fec2597... by Nils Goroll <email address hidden>

Fix worker_tmpdir when the unix jail is active

I misread the code and did not try running varnishtest as root :|

77110d7... by Nils Goroll <email address hidden>

Return a consistent boc state from ObjWaitExtend()

Clients to the Object API need to know not only the current extension
(new length) of streaming objects, but also the streaming state - in
particular BOS_FINISHED and BOS_FAILED. The latter for obvious
reasons, and the former to call the delivery function with
OBJ_ITER_END, which then likely results in VDP_END sent down the
delivery pipeline.

Background:

It is important for efficient delivery to not receive an additional
VDP_END with a null buffer, but rather combined with the last chunk of
data, so, consequently, it is important to reliably send OBJ_INTER_END
also with the last chunk of data.

Consequent to all of this, ObjWaitExtend() callers need to know when
BOS_FINISHED has been reached for some extension.

The current API, however, does not provide a consistent view of the
streaming state, which is only available from within the critical region
of ObjWaitExtend().

Thus, we add the streaming state as an optional return value.

With this commit, we also remove a superfluous line to set rv again:
Because boc->fetched_so_far must only be updated while holding the boc
mutex, reading the value again provides no benefit.

6d1ea03... by Nils Goroll <email address hidden>

Copy timeouts from a via backend if undefined for the destination

note: use of isnan() is for forward compatibility, at the moment, we use
-1 to denone NAN for backends.

97537cb... by Nils Goroll <email address hidden>

Create a directory owned by the worker process for use as a TMPDIR

Processes created by the worker might require a TMPDIR for temporary
files (think: filters). Create a dedicated directory for this purpose,
which is otherwise hard to achieve in a universal manner.

ba7bf7f... by Dridi Boukelmoune <email address hidden>

vsm: Do not store MAP_FAILED in a VSM segment

The problem is that a MAP_FAILED segment ends up in its vsm_set::segs
list, at which point NULL checks will determine what to do with the
segment, and MAP_FAILED != NULL.

This can happen when winning (or losing?) the race with a VSC segment
that goes away after being found in the index, but before being mapped.

One surefire result is a crash in vsm_unmapseg() tripping on assertions
that other fields are also not NULL. There may be other unidentified ill
effects.