From: Viktor Szakats Date: Wed, 13 Aug 2025 13:14:31 +0000 (+0200) Subject: GHA/linux: fix thread sanitizer error output X-Git-Tag: curl-8_16_0~185 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=2a46df31fdb91851895bc46d81f0065e6cafc80b;p=thirdparty%2Fcurl.git GHA/linux: fix thread sanitizer error output Replace autotools with cmake to avoid libtool wrappers that are changing `LD_LIBRARY_PATH` in a way incompatible with the thread sanitizer. To fix the output when the sanitizier is finding something: ``` ==51718==WARNING: Can't write to symbolizer at fd 7 /usr/bin/llvm-symbolizer-18: /home/runner/work/curl/curl/bld/lib/.libs/libcurl.so.4: no version information available (required by /usr/bin/llvm-symbolizer-18) /usr/bin/llvm-symbolizer-18: symbol lookup error: /home/runner/openssl/lib/libcrypto.so.3: undefined symbol: __tsan_func_entry ``` Ref: https://github.com/curl/curl/actions/runs/16911402500/job/47913783729#step:39:4466 After: ``` 13:50:04.117885 == Info:ThreadSanitizer: thread T1 finished with ignores enabled, created at: closing connection #0 #0 pthread_create (libtests+0x6bc0f) (BuildId: 4fe889446291259934205ac03931c397aa0210d3) #1 Curl_thread_create /home/runner/work/curl/curl/lib/curl_threads.c:73:6 (libcurl.so.4+0x55a76) (BuildId: cb0f14ba2ad68c9cab0c980d9a5d7a53cc0782da) #2 async_thrdd_init /home/runner/work/curl/curl/lib/asyn-thrdd.c:500:26 (libcurl.so.4+0x1c153) (BuildId: cb0f14ba2ad68c9cab0c980d9a5d7a53cc0782da) [...] ``` Ref: https://github.com/curl/curl/actions/runs/16939193922/job/48003405272?pr=18274#step:39:4018 Also: - disable memory tracker which turned out to be incompatible with the thread sanitizer and detaching threads. Ref: #18263 and #curl IRC. - the job is ~30 seconds faster after this patch. Reported-by: Stefan Eissing Bug: https://github.com/curl/curl/pull/18263#issuecomment-3179279440 Follow-up to a2bcec0ee0895c23b98aea8e72ad4e9278fa67c8 #14751 Closes #18274 --- diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 5b3d90ea00..7f1ea5a5eb 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -235,8 +235,9 @@ jobs: install_packages: zlib1g-dev clang libtsan2 install_steps: pytest openssl-tsan CFLAGS: -fsanitize=thread -g - LDFLAGS: -fsanitize=thread -Wl,-rpath,/home/runner/openssl/lib - configure: CC=clang --with-openssl=/home/runner/openssl --enable-debug + LDFLAGS: -fsanitize=thread + CC: clang + generate: -DOPENSSL_ROOT_DIR=/home/runner/openssl -DENABLE_DEBUG=ON -DENABLE_CURLDEBUG=OFF - name: 'memory-sanitizer' install_packages: clang