- 02 Jun, 2021 7 commits
-
-
Nils Goroll authored
-
Poul-Henning Kamp authored
-
Poul-Henning Kamp authored
Add test-coverage of internal function sf_parse_int()
-
Poul-Henning Kamp authored
-
Dridi Boukelmoune authored
Only the special cases get special handling.
-
Dridi Boukelmoune authored
-
Dridi Boukelmoune authored
-
- 01 Jun, 2021 7 commits
-
-
Dridi Boukelmoune authored
With sanitizers it becomes too easy to trigger a timeout because of the debug.priv_perf() invocations. Note for later, I'm planning to change the feature syntax to this: feature [!]<name> [<args>...] This way we can use `feature !sanitizer` to express the same check.
-
Dridi Boukelmoune authored
A side effect is slightly more accurate error messages. Closes #3555
-
Dridi Boukelmoune authored
This migrates the remaining candidates for vcc_Peek*() functions using a coccinelle semantic patch. When vcc_PeekToken*() is used in an assignment statement it's straightforward to patch. In an expression a careful review is needed, that's why the generated code is meant not to compile on purpose. That's how the pattern for vcc_PrintTokens() was noticed.
-
Dridi Boukelmoune authored
The same pattern occurred 3 times while reviewing potential usage for the new vcc_PeekToken*() functions.
-
Dridi Boukelmoune authored
Without advancing to the next token, and leaving the door open to synthetic tokens that would otherwise interfere with direct access.
-
Dridi Boukelmoune authored
This is as far declaring symbols goes, because we can still find hard-coded prefixes in other places. Having them in the types could actually help centralize them for good, but this is a minimal change for the purpose of referencing global symbols before they are defined. Refs #3555
-
Poul-Henning Kamp authored
-
- 31 May, 2021 11 commits
-
-
Poul-Henning Kamp authored
Spotted by: @dridi
-
Poul-Henning Kamp authored
(analog of storage_malloc.c)
-
Poul-Henning Kamp authored
-
Poul-Henning Kamp authored
-
Poul-Henning Kamp authored
-
Poul-Henning Kamp authored
-
Poul-Henning Kamp authored
-
Poul-Henning Kamp authored
-
Poul-Henning Kamp authored
-
Poul-Henning Kamp authored
-
Dridi Boukelmoune authored
The buf_len field is only ever modified by the poll thread and should not need to be guarded here. This will hopefully silence a coverity warning: CID 1485138: Concurrent data access violations (ATOMICITY) Using an unreliable value of "l" inside the second locked section. If the data that "l" depends on was changed by another thread, this use might be incorrect. It might on the other hand complain even harder, I have an alternative if that happens.
-
- 28 May, 2021 15 commits
-
-
Dridi Boukelmoune authored
Unlike other threads we cancel in varnishtest there's 2 per tunnel and they need coordination between each other. The spec thread remains as-is and the poll thread now checks vtc_stop after each condwait. With this I'm no longer able to reproduce a21's timeout. Reverts d4cf677a
-
Dridi Boukelmoune authored
The assertion above wasn't enough apparently.
-
Poul-Henning Kamp authored
-
Dridi Boukelmoune authored
-
Poul-Henning Kamp authored
-
Dridi Boukelmoune authored
And make a note that we should avoid pthread_cancel(3) in the future.
-
Dridi Boukelmoune authored
-
Dridi Boukelmoune authored
-
Poul-Henning Kamp authored
-
Dridi Boukelmoune authored
-
Dridi Boukelmoune authored
-
Dridi Boukelmoune authored
-
Dridi Boukelmoune authored
A wrong WRONG doesn't make it right for SunCC.
-
Dridi Boukelmoune authored
To cut down synchronization needs for the very beginning of a session.
-
Dridi Boukelmoune authored
The tunnel acts like a client and a server and forwards bytes between two parties. It can then pause in the middle of a session and control how much data can go in either direction. Combined with barriers it can be used to trigger socket timeouts, possibly in the middle of protocol frames. A tunnel works with two threads: one to execute its spec and one to poll both parties and transfer data accordingly. The two threads synchronize via basic pthread primitives and follow a very simplistic state machine: ACCEPT -> RUNNING <-> PAUSED -> SPEC DONE -> POLL DONE -> STOPPED Despite being simplistic, the coordination of two threads would likely complicate the implementation of a `-repeat` action, but it is still possible to `start` a tunnel again as shown in the c106 test case that exercises basic coverage involving a varnish instance. Usage is documented in the vtc(7) manual.
-