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

Issue 855588 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner: ----
Closed: Jun 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 3
Type: Bug

Blocking:
issue 843511



Sign in to add a comment

ozone_unittests fails to run under asan/lsan due to leaks

Project Member Reported by thakis@chromium.org, Jun 22 2018

Issue description

I'm trying to add ozone_unittests to the cros asan/lsan bot. Many tests fail with leaks: https://ci.chromium.org/p/chromium/builders/luci.chromium.try/linux_chromium_chromeos_asan_rel_ng/15672

XdgVersionV6Test/WaylandPointerTest.Leave/0
XdgVersionV6Test/WaylandWindowTest.SetMaximizedFullscreenAndRestore/0
DrmOverlayValidatorTest.RejectBufferAllocationFail
ScreenManagerTest.ShouldDissociateWindowOnControllerRemoval
XdgVersionV5Test/WaylandWindowTest.SetMaximizedFullscreenAndRestore/0
XdgVersionV6Test/WaylandKeyboardTest.EventAutoRepeat/0
XdgVersionV5Test/WaylandWindowTest.SendsBoundsOnRequest/0
XdgVersionV6Test/WaylandKeyboardTest.ControlModifierKeypress/0
XdgVersionV6Test/WaylandWindowTest.RestoreBoundsAfterFullscreen/0
XdgVersionV5Test/WaylandWindowTest.CanDispatchEventToMenuWindowNonNested/0
XdgVersionV5Test/WaylandWindowTest.ConfigureEventWithNulledSize/0
DrmOverlayValidatorTest.OptimalFormatXRGB_MirroredControllers
XdgVersionV5Test/WaylandTouchTest.KeypressAndMotion/0
XdgVersionV5Test/WaylandSurfaceFactoryTest.CanvasResize/0
XdgVersionV5Test/WaylandWindowTest.CanDispatchMouseEventFocus/0
XdgVersionV5Test/WaylandKeyboardTest.EventAutoRepeat/0
XdgVersionV6Test/WaylandKeyboardTest.ControlShiftModifiers/0
XdgVersionV6Test/WaylandPointerTest.ButtonReleaseAndCheckCapture/0
XdgVersionV6Test/WaylandWindowTest.OnAcceleratedWidgetDestroy/0
XdgVersionV5Test/WaylandWindowTest.RestoreBoundsAfterFullscreen/0
XdgVersionV5Test/WaylandKeyboardTest.ControlShiftModifiers/0
XdgVersionV6Test/WaylandPointerTest.ButtonPressAndCheckCapture/0
DrmOverlayValidatorTest.DontPromoteMoreLayersThanAvailablePlanes
XdgVersionV6Test/WaylandWindowTest.CanDispatchMouseEventFocus/0
XdgVersionV6Test/WaylandKeyboardTest.NoEventAutoRepeatBeforeTimeout/0
XdgVersionV6Test/WaylandWindowTest.RestoreBoundsAfterMaximizeAndFullscreen/0
XdgVersionV5Test/WaylandWindowTest.DispatchEvent/0
XdgVersionV5Test/WaylandWindowTest.HasCaptureUpdatedOnPointerEvents/0
XdgVersionV6Test/WaylandKeyboardTest.NoEventAutoRepeatOnLeave/0
WaylandConnectionTest.UseUnstableVersion
DrmOverlayValidatorTest.RejectYUVBuffersIfNotSupported_MirroredControllers
XdgVersionV6Test/WaylandPointerTest.AxisVertical/0
XdgVersionV5Test/WaylandPointerTest.AxisVertical/0
XdgVersionV6Test/WaylandPointerTest.Motion/0
ScreenManagerTest.EnableControllerWhenWindowHasNoBuffer
XdgVersionV5Test/WaylandWindowTest.SetTitle/0
XdgVersionV6Test/WaylandDataDeviceManagerTest.WriteToClipboard/0
XdgVersionV6Test/WaylandSurfaceFactoryTest.CanvasResize/0
XdgVersionV5Test/WaylandPointerTest.AxisHorizontal/0
XdgVersionV6Test/WaylandWindowTest.CanDispatchEventToMenuWindowNonNested/0
XdgVersionV5Test/WaylandWindowTest.CanDispatchMouseEventUnfocus/0
XdgVersionV5Test/WaylandWindowTest.RestoreBoundsAfterMaximize/0
HardwareDisplayPlaneManagerAtomicTest.SetColorCorrectionOnAllCrtcPlanes_OnePlaneMissingCtmProperty/0
XdgVersionV5Test/WaylandWindowTest.OnAcceleratedWidgetDestroy/0
XdgVersionV5Test/WaylandKeyboardTest.ControlModifierKeypress/0
XdgVersionV5Test/WaylandPointerTest.Leave/0
XdgVersionV5Test/WaylandDataDeviceManagerTest.WriteToClipboard/0
XdgVersionV6Test/WaylandWindowTest.Minimize/0
XdgVersionV6Test/WaylandDataDeviceManagerTest.IsSelectionOwner/0
XdgVersionV5Test/WaylandPointerTest.MotionDragged/0
XdgVersionV6Test/WaylandWindowTest.ConfigureEvent/0
XdgVersionV6Test/WaylandWindowTest.HasCaptureUpdatedOnPointerEvents/0
XdgVersionV6Test/WaylandKeyboardTest.AltModifierKeypress/0
XdgVersionV5Test/WaylandWindowTest.RestoreBoundsAfterMaximizeAndFullscreen/0
XdgVersionV5Test/WaylandKeyboardTest.Keypress/0
XdgVersionV5Test/WaylandWindowTest.ConfigureEvent/0
XdgVersionV6Test/WaylandWindowTest.MaximizeAndRestore/0
XdgVersionV6Test/WaylandKeyboardTest.Keypress/0
XdgVersionV6Test/WaylandKeyboardTest.CapsLockKeypress/0
DrmOverlayValidatorTest.RejectYUVBuffersIfNotSupported
DrmOverlayValidatorTest.WindowWithNoController
XdgVersionV5Test/WaylandPointerTest.Motion/0
XdgVersionV5Test/WaylandWindowTest.CreateAndDestroyNestedMenuWindow/0
XdgVersionV6Test/WaylandWindowTest.CreateAndDestroyMenuWindow/0
XdgVersionV6Test/WaylandWindowTest.RestoreBoundsAfterMaximize/0
XdgVersionV6Test/WaylandDataDeviceManagerTest.ReadFromClibpard/0
XdgVersionV6Test/WaylandSurfaceFactoryTest.Canvas/0
XdgVersionV6Test/WaylandWindowTest.CanDispatchMouseEventDefault/0
XdgVersionV6Test/WaylandWindowTest.CreateAndDestroyNestedMenuWindow/0
ScreenManagerTest.CheckControllerToWindowMappingWithSameBounds
ScreenManagerTest.RejectBufferWithIncompatibleModifiers
XdgVersionV5Test/WaylandKeyboardTest.ShiftModifierKeypress/0
XdgVersionV6Test/WaylandWindowTest.CanDispatchEventToMenuWindowNested/0
XdgVersionV5Test/WaylandWindowTest.OnActivationChanged/0
XdgVersionV5Test/WaylandPointerTest.ButtonPressAndCheckCapture/0
XdgVersionV5Test/WaylandPointerTest.ButtonReleaseAndCheckCapture/0
XdgVersionV5Test/WaylandKeyboardTest.NoEventAutoRepeatOnLeave/0
DrmOverlayValidatorTest.OverlayFormat_YUV
XdgVersionV6Test/WaylandWindowTest.OnActivationChanged/0
XdgVersionV6Test/WaylandTouchTest.KeypressAndMotion/0
XdgVersionV6Test/WaylandWindowTest.ConfigureEventWithNulledSize/0
HardwareDisplayPlaneManagerAtomicTest.SetColorCorrectionOnAllCrtcPlanes_NoPlaneCtmProperty/0
XdgVersionV6Test/WaylandWindowTest.SetTitle/0
DrmOverlayValidatorTest.DontCollapseOverlayToPrimaryInFullScreen
XdgVersionV6Test/WaylandPointerTest.MotionDragged/0
XdgVersionV5Test/WaylandWindowTest.MaximizeAndRestore/0
XdgVersionV5Test/WaylandKeyboardTest.AltModifierKeypress/0
XdgVersionV5Test/WaylandDataDeviceManagerTest.IsSelectionOwner/0
XdgVersionV6Test/WaylandPointerTest.AxisHorizontal/0
WaylandConnectionTest.Ping
DrmWindowTest.CheckCursorSurfaceAfterChangingDevice
XdgVersionV5Test/WaylandWindowTest.Minimize/0
XdgVersionV6Test/WaylandWindowTest.CanDispatchMouseEventUnfocus/0
XdgVersionV5Test/WaylandWindowTest.SetFullscreenAndRestore/0
DrmOverlayValidatorTest.OverlayFormat_XRGB
ScreenManagerTest.CheckControllerToWindowMappingWithOverlappingWindows
XdgVersionV6Test/WaylandKeyboardTest.ShiftModifierKeypress/0
XdgVersionV5Test/WaylandWindowTest.CanDispatchMouseEventDefault/0
WaylandConnectionTest.Output
XdgVersionV5Test/WaylandDataDeviceManagerTest.ReadFromClibpard/0
HardwareDisplayPlaneManagerAtomicTest.SetColorCorrectionOnAllCrtcPlanes_Success/0
XdgVersionV5Test/WaylandWindowTest.CanDispatchEventToMenuWindowNested/0
XdgVersionV6Test/WaylandWindowTest.SetFullscreenAndRestore/0
XdgVersionV5Test/WaylandKeyboardTest.CapsLockKeypress/0
ScreenManagerTest.EnableControllerWhenWindowHasBuffer
XdgVersionV5Test/WaylandWindowTest.CreateAndDestroyMenuWindow/0
XdgVersionV5Test/WaylandKeyboardTest.NoEventAutoRepeatBeforeTimeout/0
XdgVersionV6Test/WaylandWindowTest.DispatchEvent/0
DrmWindowTest.CheckCallbackOnFailedSwap
DrmWindowTest.SetCursorImage
XdgVersionV6Test/WaylandWindowTest.SendsBoundsOnRequest/0
XdgVersionV5Test/WaylandSurfaceFactoryTest.Canvas/0





I'm seeing two types of stacks:


1.

==21398==ERROR: LeakSanitizer: detected memory leaks
Direct leak of 72 byte(s) in 1 object(s) allocated from:
    #0 0x4e3b8a in __interceptor_calloc /b/build/slave/linux_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/asan_malloc_linux.cc:130:3
    #1 0x2cccdfb in zalloc third_party/wayland/src/src/wayland-private.h:234:9
    #2 0x2cccdfb in proxy_create third_party/wayland/src/src/wayland-client.c:334
    #3 0x2cccdfb in create_outgoing_proxy third_party/wayland/src/src/wayland-client.c:559
    #4 0x2cccdfb in wl_proxy_marshal_array_constructor_versioned third_party/wayland/src/src/wayland-client.c:644
    #5 0x2ccd954 in wl_proxy_marshal_constructor_versioned third_party/wayland/src/src/wayland-client.c:772:9
    #6 0x144c210 in wl_registry_bind third_party/wayland/include/protocol/wayland-client-protocol.h:1079:7
    #7 0x144c210 in Bind<wl_data_device_manager> ui/ozone/platform/wayland/wayland_object.h:214
    #8 0x144c210 in ui::WaylandConnection::Global(void*, wl_registry*, unsigned int, char const*, unsigned int) ui/ozone/platform/wayland/wayland_connection.cc:320
    #9 0x7fb8012f9c7b in ffi_call_unix64 /build/libffi-ob8JkF/libffi-3.1~rc1+r3.0.13/build/../src/x86/unix64.S:76


