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

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Oct 2011
EstimatedDays: ----
NextAction: ----
OS: Mac
Pri: 2
Type: Bug

Restricted
  • Only users with EditIssue permission may comment.



Sign in to add a comment
link

Issue 98948: Crashed while running iheartvideo benchmark

Reported by scherkus@chromium.org, Oct 3 2011 Project Member

Issue description

Chrome Version: 15.0.874.54
Operating System: e.g., "Windows 7", "Mac OS X 10.6"

URL (if applicable) where crash occurred:
http://ascherkus.github.com/iheartvideo/benchmark.html

Can you reproduce this crash?
Not really. So far saw it on Mac... but was also seeing a hang on Windows so could be related.

Was during benchmarking of 1080p for Radiohead - Lotus Flower
http://www.youtube.com/watch?v=cfOa1a8hYP8


*Please note that issues filed with no information filled in above will be marked as WontFix*

****DO NOT CHANGE BELOW THIS LINE****
report_id:278fa96d6b5b6c95
 

Comment 1 by scherkus@chromium.org, Oct 4 2011

Looks like a race between WebMediaPlayerImpl destruction and FFmpegDemuxer attempting to read and posting a task to a message loop that doesn't exist.

*** CRASHING THREAD ***
0x901f9474	 [libSystem.B.dylib	 + 0x00006474]	pthread_mutex_lock
0x107dc3fc	 [Google Chrome Framework	 - lock.h:23]	MessageLoop::AddToIncomingQueue
0x107dc3c1	 [Google Chrome Framework	 - message_loop.cc:267]	MessageLoop::PostTask
0x1101ee82	 [Google Chrome Framework	 - ffmpeg_demuxer.cc:169]	media::FFmpegDemuxerStream::Read
0x11023fb4	 [Google Chrome Framework	 - ffmpeg_video_decoder.cc:337]	media::FFmpegVideoDecoder::ProduceVideoSample
0x11024003	 [Google Chrome Framework	 + 0x00f95003]	non-virtual thunk to media::FFmpegVideoDecoder::ProduceVideoSample(scoped_refptr<media::Buffer>)
0x11028e7f	 [Google Chrome Framework	 - ffmpeg_video_decode_engine.cc:303]	media::FFmpegVideoDecodeEngine::ProduceVideoFrame
0x11023d69	 [Google Chrome Framework	 - ffmpeg_video_decoder.cc:294]	media::FFmpegVideoDecoder::ProduceVideoFrame


*** TEARDOWN THREAD DUE TO SRC CHANGE ***

0x90221aa2	 [libSystem.B.dylib	 + 0x0002eaa2]	__semwait_signal
0x107fa748	 [Google Chrome Framework	 - platform_thread_posix.cc:249]	base::PlatformThread::Join
0x107fad7b	 [Google Chrome Framework	 - thread.cc:102]	base::Thread::Stop
0x1100bb2e	 [Google Chrome Framework	 - message_loop_factory_impl.cc:20]	media::MessageLoopFactoryImpl::~MessageLoopFactoryImpl
0x1100bad0	 [Google Chrome Framework	 + 0x00f7cad0]	media::MessageLoopFactoryImpl::~MessageLoopFactoryImpl()
0x11afe257	 [Google Chrome Framework	 - scoped_ptr.h:84]	webkit_glue::WebMediaPlayerImpl::Destroy
0x11afe0ba	 [Google Chrome Framework	 - webmediaplayer_impl.cc:200]	webkit_glue::WebMediaPlayerImpl::~WebMediaPlayerImpl
0x11afe040	 [Google Chrome Framework	 + 0x01a6f040]	webkit_glue::WebMediaPlayerImpl::~WebMediaPlayerImpl()
0x1106dc93	 [Google Chrome Framework	 - OwnPtrCommon.h:65]	WebKit::WebMediaPlayerClientImpl::~WebMediaPlayerClientImpl
0x1106dbb0	 [Google Chrome Framework	 + 0x00fdebb0]	WebKit::WebMediaPlayerClientImpl::~WebMediaPlayerClientImpl()
0x112b7de3	 [Google Chrome Framework	 - OwnPtrCommon.h:65]	WebCore::MediaPlayer::~MediaPlayer
0x112b7d20	 [Google Chrome Framework	 + 0x01228d20]	WebCore::MediaPlayer::~MediaPlayer()
0x111e6c76	 [Google Chrome Framework	 - OwnPtrCommon.h:65]	WebCore::HTMLMediaElement::prepareForLoad
0x111e55e4	 [Google Chrome Framework	 - HTMLMediaElement.cpp:427]	WebCore::HTMLMediaElement::attributeChanged
0x1116dcb1	 [Google Chrome Framework	 - Element.cpp:681]	WebCore::Element::setAttribute
0x1116da4e	 [Google Chrome Framework	 - Element.cpp:194]	WebCore::Element::setAttribute
0x1136d1f3	 [Google Chrome Framework	 - V8Binding.cpp:616]	WebCore::setElementStringAttr
0x117b3a3d	 [Google Chrome Framework	 - V8HTMLMediaElement.cpp:67]	WebCore::HTMLMediaElementInternal::srcAttrSetter
0x10e090af	 [Google Chrome Framework	 - stub-cache.cc:1249]	v8::internal::StoreCallbackProperty

Comment 2 by fischman@google.com, Oct 5 2011

