-
Notifications
You must be signed in to change notification settings - Fork 169
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
Automate Address & Thread sanitization #2782
Conversation
f8a650d
to
c502e23
Compare
Check the performance result here: https://ci.realm.io/job/realm/job/realm-core/job/PR-2782/3/Performance_Report |
Please check your coverage here: https://ci.realm.io/job/realm/job/realm-core/job/PR-2782/3/Diff_Coverage |
Please check your coverage here: https://ci.realm.io/job/realm/job/realm-core/job/PR-2782/4/Diff_Coverage |
Check the performance result here: https://ci.realm.io/job/realm/job/realm-core/job/PR-2782/4/Performance_Report |
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.
I think this PR needs to be rethought a bit in light of the fact that we already have a cmake toolchain for many specialty builds.
CMakeLists.txt
Outdated
@@ -104,12 +104,20 @@ option(REALM_ENABLE_ASSERTIONS "Enable assertions in release mode." OFF) | |||
option(REALM_ENABLE_ALLOC_SET_ZERO "Zero all allocations." OFF) | |||
option(REALM_ENABLE_ENCRYPTION "Enable encryption." ON) | |||
option(REALM_ENABLE_MEMDEBUG "Add additional memory checks" OFF) | |||
option(REALM_SANITIZE_ADDRESS "Enable the GCC/Clang address sanitizer." OFF) |
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.
No need for this. There is already a toolchain for specialty builds: https://github.com/realm/realm-core/blob/master/tools/cmake/SpecialtyBuilds.cmake
CMakeLists.txt
Outdated
set(REALM_MAX_BPNODE_SIZE "1000" CACHE STRING "Max B+ tree node size.") | ||
|
||
if (CMAKE_SYSTEM_NAME MATCHES "^Windows") | ||
set(REALM_ENABLE_ENCRYPTION OFF) | ||
endif() | ||
|
||
if(REALM_SANITIZE_THREAD) |
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.
This is not needed either
@emanuelez thanks for pointing out the specialty builds file, I forgot about it! I changed to use those built in flags now. |
Please check your coverage here: https://ci.realm.io/job/realm/job/realm-core/job/PR-2782/5/Diff_Coverage |
Check the performance result here: https://ci.realm.io/job/realm/job/realm-core/job/PR-2782/5/Performance_Report |
Please check your coverage here: https://ci.realm.io/job/realm/job/realm-core/job/PR-2782/6/Diff_Coverage |
Check the performance result here: https://ci.realm.io/job/realm/job/realm-core/job/PR-2782/6/Performance_Report |
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.
Just a minor comment. Good job!
Jenkinsfile
Outdated
@@ -151,24 +152,29 @@ def buildDockerEnv(name) { | |||
return docker.image(name) | |||
} | |||
|
|||
def doBuildInDocker(String buildType) { | |||
def doBuildInDocker(String buildType, String sanitizeMode) { |
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.
If you used a default value for the parameter you could avoid passing an empty string when calling this function:
def doBuildInDocker(String buildType, String sanitizeMode='') {
Please check your coverage here: https://ci.realm.io/job/realm/job/realm-core/job/PR-2782/7/Diff_Coverage |
Check the performance result here: https://ci.realm.io/job/realm/job/realm-core/job/PR-2782/7/Performance_Report |
Please check your coverage here: https://ci.realm.io/job/realm/job/realm-core/job/PR-2782/8/Diff_Coverage |
Check the performance result here: https://ci.realm.io/job/realm/job/realm-core/job/PR-2782/8/Performance_Report |
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.
Nice!
How about the memory sanitizer? Is it in the plans? |
@emanuelez though it may have value to run a memory sanitizer on each PR, I think our valgrind job is probably sufficient for uninitialised reads. |
UNITTEST_PROGRESS
when testing