2. 


Direct leak of 16384 byte(s) in 1 object(s) allocated from:
    #0 0x50fa42 in operator new[](unsigned long) /b/build/slave/linux_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/asan_new_delete.cc:96:3
    #1 0x5b8f82 in ui::MockDrmDevice::CreateDumbBuffer(SkImageInfo const&, unsigned int*, unsigned int*) ui/ozone/platform/drm/gpu/mock_drm_device.cc:336:18
    #2 0x134b6c8 in ui::DrmBuffer::Initialize(SkImageInfo const&, bool) ui/ozone/platform/drm/gpu/drm_buffer.cc:52:14
    #3 0x1397ac2 in ui::DrmWindow::UpdateCursorBuffers() ui/ozone/platform/drm/gpu/drm_window.cc:238:32
    #4 0x1397371 in ui::DrmWindow::SetController(ui::HardwareDisplayController*) ui/ozone/platform/drm/gpu/drm_window.cc:217:3
    #5 0x13d9e86 in ui::ScreenManager::UpdateControllerToWindowMapping() ui/ozone/platform/drm/gpu/screen_manager.cc:337:18
    #6 0x13da09c in ui::ScreenManager::ConfigureDisplayController(scoped_refptr<ui::DrmDevice> const&, unsigned int, unsigned int, gfx::Point const&, _drmModeModeInfo const&) ui/ozone/platform/drm/gpu/screen_manager.cc:146:5
    #7 0x5dd196 in ScreenManagerTest_ShouldDissociateWindowOnControllerRemoval_Test::TestBody() ui/ozone/platform/drm/gpu/screen_manager_unittest.cc:453:20
    #8 0x9b94f2 in testing::Test::Run() third_party/googletest/src/googletest/src/gtest.cc
    #9 0x9bb454 in testing::TestInfo::Run() third_party/googletest/src/googletest/src/gtest.cc:2667:11
    #10 0x9bc826 in testing::TestCase::Run() third_party/googletest/src/googletest/src/gtest.cc:2785:28
    #11 0x9e1f26 in testing::internal::UnitTestImpl::RunAllTests() third_party/googletest/src/googletest/src/gtest.cc:5047:43
    #12 0x9e1175 in testing::UnitTest::Run() third_party/googletest/src/googletest/src/gtest.cc
    #13 0x148658a in RUN_ALL_TESTS third_party/googletest/src/googletest/include/gtest/gtest.h:2329:46
    #14 0x148658a in base::TestSuite::Run() base/test/test_suite.cc:275
    #15 0x148c97b in Run base/callback.h:96:12
    #16 0x148c97b in base::(anonymous namespace)::LaunchUnitTestsInternal(base::OnceCallback<int ()>, unsigned long, int, bool, base::OnceCallback<void ()>) base/test/launcher/unit_test_launcher.cc:225
    #17 0x148c43f in base::LaunchUnitTests(int, char**, base::OnceCallback<int ()>) base/test/launcher/unit_test_launcher.cc:576:10
    #18 0x9f4524 in main mojo/edk/test/run_all_unittests.cc:46:10
    #19 0x7f471ad29f44 in __libc_start_main /build/eglibc-ripdx6/eglibc-2.19/csu/libc-start.c:287
