-
Notifications
You must be signed in to change notification settings - Fork 187
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
WIP: Sanitizer build with Ubuntu 20.04 #3636
Conversation
Codecov Report
@@ Coverage Diff @@
## python #3636 +/- ##
========================================
Coverage 88% 88%
========================================
Files 524 523 -1
Lines 23471 22446 -1025
========================================
- Hits 20658 19845 -813
+ Misses 2813 2601 -212
Continue to review full report at Codecov.
|
you can try locally by: |
To resolve that issue, it seems we need to either downgrade Cython 0.29.14 to 0.29.13, or add the compiler flag |
docker run -it docker.pkg.github.com/espressomd/docker/ubuntu-20.04:a1192b35590a1a474c55fe1e9a1e6c25758454ea bash
I’m aware of that. The deprecation stuff didn’t happen, locally, for whatever reason.
|
Boost MPI again, it seems: |
Yup, the offending line is |
It's also trivial to fix, which doesn't help because we don't control the code. |
It's also trivial to fix, which doesn't help because we don't control the code.
Suppression file it is, then.
|
I don't know. The sanitizer says this is a nullpointer dereference, so this might also segfault |
Ah, wait a second. The buffer is passed into the class, maybe it can be fixed from the outside... |
No, it can't. This was also introduced quite recently. We should really ship our own version of boost mpi. |
Co-Authored-By: Jean-Noël Grad <jgrad@icp.uni-stuttgart.de>
.gitlab-ci.yml
Outdated
script: | ||
- export myconfig=maxset with_cuda=false with_coverage=false with_static_analysis=true with_asan=true with_ubsan=true test_timeout=900 ASAN_OPTIONS="allocator_may_return_null=1" OMPI_CC=clang-9 OMPI_CXX=clang++-9 CC=clang-9 CXX=clang++-9 UBSAN_OPTIONS=suppressions=${CI_PROJECT_DIR}/maintainer/CI/ubsan.supp |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
script: | |
- export myconfig=maxset with_cuda=false with_coverage=false with_static_analysis=true with_asan=true with_ubsan=true test_timeout=900 ASAN_OPTIONS="allocator_may_return_null=1" OMPI_CC=clang-9 OMPI_CXX=clang++-9 CC=clang-9 CXX=clang++-9 UBSAN_OPTIONS=suppressions=${CI_PROJECT_DIR}/maintainer/CI/ubsan.supp | |
variables: | |
myconfig: 'maxset' | |
with_cuda: 'false' | |
with_coverage: 'false' | |
with_static_analysis: 'true' | |
with_asan: 'true' | |
with_ubsan: 'true' | |
test_timeout: '900' | |
ASAN_OPTIONS: 'allocator_may_return_null=1' | |
OMPI_CC: 'clang-9' | |
OMPI_CXX: 'clang++-9' | |
CC: 'clang-9' | |
CXX: 'clang++-9' | |
UBSAN_OPTIONS: 'suppressions=${CI_PROJECT_DIR}/maintainer/CI/ubsan.supp' | |
script: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
use env vars
@RudolfWeeber This PR looks ready to me. What is still missing? |
@@ -22,6 +22,7 @@ | |||
#if defined(__CUDACC__) | |||
|
|||
#include <cuda.h> | |||
#include "clang_thrust_workaround.cuh" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The file clang_thrust_workaround.cuh
seems to be missing. Also, I just found out the issue was fixed in thrust 1.9.5 (I'm writing a report for them)
#include "clang_thrust_workaround.cuh" | |
#if THRUST_VERSION < 100905 | |
#include "clang_thrust_workaround.cuh" | |
#endif |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Here is my investigation: NVIDIA/thrust#1032 (comment); if CUDA 10.1 is shipped with thrust 1.9.5, we should install it on ICP machines and drop support for the combination Clang+CUDA10.0 is ESPResSo.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@RudolfWeeber sorry, I forgot that editing a message doesn't send an email. In my previous message, I meant to say that you probably forgot to commit file clang_thrust_workaround.cuh
.
For the record: I think the workaround is a bad idea. |
I'm also not sure if it can be done like this from the ESPResSo side. When I tinkered with that solution, I found the only way to get it to work was to apply it directly to the thrust code, but maybe I'm wrong. |
It looks like the workaround is already present in the OSX container... Let's make a decision about how to proceed in the ES meeting. |
offline core team discussion: if Clang 8.0 can build with thrust 1.9.3 keep it, otherwise add thrust 1.9.5 as a submodule. |
Core team discussion yielded that @jngrad will take over this PR.
I'll post Docker changes to the Ubuntu 20 container separately. |
No description provided.