Commits on Source (9)
-
Daniel Stone authored
For some reason, the Debian CI setup leaks fontconfig allocations in a way which it does not for me on Fedora. On the assumption that this has been fixed between our older CI Debian and Fedora 36, suppress the leak warning, because we do already call FcFini() which should free it. Signed-off-by: Daniel Stone <daniels@collabora.com>
6a06a069 -
Daniel Stone authored
Unfortunately just adding suppressions isn't enough; the build of Expat we have in our CI system does not have frame pointers, so ASan's fast unwinder can't see through it. This means that the suppressions we've added won't be taken into account. For now, disable the fast unwinder for the Xwayland test only. Disabling it globally is not practical as it massively increases the per-test runtime, so here (to avoid polluting the build system), we use a per-test wrapper to selectively choose the unwinder. Signed-off-by: Daniel Stone <daniels@collabora.com>
c5ed892b -
Daniel Stone authored
This commit is truly horrible. We want to run ASan with leak checking enabled in CI so we can catch memory leaks before they're introduced. This works well with Pixman, and with NIR-only drivers like iris or Panfrost. But when we run under llvmpipe - which we do under CI - we start failing because: - Mesa pulls in llvmpipe via dlopen - llvmpipe pulls in LLVM itself via DT_NEEDED - initialising LLVM's global type/etc systems performs thread-local allocations - llvmpipe can't free those allocations since the application might also be using LLVM - Weston stops using GL and destroys all GL objects, leading to Mesa unloading llvmpipe like it should - with everything disappearing from the process's vmap, ASan can no longer keep track of still-reachable pointers - tests fail because LLVM is 'leaking' Usually, an alternative is to LD_PRELOAD a shim which overrides dlclose() to be a no-op. This is not usable here, because when $LD_PRELOAD is not empty and ASan is not first in it, ASan immediately errors out. Prepending ASan doesn't work, because we run our tests through Meson (which also invokes Ninja), leading to LSan exploding over CPython and Ninja, which is not what we're interested in. It would be possible to inject _both_ ASan and a dlclose-does-nothing shim DSO into the LD_PRELOAD environment for every test, but that seems even worse, especially as Meson strongly discourages globbing for random files in the root. So, here we are, doing what we can: finding where swrast_dri.so (aka llvmpipe) lives, stashing that in an environment variable, and deliberately leaking a dlopen handle which we never close to ensure that neither llvmpipe nor LLVM leave our process's address space before we exit. Signed-off-by: Daniel Stone <daniels@collabora.com>
6c8ae362 -
Daniel Stone authored
ZUC's default mode is to fork for every test case. Unfortunately on AArch64, fork in an ASan-traced program usually takes around 3.6 entire seconds. This was leading to the config-parser test timing out. As none of our remaining ZUC tests even need to fork, just remove all support for it. Signed-off-by: Daniel Stone <daniels@collabora.com>
759712ba -
Daniel Stone authored
Using real files is unnecessarily heavy and error-prone. Fixes timeouts seen on CI with ASan. Signed-off-by: Daniel Stone <daniels@collabora.com>
f5223166 -
Daniel Stone authored
Setting up the arguments may consume some of the arguments, e.g. if we provide a config file or extra modules, then the test harness is expected to be responsible for freeing those arguments. Checking the requirements and bailing first means that we never do that, and thus skipped tests result in leaks. Flip the order so we set up the args first and skip last, so we can consistently take ownership of all the provided setup parameters. Signed-off-by: Daniel Stone <daniels@collabora.com>
23c8dc7b -
Daniel Stone authored
For some reason, this causes the reads to get completely lost sometimes in CI. Signed-off-by: Daniel Stone <daniels@collabora.com>
4aa885d4 -
Daniel Stone authored
There are two versions of WM_NORMAL_HINTS: the original pre-ICCCM version (standardised by Xlib itself?) provides 15 elements of 32 bits each, with the ICCCM v1 extending this by 3 additional elements. Since the flags are enough to identify which elements are present, and the structure is append-only, we only need to read the minimum length between what the user provided and what we support. Fixes a heap overrun found with ASan. Signed-off-by: Daniel Stone <daniels@collabora.com>
5b11f406 -
Daniel Stone authored
Otherwise we just leak this into the void. Not good. Signed-off-by: Daniel Stone <daniels@collabora.com>
18897253
.gitlab-ci/virtme-scripts/per-test-asan.sh
0 → 100755
tools/zunitc/src/zuc_collector.c
deleted
100644 → 0
tools/zunitc/src/zuc_collector.h
deleted
100644 → 0