Direct leak of 16384 byte(s) in 1 object(s) allocated from:
    #0 0x50fa42 in operator new[](unsigned long) /b/build/slave/linux_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/asan_new_delete.cc:96:3
    #1 0x5b8f82 in ui::MockDrmDevice::CreateDumbBuffer(SkImageInfo const&, unsigned int*, unsigned int*) ui/ozone/platform/drm/gpu/mock_drm_device.cc:336:18
    #2 0x134b6c8 in ui::DrmBuffer::Initialize(SkImageInfo const&, bool) ui/ozone/platform/drm/gpu/drm_buffer.cc:52:14
    #3 0x139794f in ui::DrmWindow::UpdateCursorBuffers() ui/ozone/platform/drm/gpu/drm_window.cc:238:32
    #4 0x1397371 in ui::DrmWindow::SetController(ui::HardwareDisplayController*) ui/ozone/platform/drm/gpu/drm_window.cc:217:3
    #5 0x13d9e86 in ui::ScreenManager::UpdateControllerToWindowMapping() ui/ozone/platform/drm/gpu/screen_manager.cc:337:18
    #6 0x13da09c in ui::ScreenManager::ConfigureDisplayController(scoped_refptr<ui::DrmDevice> const&, unsigned int, unsigned int, gfx::Point const&, _drmModeModeInfo const&) ui/ozone/platform/drm/gpu/screen_manager.cc:146:5
    #7 0x5dd196 in ScreenManagerTest_ShouldDissociateWindowOnControllerRemoval_Test::TestBody() ui/ozone/platform/drm/gpu/screen_manager_unittest.cc:453:20
    #8 0x9b94f2 in testing::Test::Run() third_party/googletest/src/googletest/src/gtest.cc
    #9 0x9bb454 in testing::TestInfo::Run() third_party/googletest/src/googletest/src/gtest.cc:2667:11
    #10 0x9bc826 in testing::TestCase::Run() third_party/googletest/src/googletest/src/gtest.cc:2785:28
    #11 0x9e1f26 in testing::internal::UnitTestImpl::RunAllTests() third_party/googletest/src/googletest/src/gtest.cc:5047:43
    #12 0x9e1175 in testing::UnitTest::Run() third_party/googletest/src/googletest/src/gtest.cc
    #13 0x148658a in RUN_ALL_TESTS third_party/googletest/src/googletest/include/gtest/gtest.h:2329:46
    #14 0x148658a in base::TestSuite::Run() base/test/test_suite.cc:275
    #15 0x148c97b in Run base/callback.h:96:12
    #16 0x148c97b in base::(anonymous namespace)::LaunchUnitTestsInternal(base::OnceCallback<int ()>, unsigned long, int, bool, base::OnceCallback<void ()>) base/test/launcher/unit_test_launcher.cc:225
    #17 0x148c43f in base::LaunchUnitTests(int, char**, base::OnceCallback<int ()>) base/test/launcher/unit_test_launcher.cc:576:10
    #18 0x9f4524 in main mojo/edk/test/run_all_unittests.cc:46:10
    #19 0x7f471ad29f44 in __libc_start_main /build/eglibc-ripdx6/eglibc-2.19/csu/libc-start.c:287



