Skip to content

Conversation

@acmorrow
Copy link
Contributor

No description provided.

@acmorrow
Copy link
Contributor Author

@acmorrow
Copy link
Contributor Author

Gentle ping? This gets ASAN green again which is very nice, and also gets us off the Ubuntu 1410 builder, which is EOL, and will make the build team happy (they are trying to retire that distro).

osx_cmake_flags: &osx_cmake_flags -DCMAKE_CXX_FLAGS="-stdlib=libc++ -Wall -Wextra -Wno-attributes -Werror -Wno-error=missing-field-initializers" -DBSONCXX_POLY_USE_BOOST=ON
asan_cmake_flags: &asan_cmake_flags -DCMAKE_CXX_FLAGS="-fsanitize=address -O1 -fno-omit-frame-pointer -Wall -Wextra -Wno-attributes -Werror -Wno-error=missing-field-initializers -Wno-error=maybe-uninitialized"
ubsan_cmake_flags: &ubsan_cmake_flags -DCMAKE_CXX_COMPILER="/usr/bin/clang++" -DCMAKE_CXX_FLAGS="-fsanitize=undefined -g -fno-omit-frame-pointer -fsanitize-blacklist=$(pwd)/../etc/ubsan.blacklist -fno-sanitize-recover -Wall -Wextra -Wno-attributes -Werror -Wno-error=missing-field-initializers"
ubuntu_cmake_flags: &ubuntu_cmake_flags -DCMAKE_CXX_FLAGS="-Wall -Wextra -Werror -Wno-error=missing-field-initializers"
Copy link
Contributor

Choose a reason for hiding this comment

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

Could you clarify the following:

  • Do we want -Wno-attributes?
  • Do we need -Wno-error=missing-field-initializers?
  • Do the defaults for these change flags over the different compiler versions we're building with?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

  • Re -Wno-attributes: I'm not sure why it was here, but, empirically, it seems not needed, so I removed it.
  • We do seem to need the one about missing field initializers, since the 14.04 GCC seems to have a bug.
  • I'm not sure about the defaults, but I'd expect no. Ideally, we would not build with the -Wno-error=missing-field-initializers, because I'd like to have that warning. But we seem to get false positives with it on 14.04 GCC.

@jrassi
Copy link
Contributor

jrassi commented Sep 12, 2016

LGTM. Questions included for the pieces I'm less familiar with.

@jrassi
Copy link
Contributor

jrassi commented Sep 12, 2016

Actually, two more questions:

  • Does this resolve CXX-829? If so, please update the title of that ticket.
  • How did you figure out to look at the C driver as a leak source? Was it just a hunch, or was it obvious to look at each of the driver dependencies just based on the fact that the ASAN stack traces were obfuscated?

@acmorrow
Copy link
Contributor Author

  • It does resolve CXX-829, I've updated the description
  • The stack traces were obfuscated, and said "unknown module" in the stack, which almost certainly meant that some library had been unloaded from the address space. The C++ library doesn't itself unload anything, and I doubted that libstdc++ did either. Our only other dependencies in the valgrind builder were the c driver, so, it was the obvious place to look.

@acmorrow acmorrow merged commit 252689a into mongodb:master Sep 12, 2016
@jrassi
Copy link
Contributor

jrassi commented Sep 12, 2016

Thanks for your answers!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants