Skip to content

Conversation

practicalswift
Copy link
Contributor

@practicalswift practicalswift commented Nov 6, 2018

Fail the UBSan Travis build in case of newly introduced UBSan (UndefinedBehaviorSanitizer) errors.

Prior to this commit new UBSan errors were printed but didn't fail the UBSan Travis build.

Changes:

  • Travis: Add UBSan options: print_stacktrace + halt_on_error
  • Travis: Add UBSan suppressions needed to pass test suite
  • Travis: Add llvm-symbolizer directory to PATH. Needed to get symbolized stack traces from the sanitizers.

halt_on_error should have been part of #14252 really :-)

@maflcko
Copy link
Member

maflcko commented Nov 6, 2018

Tested ACK 4773fa8 (Checked that fced6b5 fails on travis and that 4773fa8 prints more useful stacks)

@maflcko maflcko merged commit 4773fa8 into bitcoin:master Nov 6, 2018
maflcko pushed a commit that referenced this pull request Nov 6, 2018
…troduced UBSan errors

4773fa8 Add llvm-symbolizer directory to PATH. Needed to get symbolized stack traces from the sanitizers. (practicalswift)
5c292da Add UBSan suppressions needed to pass test suite (practicalswift)
fced6b5 Add UBSan options: print_stacktrace + halt_on_error (practicalswift)

Pull request description:

  Fail the UBSan Travis build in case of newly introduced [UBSan (UndefinedBehaviorSanitizer)](https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html) errors.

  Prior to this commit new UBSan errors were printed but didn't fail the UBSan Travis build.

  Changes:
  * Travis: Add UBSan options: `print_stacktrace` + `halt_on_error`
  * Travis: Add UBSan suppressions needed to pass test suite
  * Travis: Add `llvm-symbolizer` directory to PATH. Needed to get symbolized stack traces from the sanitizers.

  `halt_on_error` should have been part of #14252 really :-)

Tree-SHA512: 30e960659196873d4f636f3a61267b8b4441a0e8773e3f3ae4660a9341d028c363636f0cb919ef9d6662ceb484e3d58054adfb6dc76ff8a355a1c9f927c328d1
@maflcko maflcko added the Tests label Nov 6, 2018
maflcko pushed a commit that referenced this pull request Jul 2, 2020
…se of uninitialized memory

870f0cd build: Add MemorySanitizer (MSan) in Travis to detect use of uninitialized memory (practicalswift)

