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

Issue 805591 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Jan 2018
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 1
Type: ----



Sign in to add a comment

ExternalProviderImplChromeOSTest.PriorityCompleted in unit_tests failing on chromium.memory/Linux Chromium OS ASan LSan Tests (1)

Project Member Reported by sheriff-...@appspot.gserviceaccount.com, Jan 24 2018

Issue description

Filed by sheriff-o-matic@appspot.gserviceaccount.com on behalf of joedow@google.com

ExternalProviderImplChromeOSTest.PriorityCompleted in unit_tests failing on chromium.memory/Linux Chromium OS ASan LSan Tests (1)

Builders failed on: 
- Linux Chromium OS ASan LSan Tests (1): 
  https://build.chromium.org/p/chromium.memory/builders/Linux%20Chromium%20OS%20ASan%20LSan%20Tests%20%281%29


 

Comment 1 by joedow@chromium.org, Jan 24 2018

https://logs.chromium.org/v/?s=chromium%2Fbb%2Fchromium.memory%2FLinux_Chromium_OS_ASan_LSan_Tests__1_%2F25847%2F%2B%2Frecipes%2Fsteps%2Funit_tests%2F0%2Flogs%2FExternalProviderImplChromeOSTest.PriorityCompleted%2F0

There are a very large number of leaks, here are some examples:
Indirect leak of 992 byte(s) in 1 object(s) allocated from:
    #0 0xb2c9d2 in operator new(unsigned long) /b/build/slave/linux_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/asan_new_delete.cc:92:3
    #1 0x14ee556e in mojo::internal::InterfacePtrStateBase::InitializeEndpointClient(bool, bool, std::__1::unique_ptr<mojo::MessageReceiver, std::__1::default_delete<mojo::MessageReceiver> >) mojo/public/cpp/bindings/lib/interface_ptr_state.cc:83:13
    #2 0xb492f75 in mojo::internal::InterfacePtrState<data_decoder::mojom::ImageDecoder>::ConfigureProxyIfNecessary() mojo/public/cpp/bindings/lib/interface_ptr_state.h:205:9
    #3 0xb8e7192 in instance mojo/public/cpp/bindings/lib/interface_ptr_state.h:113:5
    #4 0xb8e7192 in get mojo/public/cpp/bindings/interface_ptr.h:97
    #5 0xb8e7192 in operator-> mojo/public/cpp/bindings/interface_ptr.h:100
    #6 0xb8e7192 in extensions::ImageSanitizer::ImageFileRead(base::FilePath const&, std::__1::tuple<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> >, bool, bool>) extensions/browser/image_sanitizer.cc:141
    #7 0xb8e9c0b in Invoke<base::WeakPtr<extensions::ImageSanitizer>, base::FilePath, std::__1::tuple<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> >, bool, bool> > base/bind_internal.h:211:12
    #8 0xb8e9c0b in void base::internal::InvokeHelper<true, void>::MakeItSo<void (extensions::ImageSanitizer::*)(base::FilePath const&, std::__1::tuple<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> >, bool, bool>), base::WeakPtr<extensions::ImageSanitizer>, base::FilePath, std::__1::tuple<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> >, bool, bool> >(void (extensions::ImageSanitizer::*&&)(base::FilePath const&, std::__1::tuple<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> >, bool, bool>), base::WeakPtr<extensions::ImageSanitizer>&&, base::FilePath&&, std::__1::tuple<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> >, bool, bool>&&) base/bind_internal.h:314
    #9 0xb8ea890 in Run base/callback.h:65:12
    #10 0xb8ea890 in void base::internal::ReplyAdapter<std::__1::tuple<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> >, bool, bool>, std::__1::tuple<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> >, bool, bool> >(base::OnceCallback<void (std::__1::tuple<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> >, bool, bool>)>, std::__1::tuple<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> >, bool, bool>*) base/post_task_and_reply_with_result_internal.h:27
    #11 0xb8eac58 in Invoke<base::OnceCallback<void (std::__1::tuple<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> >, bool, bool>)>, std::__1::tuple<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> >, bool, bool> *> base/bind_internal.h:166:12
    #12 0xb8eac58 in MakeItSo<void (*)(base::OnceCallback<void (std::__1::tuple<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> >, bool, bool>)>, std::__1::tuple<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> >, bool, bool> *), base::OnceCallback<void (std::__1::tuple<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> >, bool, bool>)>, std::__1::tuple<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> >, bool, bool> *> base/bind_internal.h:294
    #13 0xb8eac58 in RunImpl<void (*)(base::OnceCallback<void (std::__1::tuple<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> >, bool, bool>)>, std::__1::tuple<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> >, bool, bool> *), std::__1::tuple<base::OnceCallback<void (std::__1::tuple<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> >, bool, bool>)>, base::internal::OwnedWrapper<std::__1::tuple<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> >, bool, bool> > >, 0, 1> base/bind_internal.h:368
    #14 0xb8eac58 in base::internal::Invoker<base::internal::BindState<void (*)(base::OnceCallback<void (std::__1::tuple<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> >, bool, bool>)>, std::__1::tuple<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> >, bool, bool>*), base::OnceCallback<void (std::__1::tuple<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> >, bool, bool>)>, base::internal::OwnedWrapper<std::__1::tuple<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> >, bool, bool> > >, void ()>::RunOnce(base::internal::BindStateBase*) base/bind_internal.h:336
    #15 0x12ff6e3f in Run base/callback.h:65:12
    #16 0x12ff6e3f in base::(anonymous namespace)::PostTaskAndReplyRelay::RunReplyAndSelfDestruct() base/threading/post_task_and_reply_impl.cc:60
    #17 0x12e51602 in Run base/callback.h:65:12
    #18 0x12e51602 in base::debug::TaskAnnotator::RunTask(char const*, base::PendingTask*) base/debug/task_annotator.cc:55
    #19 0x12fdc807 in base::internal::TaskTracker::RunOrSkipTask(base::internal::Task, base::internal::Sequence*, bool) base/task_scheduler/task_tracker.cc:420:30
    #20 0x12fdf236 in base::internal::TaskTrackerPosix::RunOrSkipTask(base::internal::Task, base::internal::Sequence*, bool) base/task_scheduler/task_tracker_posix.cc:23:16
    #21 0x10508d83 in base::test::ScopedTaskEnvironment::TestTaskTracker::RunOrSkipTask(base::internal::Task, base::internal::Sequence*, bool) base/test/scoped_task_environment.cc:275:49
    #22 0x12fd9ac8 in base::internal::TaskTracker::RunNextTask(scoped_refptr<base::internal::Sequence>, base::internal::CanScheduleSequenceObserver*) base/task_scheduler/task_tracker.cc:322:3
    #23 0x130ff2ea in base::internal::SchedulerWorker::Thread::ThreadMain() base/task_scheduler/scheduler_worker.cc:72:41
    #24 0x12ff5d02 in base::(anonymous namespace)::ThreadFunc(void*) base/threading/platform_thread_posix.cc:75:13
    #25 0x7f644f694183 in start_thread /build/eglibc-ripdx6/eglibc-2.19/nptl/pthread_create.c:312
