diff options
author | xhwang <xhwang@chromium.org> | 2014-08-27 22:49:17 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2014-08-28 05:50:25 +0000 |
commit | 7def98aadf7cac26952eae1fb3294f56510d67d7 (patch) | |
tree | f801f90bf343976a70a653c8bd696e6b6b60db79 /tools/valgrind | |
parent | 6b4a887992b2c27041007630b233f402ddaed9a2 (diff) | |
download | chromium_src-7def98aadf7cac26952eae1fb3294f56510d67d7.zip chromium_src-7def98aadf7cac26952eae1fb3294f56510d67d7.tar.gz chromium_src-7def98aadf7cac26952eae1fb3294f56510d67d7.tar.bz2 |
Avoid deadlock between Pipeline and RendererImpl.
Both Pipeline and RendererImpl use it's own lock. We could end up with a dead
lock in the following scenario:
- On main thread, Pipeline holds it's lock (lock A) and calls into RendererImpl,
which also requires the RendererImpl's lock (lock B).
- On media thread, RendererImpl holds it's lock B and calls callback provided by
the Pipeline, which requires lock A.
This CL makes sure Pipeline never calls into RendererImpl while holding lock A
and RendererImpl nevers calls (back) into Pipeline while holding lock B. So
deadlock should not happen.
This CL also reverts 3 CLs that disabled various tests due to the bug:
- Revert "Exclude tests that deadlock under DrMemory (and Tsan)"
This reverts commit 0e014b9ad964236d67db60488168dbc0811655e9.
- Revert "Disable deadlock-y tests in TSan instead of just suppressing the error."
This reverts commit f712d106692d782f2a590a8e752f720ad76ee608.
- Revert "Suppress a deadlock report through media::Pipeline::GetMediaTime."
This reverts commit 5c72e0f67ce7e42804d809183bdae190024056ef.
BUG=407452
TEST=Ran PipelineIntegrationTest.ChunkDemuxerAbortRead_VideoOnly in a TSAN build for 10 mins and didn't see any issue.
Review URL: https://codereview.chromium.org/512973002
Cr-Commit-Position: refs/heads/master@{#292332}
Diffstat (limited to 'tools/valgrind')
-rw-r--r-- | tools/valgrind/gtest_exclude/content_browsertests.gtest-drmemory.txt | 5 |
1 files changed, 0 insertions, 5 deletions
diff --git a/tools/valgrind/gtest_exclude/content_browsertests.gtest-drmemory.txt b/tools/valgrind/gtest_exclude/content_browsertests.gtest-drmemory.txt index d911769..b2e560d 100644 --- a/tools/valgrind/gtest_exclude/content_browsertests.gtest-drmemory.txt +++ b/tools/valgrind/gtest_exclude/content_browsertests.gtest-drmemory.txt @@ -4,8 +4,3 @@ WebRtcBrowserTest.NoCrashWhenConnectChromiumSinkToRemoteTrack # crbug.com/400490 PluginTest.PluginSingleRangeRequest PluginTest.PluginThreadAsyncCall - -# crbug.com/407452 -*/MediaTest.* -MediaSourceTest.* -*/EncryptedMediaTest.* |