+dnicoara for MockDrmDevice::CreateDumbBuffer, +tonikitoo for WaylandConnection::Global
 

Comment 1 by thakis@chromium.org, Jun 22 2018

Cc: dcasta...@chromium.org
+dcastagna for the first stack (the wayland one)

Comment 2 by thakis@chromium.org, Jun 22 2018

For 2, MockDrmDevice::CreateDumbBuffer() should probably use SkSurface::MakeRasterDirectReleaseProc() instead with a release proc that delete[]s pixels?
I will have a look at the stack (1).

BTW, your GN args are chromeos specific

 dcheck_always_on = true
 goma_dir = "/b/swarming/w/ir/cache/goma/client"
 is_asan = true
 is_component_build = false
 is_debug = false
 is_lsan = true
 strip_absolute_paths_from_debug_symbols = true
 symbol_level = 1
 target_os = "chromeos" # <--------
 use_goma = true

... but it should also reproduce on linux/ozone, I imagine.

Comment 4 by thakis@chromium.org, Jun 22 2018

I'll make a CL for the 2nd stack.
Project Member

Comment 5 by bugdroid1@chromium.org, Jun 22 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3e45a7325784434e5b3540050c54feed2c658ed9

commit 3e45a7325784434e5b3540050c54feed2c658ed9
Author: Nico Weber <thakis@chromium.org>
Date: Fri Jun 22 16:31:29 2018

Fix a memory leak in MockDrmDevice::CreateDumbBuffer().

Bug:  855588 
Change-Id: If19e6d5131fd60796ad524852b5a974e71d8dc4d
Reviewed-on: https://chromium-review.googlesource.com/1112041
Reviewed-by: Daniel Nicoara <dnicoara@chromium.org>
Commit-Queue: Nico Weber <thakis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#569652}
[modify] https://crrev.com/3e45a7325784434e5b3540050c54feed2c658ed9/ui/ozone/platform/drm/gpu/mock_drm_device.cc

Project Member

Comment 6 by bugdroid1@chromium.org, Jun 22 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/65338c09a5e9cbf8eae281d52eefc14182e58a8a

commit 65338c09a5e9cbf8eae281d52eefc14182e58a8a
Author: Nico Weber <thakis@chromium.org>
Date: Fri Jun 22 19:13:40 2018

Enable more tests on the cros memory bots.

The motivation is to remove chromium_memory_chromiumos_asan_gtests in favor
of linux_chromeos_rel_gtests, but when I tried doing that directly [1], I got
many asan/lsan and msan reports for these tests. Some of them pass however,
so I'd like to lock in the working ones while I work on fixing the broken ones.

