Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add CI "platform" running UBSAN #2304

Merged
merged 1 commit into from
Mar 12, 2024
Merged

add CI "platform" running UBSAN #2304

merged 1 commit into from
Mar 12, 2024

Conversation

spoonincode
Copy link
Member

While there are still a few remaining violations (see comments below), I think we're in a good spot to enable UBSAN in CI builds. UBSAN is expected to generate no false positives so requiring it to pass is reasonable.

An example run with failures is here,
https://github.com/AntelopeIO/leap/actions/runs/8252261490

@spoonincode spoonincode added the CICD Anything dealing with the CI workflow behavior label Mar 12, 2024
zlib1g-dev \
zstd

RUN yes | bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)" llvm.sh 18
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Use the latest clang for these builds; presumably it has the best & most reliable UBSAN yet.

COPY <<-EOF /ubsan.supp
vptr:wasm_eosio_validation.hpp
vptr:wasm_eosio_injection.hpp
EOF
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

EOS VM's WASM parser seems to do a number of invalid casts, I believe casting between something<Foo> and something<Bar> when something<T> is not derived from any sort of base class. Resolving this might not be straightforward; and it's not clear if we may replace EOS VM in the mid/long term; so suppress these errors for now.

Base automatically changed from cb_environment_ub to main March 12, 2024 16:48
@spoonincode spoonincode merged commit 8f843ff into main Mar 12, 2024
68 checks passed
@spoonincode spoonincode deleted the ubsan_ci branch March 12, 2024 19:53
@ericpassmore
Copy link
Contributor

Note:start
group: STABILITY
category: CHORE
summary: Enable CI tests to check for undefined behavior.
Note:end

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CICD Anything dealing with the CI workflow behavior
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants