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

Issue 679651 link

Starred by 2 users

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug



Sign in to add a comment

DesktopDeviceCaptureTest.Capture failed without reboot

Project Member Reported by ukai@chromium.org, Jan 10 2017

Issue description

re: https://bugs.chromium.org/p/chromium/issues/detail?id=678864

DesktopDeviceCaptureTest.Capture succeed once after reboot, but fails after that.

https://build.chromium.org/p/chromium.fyi/builders/CrWinGoma

Jan 09 23:42	236b242417b64ccb62084dd6a6b63f50074b9897	failure	#50423
Failed steps failed content_unittests
Jan 09 23:34	7a7dee0d2d921c83a17984b143d8b1988f49c93a	failure	#50422
Failed steps failed content_unittests
Jan 09 23:25	50b51c228aac6489fe29c744d8140ee20ab62f8d	failure	#50421
Failed steps failed content_unittests
Jan 09 23:18	accb81312b4555356dd49253d156e4a8b9eac784	failure	#50420
Failed steps failed content_unittests
Jan 09 23:05	b7b01ac5e2085ad23f1a01b84b2ce27daced0f70	failure	#50419
Failed steps failed content_unittests
Jan 09 22:41	5347b46f28ff183a55d8858b5a604aeee45d984c	failure	#50418
Failed steps failed content_unittests
Jan 09 22:17	eb5e40651ca7d137d9b4840a61ce050b5ac04f12	failure	#50417
Failed steps failed content_unittests
Jan 09 21:50	62b8c3d48cfc7b4e090c0d33f409559b299fd9a1	success	#50416
Build successful
Jan 09 21:44	??	exception	#50415
Exception interrupted exception remote_run_result

rebooted at #50415, succeeded at #50416, but failing since #50417

DesktopCaptureDeviceTest.Capture (run #1):
[ RUN      ] DesktopCaptureDeviceTest.Capture
[6116:6984:0109/223928.358:3039828:WARNING:screen_capturer_win_gdi.cc(221)] BitBlt failed: [0x00000005]
[6116:6984:0109/223928.392:3039859:WARNING:screen_capturer_win_gdi.cc(221)] BitBlt failed: [0x00000005]
[6116:6984:0109/223928.426:3039906:WARNING:screen_capturer_win_gdi.cc(221)] BitBlt failed: [0x00000005]
[6116:6984:0109/223928.460:3039937:WARNING:screen_capturer_win_gdi.cc(221)] BitBlt failed: [0x00000005]
[6116:6984:0109/223928.494:3039968:WARNING:screen_capturer_win_gdi.cc(221)] BitBlt failed: [0x00000005]
..
[2796:9624:0109/224129.944:3161421:WARNING:screen_capturer_win_gdi.cc(221)] BitBlt failed: [0x00000005]
c:\c\crwingoma\src\contentrowser\media\capture\desktop_capture_device_unittest.cc(313): error: Value of: done_event.TimedWait(TestTimeouts::action_max_timeout())
  Actual: false
Expected: true
c:\c\crwingoma\src\contentrowser\media\capture\desktop_capture_device_unittest.cc(316): error: Expected: (format.frame_size.width()) > (0), actual: 0 vs 0
c:\c\crwingoma\src\contentrowser\media\capture\desktop_capture_device_unittest.cc(317): error: Expected: (format.frame_size.height()) > (0), actual: 0 vs 0
c:\c\crwingoma\src\contentrowser\media\capture\desktop_capture_device_unittest.cc(318): error: Value of: format.frame_rate
  Actual: 0
Expected: kFrameRate
Which is: 30
c:\c\crwingoma\src\contentrowser\media\capture\desktop_capture_device_unittest.cc(319): error: Value of: format.pixel_format
  Actual: 0
Expected: media::PIXEL_FORMAT_ARGB
Which is: 10
c:\c\crwingoma\src\contentrowser\media\capture\desktop_capture_device_unittest.cc(321): error: Value of: frame_size
  Actual: 8057644
Expected: format.frame_size.GetArea() * 4
Which is: 0
[  FAILED  ] DesktopCaptureDeviceTest.Capture (30005 ms)

 
Cc: -zijiehe@chromium.org
Owner: zijiehe@chromium.org
Status: Assigned (was: Untriaged)
I took a close look at my changes in 
desktop_capture_device_unittest.cc and it seems very unlikely to be related to those changes.

zijiehe@ could you please take a look at this? Based on the logs, it seems that you have seen this issue before?
Cc: -chfremer@chromium.org zijiehe@chromium.org
Owner: chfremer@chromium.org
Yes, the error log is newly added to the ScreenCapturerWinGdi, which is the capturer DesktopCaptureDevice is backed by default. Before webrtc change https://codereview.webrtc.org/2553353002, ScreenCapturerWinGdi will silently ignore the error, and return a white or black, I cannot quite remember :(, desktop frame. But considering in desktop_capture_device_unittest, it actually did not check the result returned, the test failed silently before. To the 0x00000005, it's access denied. But I cannot quite tell the reason of this return value, otherwise I would have fixed it already.

Since you do not actively check the capturer result, I think a reliable way to do in DesktopCaptureDeviceTest is to use fake DesktopCapturer implementations.
There is a FakeScreenCapturer implementation in desktop_capture_device_unittet.cc, or you can also try https://cs.chromium.org/chromium/src/third_party/webrtc/modules/desktop_capture/fake_desktop_capturer.h?q=fakedesktopcapturer&sq=package:chromium&l=34.
Cc: sergeyu@chromium.org m...@chromium.org
Adding sergeyu@ and miu@ hoping for additional comments from them.

I agree we could avoid running into this issue by using a fake DesktopCapturer implementation, but that would change the purpose of the test. Is the test supposed to be an integration test that verifies that desktop capture works on the supported platforms? Or is it a unit test that is supposed to test class DesktopCaptureDevice in isolation?



Cc: qiangchen@chromium.org
Sorry, I misunderstood the context, I thought you were the new owner of the DesktopCaptureDevice.
I have no background knowledge about DesktopCaptureDeviceTest. But the DesktopCaptureDeviceTest.Capture test does not check any pixels returned from DesktopCapturer, so I assume it only tests DesktopCaptureDevice itself instead of underlying DesktopCapturer. And it's also not reasonable to test DesktopCapturer in DesktopCaptureDeviceTest, they are covered by their own test cases. These are my two cents.
AFAICT, QiangChen@ has done some work recently on it, maybe he could provide more information.
Project Member

Comment 5 by bugdroid1@chromium.org, Jan 18 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/tools/build.git/+/bef4fdb2ad55bbe00d026723a88df417d303e057

commit bef4fdb2ad55bbe00d026723a88df417d303e057
Author: Takuto Ikuta <tikuta@google.com>
Date: Tue Jan 17 01:11:18 2017

Enable auto_reboot on Goma canary buildbot

CrWinGoma (goma canary bot) on chromium.fyi failed nearly one month.
https://build.chromium.org/p/chromium.fyi/builders/CrWinGoma

Reboot maybe fix the issue temporarily.

BUG=678864,679651

Change-Id: I8416460971e775ea8f173ae1f1ced833cf0428c3
Reviewed-on: https://chromium-review.googlesource.com/428595
Reviewed-by: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
Reviewed-by: Yoshisato Yanagisawa <yyanagisawa@chromium.org>
Reviewed-by: Fumitoshi Ukai <ukai@chromium.org>
Reviewed-by: Shinya Kawanaka <shinyak@chromium.org>
Commit-Queue: Takuto Ikuta <tikuta@google.com>

[modify] https://crrev.com/bef4fdb2ad55bbe00d026723a88df417d303e057/masters/master.chromium.fyi/master.cfg

Status: Available (was: Assigned)
Won't be able to work on this for the foreseeable next weeks => marking as available

Comment 7 by m...@chromium.org, Feb 7 2018

Components: Internals>Media>ScreenCapture

Comment 8 by m...@chromium.org, Feb 7 2018

Components: -Internals>Media>Capture
Status: Assigned (was: Available)

Sign in to add a comment