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

Issue 655522 link

Starred by 1 user

Issue metadata

Status: Verified
Owner:
Closed: Oct 2016
Cc:
Components:
EstimatedDays: ----
NextAction: 2016-10-19
OS: Linux , Chrome
Pri: ----
Type: ----



Sign in to add a comment

imageCapture: getPhotoCapabilities crashes

Project Member Reported by fbeaufort@chromium.org, Oct 13 2016

Issue description

IMPORTANT: Your crash has already been automatically reported to our crash system. Please file this bug only if you can provide more information about it.


Chrome Version: 55.0.2883.7
Operating System: Linux 3.8.11

URL (if applicable) where crash occurred: https://beaufortfrancois.github.io/sandbox/image-capture/playground.html

Can you reproduce this crash?
Yes

What steps will reproduce this crash? (If it's not reproducible, what were you doing just before the crash?)
1. Open https://beaufortfrancois.github.io/sandbox/image-capture/playground.html
2. It crashes
3.

****DO NOT CHANGE BELOW THIS LINE****
Crash ID: crash/3e80665b00000000

 
And here are more crashes: 
Crash ID: crash/00b9a65b00000000
Crash ID: crash/f95414cb00000000
Summary: imageCapture: getPhotoCapabilities crashes (was: imageCapture: crash)
I believe this is related to the fact I'm calling getPhotoCapabilities as when commenting out the line, I don't crash.
Labels: -Restrict-View-EditIssue OS-Chrome
FYI, Adding a small timeout of 500ms before calling getPhotoCapabilities doesn't crash. If the timeout is about 200ms, it still crashes.
Project Member

Comment 6 by bugdroid1@chromium.org, Oct 13 2016

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

commit 124fafd9aae60044673495b39a775a931cbdf90e
Author: mcasas <mcasas@chromium.org>
Date: Thu Oct 13 17:13:04 2016

VideoCaptureManager: handle case when GetDeviceEntryBySessionId is null

VCM's l.553 uses GetDeviceEntryBySessionId(request->first) without
checking the result, that could be null, and is, speculatively, the
root cause of the crashes linked in the bug.

BUG= 655522 

Review-Url: https://codereview.chromium.org/2419613003
Cr-Commit-Position: refs/heads/master@{#425072}

[modify] https://crrev.com/124fafd9aae60044673495b39a775a931cbdf90e/content/browser/renderer_host/media/video_capture_manager.cc

Comment 7 by mcasas@chromium.org, Oct 14 2016

Owner: mcasas@chromium.org
Status: Fixed (was: Started)
For repro, this needs at least 2 cameras connected and recognised.
Tentatively fixed by #6, to verify.

Comment 8 by mcasas@chromium.org, Oct 14 2016

NextAction: 2016-10-19

Comment 9 by mcasas@chromium.org, Oct 19 2016

I'm waiting for the next CrOs Dev channel release to 
verify this bug (currently is 55.0.2883.17, should
move soon).
Status: Started (was: Fixed)
 Issue 657323  has been merged into this issue.
ot fixed, reproducible  using the instructions in  https://crbug.com/657323 :

What steps will reproduce the problem?
(1) Go to https://beaufortfrancois.github.io/sandbox/image-capture/get-photo-capabilities-crash.html (getUserMedia)
(2) Hit "Reload" button multiple times 
(3) It works fine
(4) Go to https://beaufortfrancois.github.io/sandbox/image-capture/get-photo-capabilities-crash.html?ImageCapture (getUserMedia + new ImageCapture)
(5) Hit "Reload" button multiple times 
(6) It works fine
(7) Go to https://beaufortfrancois.github.io/sandbox/image-capture/get-photo-capabilities-crash.html?ImageCapture&getPhotoCapabilities (getUserMedia + new ImageCapture + getPhotoCapabilities)
(8) Hit "Reload" button multiple times 
Project Member

Comment 13 by bugdroid1@chromium.org, Oct 21 2016

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

commit 6a76be1ce16df264f18a66359177f91f2959fe77
Author: mcasas <mcasas@chromium.org>
Date: Fri Oct 21 04:30:15 2016

ImageCapture: fix using invalidated iterator after removing entry from |photo_request_queue_|

This CL avoids preincrementing a potentially invalidated iterator
after it has been erase()d from |photo_request_queue_|. It caused
the crash detailed in the bug.

BUG= 655522 
TEST= see bug, I could repro in a Linux dev debug build.

Review-Url: https://chromiumcodereview.appspot.com/2443473002
Cr-Commit-Position: refs/heads/master@{#426728}

[modify] https://crrev.com/6a76be1ce16df264f18a66359177f91f2959fe77/content/browser/renderer_host/media/video_capture_manager.cc

Cc: fbeaufort@chromium.org
Labels: Needs-Verification
Status: Fixed (was: Started)
Preventively marking as Fixed, since I could 
repro consistently.

fbeaufort@ or myself should verify in the next
CrOs Canary
Labels: -Needs-Verification
Status: Verified (was: Fixed)
[bulk-edit : please ignore if not applicable]

Could you please set the correct milestone for this issue?
Components: -Blink>MediaStream>ImageCapture Blink>ImageCapture

Sign in to add a comment