Indirect leak of 608 byte(s) in 1 object(s) allocated from:
    #0 0xb2c9d2 in operator new(unsigned long) /b/build/slave/linux_upload_clang/build/src/third_party/llvm/compiler-rt/lib/asan/asan_new_delete.cc:92:3
    #1 0x19638637 in extensions::CrxInstaller::CreateSilent(ExtensionService*) chrome/browser/extensions/crx_installer.cc:93:10
    #2 0x196e48d2 in ExtensionService::OnExternalExtensionFileFound(extensions::ExternalInstallInfoFile const&) chrome/browser/extensions/extension_service.cc:1873:41
    #3 0x1973905f in extensions::ExternalProviderImpl::SetPrefs(std::__1::unique_ptr<base::DictionaryValue, std::__1::default_delete<base::DictionaryValue> >) chrome/browser/extensions/external_provider_impl.cc:156:15
    #4 0x1972f73b in extensions::ExternalLoader::LoadFinished(std::__1::unique_ptr<base::DictionaryValue, std::__1::default_delete<base::DictionaryValue> >) chrome/browser/extensions/external_loader.cc:44:13
    #5 0x19737e4c in void base::internal::FunctorTraits<void (extensions::ExternalLoader::*)(std::__1::unique_ptr<base::DictionaryValue, std::__1::default_delete<base::DictionaryValue> >), void>::Invoke<scoped_refptr<extensions::ExternalPrefLoader>, std::__1::unique_ptr<base::DictionaryValue, std::__1::default_delete<base::DictionaryValue> > >(void (extensions::ExternalLoader::*)(std::__1::unique_ptr<base::DictionaryValue, std::__1::default_delete<base::DictionaryValue> >), scoped_refptr<extensions::ExternalPrefLoader>&&, std::__1::unique_ptr<base::DictionaryValue, std::__1::default_delete<base::DictionaryValue> >&&) base/bind_internal.h:211:12
    #6 0x12e51602 in Run base/callback.h:65:12
    #7 0x12e51602 in base::debug::TaskAnnotator::RunTask(char const*, base::PendingTask*) base/debug/task_annotator.cc:55
    #8 0x130e4ff0 in base::internal::IncomingTaskQueue::RunTask(base::PendingTask*) base/message_loop/incoming_task_queue.cc:124:19
    #9 0x12ec745c in base::MessageLoop::RunTask(base::PendingTask*) base/message_loop/message_loop.cc:399:25
    #10 0x12ec8028 in base::MessageLoop::DeferOrRunPendingTask(base::PendingTask) base/message_loop/message_loop.cc:411:5
    #11 0x12ec8980 in base::MessageLoop::DoWork() base/message_loop/message_loop.cc:455:16
    #12 0x12ed08b0 in base::MessagePumpLibevent::Run(base::MessagePump::Delegate*) base/message_loop/message_pump_libevent.cc:220:31
    #13 0x12ec5e27 in base::MessageLoop::Run(bool) base/message_loop/message_loop.cc:350:12
    #14 0x12f676ad in base::RunLoop::Run() base/run_loop.cc:130:14
    #15 0x1086c79d in RunThisRunLoop content/public/test/test_utils.cc:125:13
    #16 0x1086c79d in content::MessageLoopRunner::Run() content/public/test/test_utils.cc:240
    #17 0x1086d9be in content::WindowedNotificationObserver::Wait() content/public/test/test_utils.cc:309:25
    #18 0x442a625 in extensions::ExternalProviderImplChromeOSTest_PriorityCompleted_Test::TestBody() chrome/browser/extensions/external_provider_impl_chromeos_unittest.cc:245:51
    #19 0x746703c in testing::Test::Run() third_party/googletest/src/googletest/src/gtest-internal-inl.h
    #20 0x7468ed4 in testing::TestInfo::Run() third_party/googletest/src/googletest/src/gtest.cc:2651:11
    #21 0x746a236 in testing::TestCase::Run() third_party/googletest/src/googletest/src/gtest.cc:2769:28
    #22 0x747ff06 in testing::internal::UnitTestImpl::RunAllTests() third_party/googletest/src/googletest/src/gtest.cc:4665:43
    #23 0x747f448 in testing::UnitTest::Run() third_party/googletest/src/googletest/src/gtest.cc
    #24 0x1051574b in RUN_ALL_TESTS third_party/googletest/src/googletest/include/gtest/gtest.h:2233:46
    #25 0x1051574b in base::TestSuite::Run() base/test/test_suite.cc:272
    #26 0x1051b9fe in Run base/callback.h:94:12
    #27 0x1051b9fe in base::(anonymous namespace)::LaunchUnitTestsInternal(base::RepeatingCallback<int ()> const&, unsigned long, int, bool, base::RepeatingCallback<void ()> const&) base/test/launcher/unit_test_launcher.cc:220
    #28 0x1051b500 in base::LaunchUnitTests(int, char**, base::RepeatingCallback<int ()> const&) base/test/launcher/unit_test_launcher.cc:558:10
    #29 0x104f787f in main chrome/test/base/run_all_unittests.cc:30:10
    #30 0x7f644ae45f44 in __libc_start_main /build/eglibc-ripdx6/eglibc-2.19/csu/libc-start.c:287

Comment 2 by joedow@chromium.org, Jan 24 2018

Components: Platform>Extensions
Labels: -Pri-2 Sheriff-Chromium Pri-1
Owner: jcivelli@chromium.org
Status: Assigned (was: Available)
The failures seem to be related to ImageSanitizer so I suspect this CL is related.  I'm not confident enough to back the change out though so I'm assigning for follow-up / confirmation.

We've seen this flake a few times so we can disable the test if it occurs too frequently (and we don't have a fix identified).
I started looking into it.
It's flaky because that test waits for one extension to be installed when 2 are.
If it exits before the 2nd extension has finished installing the ImageSanitizer is still around.
I'll see if I can change the test to ensure if waits for both extension install.
Project Member

Comment 5 by bugdroid1@chromium.org, Jan 24 2018

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

commit e8323f73440723532ffd64876634a51f44c95442
Author: Jay Civelli <jcivelli@google.com>
Date: Wed Jan 24 23:01:25 2018

Fix memory leak in ExternalProviderImplChromeOSTest.

My recent CL
https://chromium-review.googlesource.com/c/chromium/src/+/870744
caused a leak in ExternalProviderImplChromeOSTest as the test shuts down
with some extension installation pending.
Make sure we wait for all extensions to be installed before we exit the
test.

Bug:  805591 
Change-Id: I89c1187d9e32ce0ab859689286c6283b0316d602
Reviewed-on: https://chromium-review.googlesource.com/884270
Reviewed-by: Yury Khmel <khmel@chromium.org>
Reviewed-by: Ken Rockot <rockot@chromium.org>
Commit-Queue: Jay Civelli <jcivelli@chromium.org>
Cr-Commit-Position: refs/heads/master@{#531731}
[modify] https://crrev.com/e8323f73440723532ffd64876634a51f44c95442/chrome/browser/extensions/external_provider_impl_chromeos_unittest.cc

Status: Fixed (was: Assigned)

Sign in to add a comment