ci: Enable DEBUG=1 for one GCC-12+ build to catch 117966 regressions #31522

pull maflcko wants to merge 2 commits into bitcoin:master from maflcko:2412-ci-gcc-debug changing 2 files +6 −4
  1. maflcko commented at 8:34 am on December 18, 2024: member

    It is possible that someone accidentally removes the workaround in fa9e0489f57968945d54ef56b275f51540f3e5e4, or more likely that someone accidentally adds new code without the workaround.

    Avoid this by adding a temporary CI check.

    This can be tested by reverting the workaround and observing a failure.

  2. DrahtBot commented at 8:34 am on December 18, 2024: contributor

    The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

    Code Coverage & Benchmarks

    For details see: https://corecheck.dev/bitcoin/bitcoin/pulls/31522.

    Reviews

    See the guideline for information on the review process.

    Type Reviewers
    Stale ACK hebasto

    If your review is incorrectly listed, please react with 👎 to this comment and the bot will ignore it on the next update.

    Conflicts

    Reviewers, this pull request conflicts with the following ones:

    • #30975 (Add multiprocess binaries to release build (except Windows, OpenBSD) by Sjors)

    If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first.

  3. DrahtBot added the label Tests on Dec 18, 2024
  4. maflcko marked this as a draft on Dec 18, 2024
  5. maflcko force-pushed on Dec 18, 2024
  6. maflcko marked this as ready for review on Dec 18, 2024
  7. hebasto approved
  8. hebasto commented at 10:04 am on January 3, 2025: member
    ACK fa1d84702bf4c14d55c51b9ab4cd30cdbbc5ad44, tested locally by reverting https://github.com/bitcoin/bitcoin/commit/fa9e0489f57968945d54ef56b275f51540f3e5e4 back and observing a compiler error.
  9. maflcko renamed this:
    ci: Enable DEBUG=1 for one GCC-12 build to catch 117966 regressions
    ci: Enable DEBUG=1 for one GCC-12+ build to catch 117966 regressions
    on Jan 3, 2025
  10. maflcko commented at 12:57 pm on January 3, 2025: member

    For reference, this conflicts with commit a1add80c80bc95afdd55652bb87379fb34150a5c from

    #29881 (guix: use GCC 13 to build releases by fanquake)

    However, this is fine, because any version 12, or above should be fine. I’ve edited the pull title to clarify GCC-12+.

  11. maflcko added the label DrahtBot Guix build requested on Jan 9, 2025
  12. fanquake commented at 11:19 am on January 17, 2025: member
    One thought I have here is that not only are we no-longer running any unit tests for the Win release builds in the CI, but after this change, the build will also no-longer be a release build, so we are moving even further away from testing in the CI, what we are actually producing in Guix. I guess if this is temporary, maybe it’s ok, but worth noting, and if it’s possible to test this in a different way, without moving the Windows build away from being a release build, it might be worthwhile.
  13. maflcko force-pushed on Jan 17, 2025
  14. maflcko commented at 3:21 pm on January 17, 2025: member
    Ok, slapped it on to the centos task, which happens to work now that the 32-bit stuff is dropped.
  15. DrahtBot added the label CI failed on Jan 17, 2025
  16. DrahtBot commented at 3:27 pm on January 17, 2025: contributor

    🚧 At least one of the CI tasks failed. Debug: https://github.com/bitcoin/bitcoin/runs/35781360834

    Try to run the tests locally, according to the documentation. However, a CI failure may still happen due to a number of reasons, for example:

    • Possibly due to a silent merge conflict (the changes in this pull request being incompatible with the current code in the target branch). If so, make sure to rebase on the latest commit of the target branch.

    • A sanitizer issue, which can only be found by compiling with the sanitizer and running the affected test.

    • An intermittent issue.

    Leave a comment here, if you need help tracking down a confusing failure.

  17. fanquake commented at 3:30 pm on January 17, 2025: member

    https://cirrus-ci.com/task/5812783272427520?logs=ci#L4621:

     0[15:22:49.280] [ 86%] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/float.cpp.o
     1[15:22:49.281] cd /ci_container_base/ci/scratch/build-x86_64-pc-linux-gnu/src/test/fuzz && /usr/bin/ccache /opt/rh/gcc-toolset-12/root/usr/bin/g++ -m64 -DABORT_ON_FAILED_ASSUME -DBOOST_MULTI_INDEX_DISABLE_SERIALIZATION -DDEBUG -DDEBUG_LOCKCONTENTION -DDEBUG_LOCKORDER -DRPC_DOC_CHECK -D_GLIBCXX_DEBUG -D_GLIBCXX_DEBUG_PEDANTIC -D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_DEBUG -I/ci_container_base/ci/scratch/build-x86_64-pc-linux-gnu/src -I/ci_container_base/src -I/ci_container_base/src/univalue/include -I/ci_container_base/src/minisketch/include -I/ci_container_base/src/leveldb/include -I/ci_container_base/src/secp256k1/include -isystem /ci_container_base/depends/x86_64-pc-linux-gnu/include -pipe -std=c++20 -O0 -ftrapv -O1 -g3 -g3 -std=c++20 -fPIE -fvisibility=hidden -fno-extended-identifiers -fdebug-prefix-map=/ci_container_base/src=. -fmacro-prefix-map=/ci_container_base/src=. -fstack-reuse=none -Werror -Wall -Wextra -Wformat -Wformat-security -Wvla -Wredundant-decls -Wdate-time -Wduplicated-branches -Wduplicated-cond -Wlogical-op -Woverloaded-virtual -Wsuggest-override -Wimplicit-fallthrough -Wunreachable-code -Wbidi-chars=any -Wundef -Wno-unused-parameter -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3 -Wstack-protector -fstack-protector-all -fcf-protection=full -fstack-clash-protection -MD -MT src/test/fuzz/CMakeFiles/fuzz.dir/float.cpp.o -MF CMakeFiles/fuzz.dir/float.cpp.o.d -o CMakeFiles/fuzz.dir/float.cpp.o -c /ci_container_base/src/test/fuzz/float.cpp  
     2[15:22:51.900] In file included from /ci_container_base/src/test/fuzz/float.cpp:12:
     3[15:22:51.900] In function ‘constexpr bool std::isnan(double)’,
     4[15:22:51.900]     inlined from ‘void float_fuzz_target(FuzzBufferType)’ at /ci_container_base/src/test/fuzz/float.cpp:58:9:
     5[15:22:51.900] /opt/rh/gcc-toolset-12/root/usr/include/c++/12/cmath:620:27: error: ‘tmp’ may be used uninitialized [-Werror=maybe-uninitialized]
     6[15:22:51.900]   620 |   { return __builtin_isnan(__x); }
     7[15:22:51.900]       |            ~~~~~~~~~~~~~~~^~~~~
     8[15:22:51.900] /ci_container_base/src/test/fuzz/float.cpp: In function ‘void float_fuzz_target(FuzzBufferType)’:
     9[15:22:51.900] /ci_container_base/src/test/fuzz/float.cpp:21:20: note: ‘tmp’ was declared here
    10[15:22:51.900]    21 |             double tmp;
    11[15:22:51.900]       |                    ^~~
    12[15:22:51.900] cc1plus: all warnings being treated as errors
    

    Guess it’s possible this is solved after #31593 (or not, if that doesn’t change compiler), so we could do that first.

  18. maflcko force-pushed on Jan 17, 2025
  19. maflcko marked this as a draft on Jan 17, 2025
  20. maflcko force-pushed on Jan 17, 2025
  21. maflcko commented at 4:55 pm on January 17, 2025: member
    Ok, put into draft for now. I’ll rebase after centos 10.
  22. DrahtBot removed the label CI failed on Jan 17, 2025
  23. ci: Enable DEBUG=1 for one GCC-12+ build to catch 117966 regressions fa40807fa8
  24. refactor: Avoid GCC false positive error
    This avoids an overly agressive GCC false positive warning:
    
    error: ‘tmp’ may be used uninitialized [-Werror=maybe-uninitialized]
    fa8ade300f
  25. maflcko force-pushed on Jan 20, 2025
  26. maflcko marked this as ready for review on Jan 20, 2025
  27. fanquake removed the label DrahtBot Guix build requested on Jan 20, 2025

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2025-01-21 06:12 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me