Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(598)

Issue 2692703002: CRD Webapp intermittently crashes on some machines (Closed)

Created:
3 years, 10 months ago by joedow
Modified:
3 years, 10 months ago
Reviewers:
*Sergey Ulanov, Wez
CC:
chromium-reviews, posciak+watch_chromium.org, chromoting-reviews_chromium.org
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

CRD Webapp intermittently crashes on some machines This issue appeared during our M56 release and affected a subset of machines. Some users would hit this problem after a few seconds and others could spend several hours using the app without problems. I was able to track the problem down to a checkin from last year: https://codereview.chromium.org/2096643003/ After a bit of additional debugging, I believe I know what the problem is. The actual problem is caused by a call to OnPictureReady() in the PepperVideoRenderer3D class that occurs before we have a decoded frame ready. This leads to a cascade of issues where we try to splice an element from the empty decoded_frames_ list which causes the size of the list to underflow to 2^32 and inserts a null FrameTracker into the next_picture_frames_ list. This null FrameTracker is eventually dereferenced which causes a crash. Why does this only happen on certain machines? I believe the problem is in the call to GetNextPicture(). This method is called in two places, once when we finish decoding a frame and again after we have retrieved a decoded frame. The machine I have been debugging the crash on is a dual core celeron which is quite slow. All of the test machines have at least a core i5 in it. My theory is that on the faster machines, the decoder is fast enough to complete its work before the extra call to GetNextPicture() results in the PictureReady callback being signalled. On the slow machines. we set up our callback which ends up triggering before the decoding completes. My fix is to prevent setting up the OnPictureReady callback if we do not have any decoded frames. A simple fix for a difficult to debug problem. BUG=689229 Review-Url: https://codereview.chromium.org/2692703002 Cr-Commit-Position: refs/heads/master@{#450132} Committed: https://chromium.googlesource.com/chromium/src/+/838ec64ba5d7602699ec7c02182c5b17fa06075d

Patch Set 1 #

Total comments: 1

Patch Set 2 : Added comment #

Total comments: 1
Unified diffs Side-by-side diffs Delta from patch set Stats (+7 lines, -1 line) Patch
M remoting/client/plugin/pepper_video_renderer_3d.cc View 1 1 chunk +7 lines, -1 line 1 comment Download

Messages

Total messages: 19 (10 generated)
joedow
PTAL!
3 years, 10 months ago (2017-02-13 20:05:25 UTC) #7
Sergey Ulanov
LGTM It appears that the problem is that the plugin doesn't handle the case when ...
3 years, 10 months ago (2017-02-13 20:46:57 UTC) #8
joedow
Thanks Sergey! I'll file a bug for the video shim problem. Joe
3 years, 10 months ago (2017-02-13 22:33:47 UTC) #9
Sergey Ulanov
On 2017/02/13 22:33:47, joedow wrote: > Thanks Sergey! > > I'll file a bug for ...
3 years, 10 months ago (2017-02-13 22:34:44 UTC) #12
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2692703002/20001
3 years, 10 months ago (2017-02-13 22:35:35 UTC) #13
commit-bot: I haz the power
Committed patchset #2 (id:20001) as https://chromium.googlesource.com/chromium/src/+/838ec64ba5d7602699ec7c02182c5b17fa06075d
3 years, 10 months ago (2017-02-13 22:53:09 UTC) #16
Wez
Can you trim the CL description down to describe just the bug and what was ...
3 years, 10 months ago (2017-02-13 22:59:41 UTC) #17
Wez
https://codereview.chromium.org/2692703002/diff/20001/remoting/client/plugin/pepper_video_renderer_3d.cc File remoting/client/plugin/pepper_video_renderer_3d.cc (right): https://codereview.chromium.org/2692703002/diff/20001/remoting/client/plugin/pepper_video_renderer_3d.cc#newcode341 remoting/client/plugin/pepper_video_renderer_3d.cc:341: if (get_picture_pending_ || decoded_frames_.empty()) { I'd suggest either adding ...
3 years, 10 months ago (2017-02-13 23:03:36 UTC) #18
joedow
3 years, 10 months ago (2017-02-13 23:45:35 UTC) #19
Message was sent while issue was closed.
I will look into Wez's comments in a follow-up CL since this one is already in :
)

Powered by Google App Engine
This is Rietveld 408576698