Owner: fischman@chromium.org
Status: Started
I bet this is the Release version of bug 98975#2.

Comment 3 by bugdroid1@chromium.org, Oct 7 2011

Project Member
The following revision refers to this bug:
    http://src.chromium.org/viewvc/chrome?view=rev&revision=104540

------------------------------------------------------------------------
r104540 | fischman@chromium.org | Fri Oct 07 12:12:21 PDT 2011

Changed paths:
 M http://src.chromium.org/viewvc/chrome/trunk/src/media/base/composite_filter.cc?r1=104540&r2=104539&pathrev=104540
 M http://src.chromium.org/viewvc/chrome/trunk/src/media/filters/ffmpeg_video_decoder.cc?r1=104540&r2=104539&pathrev=104540
 M http://src.chromium.org/viewvc/chrome/trunk/src/content/renderer/media/audio_renderer_impl.cc?r1=104540&r2=104539&pathrev=104540
 M http://src.chromium.org/viewvc/chrome/trunk/src/media/filters/ffmpeg_demuxer.cc?r1=104540&r2=104539&pathrev=104540
 M http://src.chromium.org/viewvc/chrome/trunk/src/media/filters/video_renderer_base.cc?r1=104540&r2=104539&pathrev=104540

Fix hangs & crashes in teardown-during-Seek.

Hangs:
- AudioRendererImpl: Don't hold lock_ in the call to Join() b/c OnStop wants to
  acquire the lock before exiting.
- FFmpegDemuxerStream::Stop: signal EOS to waiting read callbacks (instead of
  silently dropping them on the floor) so decoders can exit instead of stalling
  (and causing renderers to stall).

Crashes:
- CompositeFilter::Stop: clear out the Seek callback when Stopping.
- FFmpegVideoDecoder::ProduceVideoFrame: early-return if already stopped (racing
  with webkit repaints makes this necessary).

Also fixed a bunch of mis-indentation where I saw it.

BUG= 98975 , 98948 , 98955 , 96861 
TEST=trybots, manual


Review URL: http://codereview.chromium.org/8184003
------------------------------------------------------------------------

Comment 4 by fischman@google.com, Oct 7 2011

Labels: -Mstone-15 -ReleaseBlock-Stable Mstone-16
Status: Fixed
This is fixed in trunk.  Decided w/ scherkus@ to not merge into m15 because:
1) It's unclear what the impact is on mainstream use-cases
2) A merge would be tricky (difficult to ensure correct) b/c of interleaved refactorings (Bind & low-latency audio codepaths, specifically).

If this turns out to be a significant problem in the wild we might reconsider this decision.

Comment 5 by bugdroid1@chromium.org, Oct 17 2011

Project Member
Labels: merge-merged-874
The following revision refers to this bug:
    http://src.chromium.org/viewvc/chrome?view=rev&revision=105930

------------------------------------------------------------------------
r105930 | fischman@chromium.org | Mon Oct 17 14:47:52 PDT 2011

Changed paths:
 M http://src.chromium.org/viewvc/chrome/branches/874/src/media/base/composite_filter.cc?r1=105930&r2=105929&pathrev=105930
 M http://src.chromium.org/viewvc/chrome/branches/874/src/media/filters/ffmpeg_video_decoder.cc?r1=105930&r2=105929&pathrev=105930
 M http://src.chromium.org/viewvc/chrome/branches/874/src/content/renderer/media/audio_renderer_impl.cc?r1=105930&r2=105929&pathrev=105930
 M http://src.chromium.org/viewvc/chrome/branches/874/src/media/filters/ffmpeg_demuxer.cc?r1=105930&r2=105929&pathrev=105930
 M http://src.chromium.org/viewvc/chrome/branches/874/src/media/filters/video_renderer_base.cc?r1=105930&r2=105929&pathrev=105930

Merge 104540 - Fix hangs & crashes in teardown-during-Seek.

Hangs:
- AudioRendererImpl: Don't hold lock_ in the call to Join() b/c OnStop wants to
acquire the lock before exiting.
- FFmpegDemuxerStream::Stop: signal EOS to waiting read callbacks (instead of
silently dropping them on the floor) so decoders can exit instead of stalling
(and causing renderers to stall).

Crashes:
- CompositeFilter::Stop: clear out the Seek callback when Stopping.
- FFmpegVideoDecoder::ProduceVideoFrame: early-return if already stopped (racing
with webkit repaints makes this necessary).

Also fixed a bunch of mis-indentation where I saw it.

BUG= 98975 ,  98948 ,  98955 ,  96861 
TEST=trybots, manual
Review URL: http://codereview.chromium.org/8294027
------------------------------------------------------------------------

Comment 6 by scherkus@chromium.org, Oct 19 2011

Labels: -ImportantForVideo Hotlist-NeededForVideo

Comment 7 by bugdroid1@chromium.org, Oct 13 2012

Project Member
Labels: Restrict-AddIssueComment-Commit
This issue has been closed for some time. No one will pay attention to new comments.
If you are seeing this bug or have new data, please click New Issue to start a new bug.

Comment 8 by bugdroid1@chromium.org, Mar 10 2013

Project Member
Labels: -Mstone-16 M-16

Comment 9 by bugdroid1@chromium.org, Mar 13 2013

Project Member
Labels: -Restrict-AddIssueComment-Commit Restrict-AddIssueComment-EditIssue

Sign in to add a comment