]> git.ipfire.org Git - thirdparty/pdns.git/commit
dnsdist: Disable the send wrappers in our CI 12316/head
authorRemi Gacogne <remi.gacogne@powerdns.com>
Mon, 12 Dec 2022 14:42:57 +0000 (15:42 +0100)
committerRemi Gacogne <remi.gacogne@powerdns.com>
Mon, 12 Dec 2022 14:42:57 +0000 (15:42 +0100)
commitd22b0337f4b98a2c58a48824469de5f1260c3c2f
tree7f11eb31ef527e00ca6bb6833d3a9e1f3817cd14
parentb88b84ac26c71b9ba6ce1a1800ec0e4dcc58e5e2
dnsdist: Disable the send wrappers in our CI

The way the send wrappers are implemented, reading the data _after_
it has been sent, cause them to report a data race that does not
exist with existing implementations:
- we call `send()` from thread 1 to send a query to a backend, never
  touching the data or associated metadata again from that thread
- we get a response from the backend in a different thread, thread 2,
  which will then access the metadata and sometimes (truncated UDP
  answers following a DoH query) even modify the data itself
- ASAN and TSAN complain because the wrapper might still be reading
  the data after the UDP datagram has been sent, which is effectively
  a race, but it does not really make any sense for an actual
  implementation of `send()` to do that.

We work around that by disabling the `send()` wrappers in our CI,
for the dnsdist regression tests only, via `intercept_send=0`.
.github/workflows/build-and-test-all.yml