1: https://chromium-review.googlesource.com/c/chromium/src/+/1110703

Adds to "Linux ChromiumOS MSan Tests" and "Linux Chromium OS ASan LSan Tests (1)" these tests:
- chromevox_tests
- gl_unittests_ozone (to asan/lsan only)
- ozone_gl_unittests
- ozone_x11_unittests
- select_to_speak_extension_tests
- views_mus_interactive_ui_tests

Bug: 843511
Bug:  855573 , 855580 , 855588 
Bug:  855584 , 855585 , 855583 
Change-Id: I9402cd43d1d0ef95432eba8231ae79c936b4848b
Reviewed-on: https://chromium-review.googlesource.com/1112037
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: John Budorick <jbudorick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#569725}
[modify] https://crrev.com/65338c09a5e9cbf8eae281d52eefc14182e58a8a/testing/buildbot/chromium.memory.json
[modify] https://crrev.com/65338c09a5e9cbf8eae281d52eefc14182e58a8a/testing/buildbot/test_suite_exceptions.pyl
[modify] https://crrev.com/65338c09a5e9cbf8eae281d52eefc14182e58a8a/testing/buildbot/test_suites.pyl

Project Member

Comment 8 by bugdroid1@chromium.org, Jun 24 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e6339bf94c2791e14ee86ec1fbf8a0cca7c0feac

commit e6339bf94c2791e14ee86ec1fbf8a0cca7c0feac
Author: Daniele Castagna <dcastagna@chromium.org>
Date: Sun Jun 24 14:12:41 2018

ozone/drm: Fix new-vs-free in unittest

HardwareDisplayPlaneManagerUnittest allocated CTMs with new,
while they are deleted with free.
This patch fixes that so that we can run ozone_unittests with
asan on trybots.

Bug:  855588 
Test: ozone_unittests
Change-Id: If5827d38b34cb8df2f56c770e8f9d28c587c022a
Reviewed-on: https://chromium-review.googlesource.com/1112964
Reviewed-by: Nico Weber <thakis@chromium.org>
Commit-Queue: Nico Weber <thakis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#569927}
[modify] https://crrev.com/e6339bf94c2791e14ee86ec1fbf8a0cca7c0feac/ui/ozone/platform/drm/gpu/hardware_display_plane_manager_unittest.cc

Comment 9 by thakis@chromium.org, Jun 24 2018

Cc: msi...@igalia.com
https://chromium-review.googlesource.com/c/chromium/src/+/1112961 fixes the leaks of type 1 but https://ci.chromium.org/p/chromium/builders/luci.chromium.try/linux_chromium_chromeos_asan_rel_ng/15687 shows that a few leaks in WaylandWindowTest remain even after that. The stacks look like so:

==16475==ERROR: LeakSanitizer: detected memory leaks
Direct leak of 16 byte(s) in 1 object(s) allocated from:
    #0 0x4e4833 in __interceptor_malloc /b/build/slave/linux_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/asan_malloc_linux.cc:146:3
    #1 0x2e65aae in wl_array_add third_party/wayland/src/src/wayland-util.c:126:11
    #2 0x694668 in SetWlArrayWithState ui/ozone/platform/wayland/wayland_window_unittest.cc:76:32
    #3 0x694668 in InitializeWlArrayWithActivatedState ui/ozone/platform/wayland/wayland_window_unittest.cc:82
    #4 0x694668 in ui::WaylandWindowTest_MaximizeAndRestore_Test::TestBody() ui/ozone/platform/wayland/wayland_window_unittest.cc:134
    #5 0x9ba8c2 in testing::Test::Run() third_party/googletest/src/googletest/src/gtest.cc
    #6 0x9bc824 in testing::TestInfo::Run() third_party/googletest/src/googletest/src/gtest.cc:2667:11
    #7 0x9bdbf6 in testing::TestCase::Run() third_party/googletest/src/googletest/src/gtest.cc:2785:28
    #8 0x9e32f6 in testing::internal::UnitTestImpl::RunAllTests() third_party/googletest/src/googletest/src/gtest.cc:5047:43
    #9 0x9e2545 in testing::UnitTest::Run() third_party/googletest/src/googletest/src/gtest.cc
    #10 0x16136fa in RUN_ALL_TESTS third_party/googletest/src/googletest/include/gtest/gtest.h:2329:46
    #11 0x16136fa in base::TestSuite::Run() base/test/test_suite.cc:275
    #12 0x1619ecb in Run base/callback.h:99:12
    #13 0x1619ecb in base::(anonymous namespace)::LaunchUnitTestsInternal(base::OnceCallback<int ()>, unsigned long, int, bool, base::OnceCallback<void ()>) base/test/launcher/unit_test_launcher.cc:225
    #14 0x161998f in base::LaunchUnitTests(int, char**, base::OnceCallback<int ()>) base/test/launcher/unit_test_launcher.cc:576:10
    #15 0x9f5906 in main mojo/edk/test/run_all_unittests.cc:46:10
    #16 0x7fb3ae869f44 in __libc_start_main /build/eglibc-ripdx6/eglibc-2.19/csu/libc-start.c:287
