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

Issue 855583 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

lsan finds leaks in WaylandClientBlurPerfTests

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

Issue description

I'm adding wayland_client_perftests to the memory bots. The asan/lsan bot complains about leaks in WaylandClientBlurPerfTests :

https://ci.chromium.org/p/chromium/builders/luci.chromium.try/linux_chromium_chromeos_asan_rel_ng/15672

WaylandClientBlurPerfTests.BlurSigmaY/1
WaylandClientBlurPerfTests.BlurSigmaY/0
WaylandClientPerfTests.Simple
WaylandClientBlurPerfTests.BlurSigma/1
WaylandClientBlurPerfTests.BlurSigma/0

All the stacks look similar:

Direct leak of 72 byte(s) in 1 object(s) allocated from:
    #0 0x4d73ba 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 0x4334e3b in zalloc third_party/wayland/src/src/wayland-private.h:234:9
    #2 0x4334e3b in proxy_create third_party/wayland/src/src/wayland-client.c:334
    #3 0x4334e3b in create_outgoing_proxy third_party/wayland/src/src/wayland-client.c:559
    #4 0x4334e3b in wl_proxy_marshal_array_constructor_versioned third_party/wayland/src/src/wayland-client.c:644
    #5 0x43356e1 in wl_proxy_marshal_array_constructor third_party/wayland/src/src/wayland-client.c:599:9
    #6 0x43356e1 in wl_proxy_marshal_constructor third_party/wayland/src/src/wayland-client.c:733
    #7 0x522018 in wl_display_get_registry third_party/wayland/include/protocol/wayland-client-protocol.h:966:13
    #8 0x522018 in exo::wayland::clients::ClientBase::Init(exo::wayland::clients::ClientBase::InitParams const&) components/exo/wayland/clients/client_base.cc:382
    #9 0x50d50c in (anonymous namespace)::WaylandClientBlurPerfTests_BlurSigmaY_Test::TestBody() components/exo/wayland/clients/perftests.cc:123:3
    #10 0x2b20a22 in testing::Test::Run() third_party/googletest/src/googletest/src/gtest.cc
    #11 0x2b22984 in testing::TestInfo::Run() third_party/googletest/src/googletest/src/gtest.cc:2667:11
    #12 0x2b23d56 in testing::TestCase::Run() third_party/googletest/src/googletest/src/gtest.cc:2785:28
    #13 0x2b49456 in testing::internal::UnitTestImpl::RunAllTests() third_party/googletest/src/googletest/src/gtest.cc:5047:43
    #14 0x2b486a5 in testing::UnitTest::Run() third_party/googletest/src/googletest/src/gtest.cc
    #15 0x517011 in RUN_ALL_TESTS third_party/googletest/src/googletest/include/gtest/gtest.h:2329:46
    #16 0x517011 in exo::(anonymous namespace)::ExoClientPerfTestSuite::RunTestsOnClientThread(base::RepeatingCallback<void ()> const&) components/exo/wayland/clients/test/run_all_client_perftests.cc:91
    #17 0x351bdd0 in Run base/callback.h:96:12
    #18 0x351bdd0 in base::debug::TaskAnnotator::RunTask(char const*, base::PendingTask*) base/debug/task_annotator.cc:101
    #19 0x3530f60 in base::internal::IncomingTaskQueue::RunTask(base::PendingTask*) base/message_loop/incoming_task_queue.cc:129:19
    #20 0x339e2cc in base::MessageLoop::RunTask(base::PendingTask*) base/message_loop/message_loop.cc:319:25
    #21 0x339f465 in base::MessageLoop::DeferOrRunPendingTask(base::PendingTask) base/message_loop/message_loop.cc:329:5
    #22 0x339fd76 in base::MessageLoop::DoWork() base/message_loop/message_loop.cc:373:16
    #23 0x33a8835 in base::MessagePumpDefault::Run(base::MessagePump::Delegate*) base/message_loop/message_pump_default.cc:37:31
    #24 0x339cd94 in base::MessageLoop::Run(bool) base/message_loop/message_loop.cc:271:12
    #25 0x33f1d8d in base::RunLoop::Run() base/run_loop.cc:102:14
    #26 0x345c057 in base::Thread::Run(base::RunLoop*) base/threading/thread.cc:255:13
    #27 0x345c9ff in base::Thread::ThreadMain() base/threading/thread.cc:337:3
    #28 0x3500872 in base::(anonymous namespace)::ThreadFunc(void*) base/threading/platform_thread_posix.cc:76:13
    #29 0x7f5381853183 in start_thread /build/eglibc-ripdx6/eglibc-2.19/nptl/pthread_create.c:312
 

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

Cc: dcasta...@chromium.org
Hey, that wl_display_get_registry call is pretty new, added in https://chromium.googlesource.com/chromium/src/+/245d300c64b99ed80af0fc2556bdd41f654d9371 . Doesn't it have to be matched by a wl_registry_destroy call when the ClientBase goes away?
Status: Assigned (was: Untriaged)
Project Member

Comment 3 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 4 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

Comment 5 by thakis@chromium.org, Jun 25 2018

You can use try jobs on https://chromium-review.googlesource.com/c/chromium/src/+/1112971 to check if a fix worked. (Right now the stack in comment 0 still happens on trunk).

Comment 6 by thakis@chromium.org, Jun 27 2018

This is now the only test binary in linux_chromeos_rel_specific_gtests that's still suppressed on memory bots. dcastagna: does comment 1 make sense?

Comment 8 by thakis@chromium.org, Jun 28 2018

Owner: dcasta...@chromium.org
Status: Fixed (was: Assigned)
Thanks for the fix!
Project Member

Comment 9 by bugdroid1@chromium.org, Jun 28 2018

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

commit 081d3c19543b25154970b51e6512fe242b4f9b57
Author: Nico Weber <thakis@chromium.org>
Date: Thu Jun 28 23:36:58 2018

Run wayland_client_perftests on the cros asan bot.

The leak is now fixed.

Bug:  855583 ,843511
Change-Id: Id8367b404108467783ac5e2c8c186b7ba210df4f
Reviewed-on: https://chromium-review.googlesource.com/1117611
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#571325}
[modify] https://crrev.com/081d3c19543b25154970b51e6512fe242b4f9b57/testing/buildbot/chromium.memory.json
[modify] https://crrev.com/081d3c19543b25154970b51e6512fe242b4f9b57/testing/buildbot/test_suite_exceptions.pyl

Sign in to add a comment