Bug#1126312: golang-1.25: FTBFS on s390x: TestTSAN: ThreadSanitizer: CHECK failed: tsan_platform_linux.cpp:571

Tianon Gravi <[email protected]>
Newsgroups gmane.linux.debian.ports.s390
Message-ID <176922596114.3704.862609914923080509.reportbug__49101.7501962901$1769226090$gmane$org@58407a284905>
Source: golang-1.25
Version: 1.25.6-1
Severity: serious
Tags: ftbfs
Justification: fails to build from source (but built successfully in the past)
Forwarded: https://github.com/golang/go/issues/77289
X-Debbugs-Cc: [email protected], [email protected]
User: [email protected]
Usertags: s390x


Go 1.25 FTBFS on s390x on the buildds after my most recent upload.

I don't think this is actually related to the 1.25.6 upload, and I bet
that it would *also* reproduce if 1.25.3 were rebuilt.

I filed a bug with upstream (https://github.com/golang/go/issues/77289),
but I think the root cause is most likely src:gcc-15 version 15.2.0-12,
which includes "Build liblsan and libtsan on s390x." in the changelog:
https://tracker.debian.org/news/1699395/accepted-gcc-15-1520-12-source-all-amd64-into-unstable/

There's a failing build log at
https://buildd.debian.org/status/fetch.php?pkg=golang-1.25&arch=s390x&ver=1.25.6-1&stamp=1769154463&raw=1,
but here's the relevant bit:

--- FAIL: TestTSAN (13.61s)
    --- FAIL: TestTSAN/tsan (0.54s)
        tsan_test.go:99: /usr/bin/setarch s390x -R /tmp/TestTSANtsan1215000322/001/tsan exited with exit status 66
            ThreadSanitizer: CHECK failed: tsan_platform_linux.cpp:571 "((thr_beg)) >= ((tls_addr))" (0x3ffac69e140, 0x3ffac69e240) (tid=50181)
                #0 __tsan::CheckUnwind() ../../../../src/libsanitizer/tsan/tsan_rtl.cpp:676 (libtsan.so.2+0x9020f) (BuildId: f875f192ade23bc40881328d687242f532ffe220)
                #1 __sanitizer::CheckFailed(char const*, int, char const*, unsigned long long, unsigned long long) ../../../../src/libsanitizer/sanitizer_common/sanitizer_termination.cpp:86 (libtsan.so.2+0xcfbf9) (BuildId: f875f192ade23bc40881328d687242f532ffe220)
                #2 __tsan::ImitateTlsWrite(__tsan::ThreadState*, unsigned long, unsigned long) ../../../../src/libsanitizer/tsan/tsan_platform_linux.cpp:571 (libtsan.so.2+0x8e0c3) (BuildId: f875f192ade23bc40881328d687242f532ffe220)
                #3 __tsan::ThreadStart(__tsan::ThreadState*, unsigned int, unsigned long long, __sanitizer::ThreadType) ../../../../src/libsanitizer/tsan/tsan_rtl_thread.cpp:203 (libtsan.so.2+0xa9035) (BuildId: f875f192ade23bc40881328d687242f532ffe220)
                #4 __tsan_thread_start_func ../../../../src/libsanitizer/tsan/tsan_interceptors_posix.cpp:1028 (libtsan.so.2+0x3cb75) (BuildId: f875f192ade23bc40881328d687242f532ffe220)
                #5 <null> <null> (libc.so.6+0xa51a1) (BuildId: 906fc7e75bfa917e7bdb55fef57cec35268ce523)
                #6 <null> <null> (libc.so.6+0x12715f) (BuildId: 906fc7e75bfa917e7bdb55fef57cec35268ce523)

(repeated over and over again, the exact same error/backtrace for
 several TestTSAN/tsanX test runs)


If I don't hear from anyone upstream or on this bug, my plan is to patch
this test out on s390x like we've done for riscv64, but I'd really
rather see a proper fix because this probably is a real bug of some
kind, I just don't know enough about TSAN to say for sure. 😅


♥,
- Tianon
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.