New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 609183 link

Starred by 1 user

Issue metadata

Status: WontFix
Owner:
Last visit > 30 days ago
Closed: May 2016
Cc:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug



Sign in to add a comment

msan is broken in gn

Project Member Reported by krasin@chromium.org, May 4 2016

Issue description

To reproduce:
$ gn gen //out/gn-msan '--args=is_msan=true msan_track_origins=2 is_debug=false is_component_build=false symbol_level=1 dcheck_always_on=true' --check
$ ninja -C out/gn-msan cc_unittests
$ ./out/gn-msan/cc_unittests --gtest_filter=RegionTest.IsEmpty
$ ./out/gn-msan/cc_unittests --gtest_filter=RegionTest.IsEmpty
IMPORTANT DEBUGGING NOTE: batches of tests are run inside their
own process. For debugging a test inside a debugger, use the
--gtest_filter=<your_test_name> flag along with
--single-process-tests.
Using sharding settings from environment. This is shard 0/1
Using 1 parallel jobs.
Uninitialized bytes in __interceptor_fopen at offset 0 inside [0x70600003ad40, 42)
==14597==WARNING: MemorySanitizer: use-of-uninitialized-value
    #0 0x7f8ccc0fa2b6 in XauGetBestAuthByAddr /build/buildd/libxau-1.0.8/build/../AuGetBest.c:79
    #1 0x7f8cccdf51b3  (/usr/lib/x86_64-linux-gnu/libxcb.so.1+0xd1b3)
    #2 0x7f8cccdf53bc  (/usr/lib/x86_64-linux-gnu/libxcb.so.1+0xd3bc)
    #3 0x7f8cccdf4fe3 in xcb_connect_to_display_with_auth_info (/usr/lib/x86_64-linux-gnu/libxcb.so.1+0xcfe3)
    #4 0x7f8cd1b04329 in _XConnectXCB /build/buildd/libx11-1.6.2/build/src/../../src/xcb_disp.c:78
    #5 0x7f8cd1af588e in XOpenDisplay /build/buildd/libx11-1.6.2/build/src/../../src/OpenDis.c:129
    #6 0x4d898af in gfx::OpenNewXDisplay() out/gn-msan/../../ui/gfx/x/x11_types.cc:29:10
    #7 0x4d89622 in gfx::GetXDisplay() out/gn-msan/../../ui/gfx/x/x11_types.cc:19:15
    #8 0x3a0e4b1 in InitializeOneOff out/gn-msan/../../ui/gl/gl_surface_x11.cc:79:8
    #9 0x3a0e4b1 in gfx::GLSurface::InitializeOneOffInternal() out/gn-msan/../../ui/gl/gl_surface_x11.cc:257
    #10 0x39a52cc in gfx::GLSurface::InitializeOneOffImplementation(gfx::GLImplementation, bool, bool, bool) out/gn-msan/../../ui/gl/gl_surface.cc:75:43
    #11 0x3a3e13a in gfx::GLSurfaceTestSupport::InitializeOneOff() out/gn-msan/../../ui/gl/test/gl_surface_test_support.cc:60:3
    #12 0x2f3cff4 in cc::CCTestSuite::Initialize() out/gn-msan/../../cc/test/cc_test_suite.cc:21:3
    #13 0x37586de in base::TestSuite::Run() out/gn-msan/../../base/test/test_suite.cc:218:3
    #14 0x3794201 in Run out/gn-msan/../../base/callback.h:397:12
    #15 0x3794201 in base::(anonymous namespace)::LaunchUnitTestsInternal(base::Callback<int (), (base::internal::CopyMode)1> const&, int, int, bool, base::Callback<void (), (base::internal::CopyMode)1> const&) out/gn-msan/../../base/test/launcher/unit_test_launcher.cc:206
    #16 0x3793a27 in base::LaunchUnitTests(int, char**, base::Callback<int (), (base::internal::CopyMode)1> const&) out/gn-msan/../../base/test/launcher/unit_test_launcher.cc:445:10
    #17 0x2f3d572 in main out/gn-msan/../../cc/test/run_all_unittests.cc:12:10
    #18 0x7f8cce166ec4 in __libc_start_main /build/eglibc-3GlaMS/eglibc-2.19/csu/libc-start.c:287
    #19 0x62a894 in _start (/usr/local/google/home/krasin/chr25/src/out/gn-msan/cc_unittests+0x62a894)

  Uninitialized value was created by a heap allocation
    #0 0x64f532 in __interceptor_malloc (/usr/local/google/home/krasin/chr25/src/out/gn-msan/cc_unittests+0x64f532)
    #1 0x7f8ccc0fa040 in XauFileName /build/buildd/libxau-1.0.8/build/../AuFileName.c:72

SUMMARY: MemorySanitizer: use-of-uninitialized-value /build/buildd/libxau-1.0.8/build/../AuGetBest.c:79 in XauGetBestAuthByAddr

It seems that some kind of a blacklist is not applied if built with GN.

Given that GYP is about to be retired, MSAN buildbot will become permanently red. So, it's probably a good idea to fix MSAN + GN combo.
 
Status: WontFix (was: Untriaged)
That's not how you use MSan.
See http://dev.chromium.org/developers/testing/memorysanitizer.
You need use_prebuilt_instrumented_libraries, also note that GN build does not now how to download the libraries, so you'll also need to run glient runhooks with special GYP_DEFINES once. That is tracked in https://bugs.chromium.org/p/chromium/issues/detail?id=585127.

Sign in to add a comment