Pull request description:

  Add MemorySanitizer (MSan) in Travis to detect use of uninitialized memory.

  First UBSan, then ASan followed by TSan... and now: yes, the wait is over -- **MSan is finally here!** :)

  Some historical context:
  * 2017: Continuous compilation with Clang Thread Safety analysis enabled (#10866, #10923)
  * 2018: Continuous testing with trapping on signed integer overflows (`-ftrapv`) (#12686)
  * 2018: Continuous testing of use of locale dependent functions (#13041)
  * 2018: Continuous testing of format strings (#13705)
  * 2018: Continuous compilation with MSVC `TreatWarningAsError` (#14151)
  * 2018: Continuous testing under UndefinedBehaviorSanitizer – UBSan (#14252, #14673, #17006)
  * 2018: Continuous testing under AddressSanitizer – ASan (#14794, #17205, #17674)
  * 2018: Continuous testing under ThreadSanitizer – TSan (#14829)
  * 2019: Continuous testing in an unsigned char environment (`-funsigned-char`) (#15134)
  * 2019: Continuous compile-time testing of assumptions we're making (#15391)
  * 2019: Continuous testing of fuzz test cases under Valgrind (#17633, #18159, #18166)
  * 2020: Finally... MemorySanitizer – MSAN! :)

  What is the next step? What tools should we add to CI to keep bugs from entering `master`? :)

ACKs for top commit:
  MarcoFalke:
    ACK 870f0cd

Tree-SHA512: 38327c8b75679d97d469fe42e704cacd1217447a5a603701dd8a58ee50b3be2c10248f8d68a479ed081c0c4b254589d3081c9183f991640b06ef689061f75578
@practicalswift practicalswift deleted the ubsan-tweak branch April 10, 2021 19:36
PastaPastaPasta pushed a commit to PastaPastaPasta/dash that referenced this pull request Aug 16, 2021
…ewly introduced UBSan errors

4773fa8 Add llvm-symbolizer directory to PATH. Needed to get symbolized stack traces from the sanitizers. (practicalswift)
5c292da Add UBSan suppressions needed to pass test suite (practicalswift)
fced6b5 Add UBSan options: print_stacktrace + halt_on_error (practicalswift)

Pull request description:

  Fail the UBSan Travis build in case of newly introduced [UBSan (UndefinedBehaviorSanitizer)](https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html) errors.

  Prior to this commit new UBSan errors were printed but didn't fail the UBSan Travis build.

  Changes:
  * Travis: Add UBSan options: `print_stacktrace` + `halt_on_error`
  * Travis: Add UBSan suppressions needed to pass test suite
  * Travis: Add `llvm-symbolizer` directory to PATH. Needed to get symbolized stack traces from the sanitizers.

  `halt_on_error` should have been part of bitcoin#14252 really :-)

Tree-SHA512: 30e960659196873d4f636f3a61267b8b4441a0e8773e3f3ae4660a9341d028c363636f0cb919ef9d6662ceb484e3d58054adfb6dc76ff8a355a1c9f927c328d1
PastaPastaPasta pushed a commit to PastaPastaPasta/dash that referenced this pull request Aug 16, 2021
…ewly introduced UBSan errors

4773fa8 Add llvm-symbolizer directory to PATH. Needed to get symbolized stack traces from the sanitizers. (practicalswift)
5c292da Add UBSan suppressions needed to pass test suite (practicalswift)
fced6b5 Add UBSan options: print_stacktrace + halt_on_error (practicalswift)

Pull request description:

  Fail the UBSan Travis build in case of newly introduced [UBSan (UndefinedBehaviorSanitizer)](https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html) errors.

  Prior to this commit new UBSan errors were printed but didn't fail the UBSan Travis build.

  Changes:
  * Travis: Add UBSan options: `print_stacktrace` + `halt_on_error`
  * Travis: Add UBSan suppressions needed to pass test suite
  * Travis: Add `llvm-symbolizer` directory to PATH. Needed to get symbolized stack traces from the sanitizers.

  `halt_on_error` should have been part of bitcoin#14252 really :-)

Tree-SHA512: 30e960659196873d4f636f3a61267b8b4441a0e8773e3f3ae4660a9341d028c363636f0cb919ef9d6662ceb484e3d58054adfb6dc76ff8a355a1c9f927c328d1
PastaPastaPasta pushed a commit to PastaPastaPasta/dash that referenced this pull request Aug 17, 2021
…ewly introduced UBSan errors

4773fa8 Add llvm-symbolizer directory to PATH. Needed to get symbolized stack traces from the sanitizers. (practicalswift)
5c292da Add UBSan suppressions needed to pass test suite (practicalswift)
fced6b5 Add UBSan options: print_stacktrace + halt_on_error (practicalswift)

Pull request description:

  Fail the UBSan Travis build in case of newly introduced [UBSan (UndefinedBehaviorSanitizer)](https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html) errors.

  Prior to this commit new UBSan errors were printed but didn't fail the UBSan Travis build.

  Changes:
  * Travis: Add UBSan options: `print_stacktrace` + `halt_on_error`
  * Travis: Add UBSan suppressions needed to pass test suite
  * Travis: Add `llvm-symbolizer` directory to PATH. Needed to get symbolized stack traces from the sanitizers.

  `halt_on_error` should have been part of bitcoin#14252 really :-)

Tree-SHA512: 30e960659196873d4f636f3a61267b8b4441a0e8773e3f3ae4660a9341d028c363636f0cb919ef9d6662ceb484e3d58054adfb6dc76ff8a355a1c9f927c328d1
PastaPastaPasta pushed a commit to PastaPastaPasta/dash that referenced this pull request Aug 18, 2021
…ewly introduced UBSan errors

4773fa8 Add llvm-symbolizer directory to PATH. Needed to get symbolized stack traces from the sanitizers. (practicalswift)
5c292da Add UBSan suppressions needed to pass test suite (practicalswift)
fced6b5 Add UBSan options: print_stacktrace + halt_on_error (practicalswift)

Pull request description:

  Fail the UBSan Travis build in case of newly introduced [UBSan (UndefinedBehaviorSanitizer)](https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html) errors.

  Prior to this commit new UBSan errors were printed but didn't fail the UBSan Travis build.

  Changes:
  * Travis: Add UBSan options: `print_stacktrace` + `halt_on_error`
  * Travis: Add UBSan suppressions needed to pass test suite
  * Travis: Add `llvm-symbolizer` directory to PATH. Needed to get symbolized stack traces from the sanitizers.

  `halt_on_error` should have been part of bitcoin#14252 really :-)

Tree-SHA512: 30e960659196873d4f636f3a61267b8b4441a0e8773e3f3ae4660a9341d028c363636f0cb919ef9d6662ceb484e3d58054adfb6dc76ff8a355a1c9f927c328d1
vijaydasmp pushed a commit to vijaydasmp/dash that referenced this pull request Oct 4, 2021
…etect use of uninitialized memory

870f0cd build: Add MemorySanitizer (MSan) in Travis to detect use of uninitialized memory (practicalswift)

Pull request description:

  Add MemorySanitizer (MSan) in Travis to detect use of uninitialized memory.

  First UBSan, then ASan followed by TSan... and now: yes, the wait is over -- **MSan is finally here!** :)

  Some historical context:
  * 2017: Continuous compilation with Clang Thread Safety analysis enabled (bitcoin#10866, bitcoin#10923)
  * 2018: Continuous testing with trapping on signed integer overflows (`-ftrapv`) (bitcoin#12686)
  * 2018: Continuous testing of use of locale dependent functions (bitcoin#13041)
  * 2018: Continuous testing of format strings (bitcoin#13705)
  * 2018: Continuous compilation with MSVC `TreatWarningAsError` (bitcoin#14151)
  * 2018: Continuous testing under UndefinedBehaviorSanitizer – UBSan (bitcoin#14252, bitcoin#14673, bitcoin#17006)
  * 2018: Continuous testing under AddressSanitizer – ASan (bitcoin#14794, bitcoin#17205, bitcoin#17674)
  * 2018: Continuous testing under ThreadSanitizer – TSan (bitcoin#14829)
  * 2019: Continuous testing in an unsigned char environment (`-funsigned-char`) (bitcoin#15134)
  * 2019: Continuous compile-time testing of assumptions we're making (bitcoin#15391)
  * 2019: Continuous testing of fuzz test cases under Valgrind (bitcoin#17633, bitcoin#18159, bitcoin#18166)
  * 2020: Finally... MemorySanitizer – MSAN! :)

  What is the next step? What tools should we add to CI to keep bugs from entering `master`? :)

ACKs for top commit:
  MarcoFalke:
    ACK 870f0cd

Tree-SHA512: 38327c8b75679d97d469fe42e704cacd1217447a5a603701dd8a58ee50b3be2c10248f8d68a479ed081c0c4b254589d3081c9183f991640b06ef689061f75578
gades pushed a commit to cosanta/cosanta-core that referenced this pull request Apr 20, 2022
…ewly introduced UBSan errors

4773fa8 Add llvm-symbolizer directory to PATH. Needed to get symbolized stack traces from the sanitizers. (practicalswift)
5c292da Add UBSan suppressions needed to pass test suite (practicalswift)
fced6b5 Add UBSan options: print_stacktrace + halt_on_error (practicalswift)

Pull request description:

  Fail the UBSan Travis build in case of newly introduced [UBSan (UndefinedBehaviorSanitizer)](https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html) errors.

  Prior to this commit new UBSan errors were printed but didn't fail the UBSan Travis build.

  Changes:
  * Travis: Add UBSan options: `print_stacktrace` + `halt_on_error`
  * Travis: Add UBSan suppressions needed to pass test suite
  * Travis: Add `llvm-symbolizer` directory to PATH. Needed to get symbolized stack traces from the sanitizers.

  `halt_on_error` should have been part of bitcoin#14252 really :-)

Tree-SHA512: 30e960659196873d4f636f3a61267b8b4441a0e8773e3f3ae4660a9341d028c363636f0cb919ef9d6662ceb484e3d58054adfb6dc76ff8a355a1c9f927c328d1
@bitcoin bitcoin locked as resolved and limited conversation to collaborators Aug 16, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants