From cc483b7379836bcac3a2377fd0181a637b3b03b4 Mon Sep 17 00:00:00 2001 From: "kjellander@webrtc.org" Date: Wed, 18 Feb 2015 10:37:51 +0000 Subject: [PATCH] Roll chromium_revision 601e6f3..b0c3ed3 (315263:316737) Moved LSan suppressions from tools/lsan/suppressions.txt to compiled-in suppressions similar to the Chromium changes in https://codereview.chromium.org/924923002 I will remove tools/lsan after committing this and the bots are updated to not specify it. Other relevant changes: * src/buildtools: da0df3f..5c5e924 * src/third_party/android_tools: f6e2370..fd5a8ec * src/third_party/boringssl/src: 8f5e2eb..d306f16 * src/third_party/openmax_dl: 81318c1..21c8abe Details: https://chromium.googlesource.com/chromium/src/+/601e6f3..b0c3ed3/DEPS Clang version was not updated in this roll. R=glider@chromium.org, henrika@webrtc.org, pbos@webrtc.org Review URL: https://webrtc-codereview.appspot.com/37299004 Cr-Commit-Position: refs/heads/master@{#8406} git-svn-id: http://webrtc.googlecode.com/svn/trunk@8406 4adac7df-926f-26a2-2b94-8c16560cd09d --- DEPS | 2 +- webrtc/build/OWNERS | 1 - webrtc/build/sanitizers/OWNERS | 2 + webrtc/build/sanitizers/README | 3 + .../sanitizers/lsan_suppressions_webrtc.cc | 131 ++++++++++++++++++ .../tsan_suppressions_webrtc.cc | 0 webrtc/supplement.gypi | 11 +- 7 files changed, 147 insertions(+), 3 deletions(-) create mode 100644 webrtc/build/sanitizers/OWNERS create mode 100644 webrtc/build/sanitizers/README create mode 100644 webrtc/build/sanitizers/lsan_suppressions_webrtc.cc rename webrtc/build/{ => sanitizers}/tsan_suppressions_webrtc.cc (100%) diff --git a/DEPS b/DEPS index 5bbcd0d08..daaff8f1b 100644 --- a/DEPS +++ b/DEPS @@ -6,7 +6,7 @@ vars = { 'extra_gyp_flag': '-Dextra_gyp_flag=0', 'chromium_git': 'https://chromium.googlesource.com', - 'chromium_revision': '601e6f32704fed600914fd5198c24395c4dc36f5', + 'chromium_revision': 'b0c3ed39916e25bed2900b653974672a39fcb254', } # NOTE: Prefer revision numbers to tags for svn deps. Use http rather than diff --git a/webrtc/build/OWNERS b/webrtc/build/OWNERS index acd594fe7..fa83269b1 100644 --- a/webrtc/build/OWNERS +++ b/webrtc/build/OWNERS @@ -1,5 +1,4 @@ kjellander@webrtc.org -per-file tsan_suppressions_webrtc.cc=pbos@webrtc.org # These are for the common case of adding or renaming files. If you're doing # structural changes, please get a review from a reviewer in this file. diff --git a/webrtc/build/sanitizers/OWNERS b/webrtc/build/sanitizers/OWNERS new file mode 100644 index 000000000..715ba98f6 --- /dev/null +++ b/webrtc/build/sanitizers/OWNERS @@ -0,0 +1,2 @@ +kjellander@webrtc.org +pbos@webrtc.org diff --git a/webrtc/build/sanitizers/README b/webrtc/build/sanitizers/README new file mode 100644 index 000000000..68c3015f4 --- /dev/null +++ b/webrtc/build/sanitizers/README @@ -0,0 +1,3 @@ +This directory contains suppressions for sanitizer tools. +They're overriding the default ones for Chromium using our +webrtc/supplement.gypi file. diff --git a/webrtc/build/sanitizers/lsan_suppressions_webrtc.cc b/webrtc/build/sanitizers/lsan_suppressions_webrtc.cc new file mode 100644 index 000000000..0ae9fb38e --- /dev/null +++ b/webrtc/build/sanitizers/lsan_suppressions_webrtc.cc @@ -0,0 +1,131 @@ +/* + * Copyright (c) 2015 The WebRTC project authors. All Rights Reserved. + * + * Use of this source code is governed by a BSD-style license + * that can be found in the LICENSE file in the root of the source + * tree. An additional intellectual property rights grant can be found + * in the file PATENTS. All contributing project authors may + * be found in the AUTHORS file in the root of the source tree. + */ + +// This file contains the WebRTC suppressions for LeakSanitizer. +// You can also pass additional suppressions via LSAN_OPTIONS: +// LSAN_OPTIONS=suppressions=/path/to/suppressions. Please refer to +// http://dev.chromium.org/developers/testing/leaksanitizer for more info. + +#if defined(LEAK_SANITIZER) + +// Please make sure the code below declares a single string variable +// kLSanDefaultSuppressions which contains LSan suppressions delimited by +// newlines. See http://dev.chromium.org/developers/testing/leaksanitizer +// for the instructions on writing suppressions. +char kLSanDefaultSuppressions[] = + +// ============ Leaks in third-party code shared with Chromium ============= +// These entries are copied from build/sanitizers/lsan_suppressions.cc in +// Chromium. Please don't add new entries here unless they're present in there. + +// False positives in libfontconfig. http://crbug.com/39050 +"leak:libfontconfig\n" + +// Leaks in Nvidia's libGL. +"leak:libGL.so\n" + +// TODO(earthdok): revisit NSS suppressions after the switch to BoringSSL +// NSS leaks in CertDatabaseNSSTest tests. http://crbug.com/51988 +"leak:net::NSSCertDatabase::ImportFromPKCS12\n" +"leak:net::NSSCertDatabase::ListCerts\n" +"leak:net::NSSCertDatabase::DeleteCertAndKey\n" +"leak:crypto::ScopedTestNSSDB::ScopedTestNSSDB\n" +// Another leak due to not shutting down NSS properly. http://crbug.com/124445 +"leak:error_get_my_stack\n" +// The NSS suppressions above will not fire when the fast stack unwinder is +// used, because it can't unwind through NSS libraries. Apply blanket +// suppressions for now. +"leak:libnssutil3\n" +"leak:libnspr4\n" +"leak:libnss3\n" +"leak:libplds4\n" +"leak:libnssckbi\n" + +// XRandR has several one time leaks. +"leak:libxrandr\n" + +// xrandr leak. http://crbug.com/119677 +"leak:XRRFindDisplay\n" + +// ========== Leaks in third-party code not shared with Chromium =========== + +// None known so far. + +// ================ Leaks in WebRTC code ================ +// PLEASE DO NOT ADD SUPPRESSIONS FOR NEW LEAKS. +// Instead, commits that introduce memory leaks should be reverted. Suppressing +// the leak is acceptable in some cases when reverting is impossible, i.e. when +// enabling leak detection for the first time for a test target with +// pre-existing leaks. + +// rtc_unittest +// https://code.google.com/p/webrtc/issues/detail?id=3827 for details. +"leak:rtc::unstarted_task_test_DoNotDeleteTask2_Test::TestBody\n" +"leak:rtc::HttpServer::HandleConnection\n" +"leak:rtc::HttpServer::Connection::onHttpHeaderComplete\n" +"leak:rtc::HttpResponseData::set_success\n" +"leak:rtc::HttpData::changeHeader\n" +// https://code.google.com/p/webrtc/issues/detail?id=4149 for details. +"leak:StartDNSLookup\n" + +// libjingle_media_unittest +"leak:cricket::FakeNetworkInterface::SetOption\n" +"leak:CodecTest_TestCodecOperators_Test::TestBody\n" +"leak:VideoEngineTest*::ConstrainNewCodecBody\n" +"leak:VideoMediaChannelTest*::AddRemoveRecvStreams\n" +"leak:WebRtcVideoCapturerTest_TestCapture_Test::TestBody\n" +"leak:WebRtcVideoEngineTestFake_MultipleSendStreamsWithOneCapturer_Test::TestBody\n" +"leak:WebRtcVideoEngineTestFake_SetBandwidthInConference_Test::TestBody\n" +"leak:WebRtcVideoEngineTestFake_SetSendCodecsRejectBadFormat_Test::TestBody\n" + +// libjingle_peerconnection_unittest +// https://code.google.com/p/webrtc/issues/detail?id=2528 +"leak:cricket::FakeVideoMediaChannel::~FakeVideoMediaChannel\n" +"leak:cricket::MediaSessionDescriptionFactory::CreateAnswer\n" +"leak:cricket::MediaSessionDescriptionFactory::CreateOffer\n" +"leak:DtmfSenderTest_InsertEmptyTonesToCancelPreviousTask_Test::TestBody\n" +"leak:sigslot::_signal_base2*::~_signal_base2\n" +"leak:testing::internal::CmpHelperEQ\n" +"leak:webrtc::AudioDeviceLinuxALSA::InitMicrophone\n" +"leak:webrtc::AudioDeviceLinuxALSA::InitSpeaker\n" +"leak:webrtc::CreateIceCandidate\n" +"leak:webrtc::FakeConstraints::AddOptional\n" +"leak:webrtc::WebRtcIdentityRequestObserver::OnSuccess\n" +"leak:webrtc::WebRtcSessionDescriptionFactory::InternalCreateAnswer\n" +"leak:webrtc::WebRtcSessionDescriptionFactory::InternalCreateOffer\n" +"leak:PeerConnectionInterfaceTest_SsrcInOfferAnswer_Test::TestBody\n" +"leak:PeerConnectionInterfaceTest_CloseAndTestMethods_Test::TestBody\n" +"leak:WebRtcSdpTest::TestDeserializeRtcpFb\n" +"leak:WebRtcSdpTest::TestSerialize\n" +"leak:WebRtcSdpTest_SerializeSessionDescriptionWithDataChannelAndBandwidth_Test::TestBody\n" +"leak:WebRtcSdpTest_SerializeSessionDescriptionWithBandwidth_Test::TestBody\n" +"leak:WebRtcSessionTest::SetLocalDescriptionExpectError\n" +"leak:WebRtcSessionTest_TestAVOfferWithAudioOnlyAnswer_Test::TestBody\n" + +// libjingle_unittest +// https://code.google.com/p/webrtc/issues/detail?id=2527 +"leak:buzz::FakeXmppClient::SendStanza\n" +"leak:buzz::XmppTask::XmppTask\n" +"leak:HangoutPubSubClientTest::HangoutPubSubClientTest\n" +"leak:MucRoomConfigTaskTest::SetUp\n" +"leak:MucRoomDiscoveryTaskTest::SetUp\n" +"leak:MucRoomLookupTaskTest::SetUp\n" +"leak:MucRoomUniqueHangoutIdTaskTest::SetUp\n" +"leak:PingTaskTest::SetUp\n" +"leak:PingXmppClient::SendStanza\n" +"leak:PubSubClientTest::PubSubClientTest\n" +"leak:PubSubTasksTest::PubSubTasksTest\n" + +// PLEASE READ ABOVE BEFORE ADDING NEW SUPPRESSIONS. + +// End of suppressions. +; // Please keep this semicolon. + +#endif // LEAK_SANITIZER diff --git a/webrtc/build/tsan_suppressions_webrtc.cc b/webrtc/build/sanitizers/tsan_suppressions_webrtc.cc similarity index 100% rename from webrtc/build/tsan_suppressions_webrtc.cc rename to webrtc/build/sanitizers/tsan_suppressions_webrtc.cc diff --git a/webrtc/supplement.gypi b/webrtc/supplement.gypi index 4bf859873..cf9e6d4b0 100644 --- a/webrtc/supplement.gypi +++ b/webrtc/supplement.gypi @@ -10,13 +10,22 @@ 'target_conditions': [ ['_target_name=="sanitizer_options"', { 'conditions': [ + ['lsan==1', { + # Replace Chromium's LSan suppressions with our own for WebRTC. + 'sources/': [ + ['exclude', 'lsan_suppressions.cc'], + ], + 'sources': [ + '<(webrtc_root)/build/sanitizers/lsan_suppressions_webrtc.cc', + ], + }], ['tsan==1', { # Replace Chromium's TSan v2 suppressions with our own for WebRTC. 'sources/': [ ['exclude', 'tsan_suppressions.cc'], ], 'sources': [ - '<(webrtc_root)/build/tsan_suppressions_webrtc.cc', + '<(webrtc_root)/build/sanitizers/tsan_suppressions_webrtc.cc', ], }], ],