Direct leak of 16 byte(s) in 1 object(s) allocated from:
    #0 0x4e4833 in __interceptor_malloc /b/build/slave/linux_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/asan_malloc_linux.cc:146:3
    #1 0x2e65aae in wl_array_add third_party/wayland/src/src/wayland-util.c:126:11
    #2 0x693cb3 in SetWlArrayWithState ui/ozone/platform/wayland/wayland_window_unittest.cc:76:32
    #3 0x693cb3 in InitializeWlArrayWithActivatedState ui/ozone/platform/wayland/wayland_window_unittest.cc:82
    #4 0x693cb3 in ui::WaylandWindowTest_MaximizeAndRestore_Test::TestBody() ui/ozone/platform/wayland/wayland_window_unittest.cc:118
    #5 0x9ba8c2 in testing::Test::Run() third_party/googletest/src/googletest/src/gtest.cc
    #6 0x9bc824 in testing::TestInfo::Run() third_party/googletest/src/googletest/src/gtest.cc:2667:11
    #7 0x9bdbf6 in testing::TestCase::Run() third_party/googletest/src/googletest/src/gtest.cc:2785:28
    #8 0x9e32f6 in testing::internal::UnitTestImpl::RunAllTests() third_party/googletest/src/googletest/src/gtest.cc:5047:43
    #9 0x9e2545 in testing::UnitTest::Run() third_party/googletest/src/googletest/src/gtest.cc
    #10 0x16136fa in RUN_ALL_TESTS third_party/googletest/src/googletest/include/gtest/gtest.h:2329:46
    #11 0x16136fa in base::TestSuite::Run() base/test/test_suite.cc:275
    #12 0x1619ecb in Run base/callback.h:99:12
    #13 0x1619ecb in base::(anonymous namespace)::LaunchUnitTestsInternal(base::OnceCallback<int ()>, unsigned long, int, bool, base::OnceCallback<void ()>) base/test/launcher/unit_test_launcher.cc:225
    #14 0x161998f in base::LaunchUnitTests(int, char**, base::OnceCallback<int ()>) base/test/launcher/unit_test_launcher.cc:576:10
    #15 0x9f5906 in main mojo/edk/test/run_all_unittests.cc:46:10
    #16 0x7fb3ae869f44 in __libc_start_main /build/eglibc-ripdx6/eglibc-2.19/csu/libc-start.c:287
SUMMARY: AddressSanitizer: 32 byte(s) leaked in 2 allocation(s).


WaylandWindowTest::SetWlArrayWithState() calls wl_array_add(), but from what I can tell nothing in that file ever calls wl_array_release(). +msisov who added that code in https://chromium-review.googlesource.com/c/chromium/src/+/768681
Project Member

Comment 10 by bugdroid1@chromium.org, Jun 24 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5e67f216b6f1d08708eec26adc361bf3a0fd8313

commit 5e67f216b6f1d08708eec26adc361bf3a0fd8313
Author: Daniele Castagna <dcastagna@chromium.org>
Date: Sun Jun 24 20:56:06 2018

ozone/wayland: Fix wayland_data_device_manager leak

Bug:  855588 
Test: ozone_unittests
Change-Id: I29ca5cc777d1e835bb2279959d9a390e2475025d
Reviewed-on: https://chromium-review.googlesource.com/1112961
Commit-Queue: Nico Weber <thakis@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Reviewed-by: Antonio Gomes <tonikitoo@igalia.com>
Cr-Commit-Position: refs/heads/master@{#569936}
[modify] https://crrev.com/5e67f216b6f1d08708eec26adc361bf3a0fd8313/ui/ozone/platform/wayland/wayland_data_device_manager.cc
[modify] https://crrev.com/5e67f216b6f1d08708eec26adc361bf3a0fd8313/ui/ozone/platform/wayland/wayland_data_device_manager.h

Project Member

Comment 11 by bugdroid1@chromium.org, Jun 25 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5ecf35f1ab2a0a4e2fda04595383231c251f8a9e

commit 5ecf35f1ab2a0a4e2fda04595383231c251f8a9e
Author: Nico Weber <thakis@chromium.org>
Date: Mon Jun 25 01:50:22 2018

Enable more tests on the cros memory bots.

Enable views_mus_unittests on both lsan/asan and on msan, it should pass now.

Enable ozone_unittests and wayland_client_perftests on just msan
(they don't pass on lsan/asan yet).

With this, linux_chromeos_rel_specific_gtests_asan_bringup is identical to
linux_chromeos_rel_specific_gtests and can be removed, and because of _that_,
chromium_memory_chromiumos_asan_gtests is identical to linux_chromeos_rel_gtests
and can also be removed.

As a consequence, tests added to the cros rel bots will be added to the
memory bots automatically going forward.

TBR=kbr

Bug: 843511
Bug:  855580 , 855588 , 855584 , 855585 , 855583 
Change-Id: I6a28ebae4c9005ce508f8caef07679a1bb50285c
Reviewed-on: https://chromium-review.googlesource.com/1112957
Reviewed-by: Nico Weber <thakis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#569949}
[modify] https://crrev.com/5ecf35f1ab2a0a4e2fda04595383231c251f8a9e/testing/buildbot/chromium.memory.json
[modify] https://crrev.com/5ecf35f1ab2a0a4e2fda04595383231c251f8a9e/testing/buildbot/test_suite_exceptions.pyl
[modify] https://crrev.com/5ecf35f1ab2a0a4e2fda04595383231c251f8a9e/testing/buildbot/test_suites.pyl
[modify] https://crrev.com/5ecf35f1ab2a0a4e2fda04595383231c251f8a9e/testing/buildbot/waterfalls.pyl

This fixes the last leak and enables ozone_unittests on the lsan/asan bot: https://chromium-review.googlesource.com/c/chromium/src/+/1113658
Project Member

Comment 13 by bugdroid1@chromium.org, Jun 25 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5509d727518cac161687124712cceb83467e6f87

commit 5509d727518cac161687124712cceb83467e6f87
Author: Nico Weber <thakis@chromium.org>
Date: Mon Jun 25 20:29:29 2018

Fix last leak in ozone_unittests and run it on the cros lsan/asan bot.

Introduce a move-only ScopedWlArray to make sure all wl_arrays in the tests
get wl_array_release()d when they are no longer needed.

Also rename SetWlArrayWithState() to AddStateToWlArray() since it appends
to its argument and doesn't replace the contents (this part has no behavior
change).

TBR=kbr

Bug:  855588 
Change-Id: I384ca182b44c9cb864d2d3e94c8ed4f0a0a16f77
Reviewed-on: https://chromium-review.googlesource.com/1113658
Commit-Queue: Nico Weber <thakis@chromium.org>
Reviewed-by: Robert Kroeger <rjkroege@chromium.org>
Cr-Commit-Position: refs/heads/master@{#570160}
[modify] https://crrev.com/5509d727518cac161687124712cceb83467e6f87/testing/buildbot/chromium.memory.json
[modify] https://crrev.com/5509d727518cac161687124712cceb83467e6f87/testing/buildbot/test_suite_exceptions.pyl
[modify] https://crrev.com/5509d727518cac161687124712cceb83467e6f87/ui/ozone/platform/wayland/wayland_window_unittest.cc

Status: Fixed (was: Untriaged)
Thanks to dcastagna for fixing 2 of the 4 issues!

Sign in to add a comment