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

Issue 779614 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Aug 28
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Windows
Pri: 1
Type: Bug-Regression



Sign in to add a comment

services_unittests crash when running with --single-process-tests

Project Member Reported by l...@chromium.org, Oct 30 2017

Issue description

What steps will reproduce the problem?
(1) Build services_unittests on Chrome TOT
(2) Run services_unittests --single-process-tests
(3) Observe the output

- What is the expected result?

All tests should pass

- What happens instead?

Crash at GpuHostTest.GpuClientDestroyedWhileChannelRequestInFlight
the output is

[ RUN      ] GpuHostTest.GpuClientDestroyedWhileChannelRequestInFlight
[13643:14854:1030/102807.255083:934410868161:FATAL:gl_factory.cc(22)] Check failed: kGLImplementationNone == GetGLImplementation() (0 vs. 1)
#0 0x000002251967 base::debug::StackTrace::StackTrace()
#1 0x000002269ca1 logging::LogMessage::~LogMessage()
#2 0x000002c9fd2e gl::init::(anonymous namespace)::InitializeGLOneOffHelper()
#3 0x000002ca00e7 gl::init::InitializeGLNoExtensionsOneOff()
#4 0x000002e49fbe gpu::GpuInit::InitializeInProcess()
#5 0x000002239d62 viz::VizMainImpl::VizMainImpl()
#6 0x00000487216d ui::ws::DefaultGpuHost::InitializeVizMain()
#7 0x000002fbcaad _ZN4base8internal7InvokerINS0_9BindStateIMN3viz14GpuServiceImplEFvN4mojo16InterfaceRequestINS3_5mojom10GpuServiceEEEEJNS0_17UnretainedWrapperIS4_EENS0_13PassedWrapperIS9_EEEEEFvvEE3RunEPNS0_13BindStateBaseE
#8 0x000002252b01 base::debug::TaskAnnotator::RunTask()
#9 0x000002271460 base::internal::IncomingTaskQueue::RunTask()
#10 0x00000226faaf base::MessageLoop::RunTask()
#11 0x00000226fdf5 base::MessageLoop::DeferOrRunPendingTask()
#12 0x000002270096 base::MessageLoop::DoWork()
#13 0x0000022737b4 base::MessagePumpDefault::Run()
#14 0x00000226f3be base::MessageLoop::Run()
#15 0x00000228b024 base::RunLoop::Run()
#16 0x0000022b575c base::Thread::Run()
#17 0x0000022b5ae2 base::Thread::ThreadMain()
#18 0x0000022ae7ec base::(anonymous namespace)::ThreadFunc()
#19 0x7f9f4fd8f184 start_thread
#20 0x7f9f4c556ffd clone
 
Components: Internals>GPU>Internals
Labels: -Pri-3 OS-Windows Pri-1
This prohibits me to test on Windows too.
Components: Internals>Services>Viz
Owner: fsam...@chromium.org
Status: Assigned (was: Untriaged)
Cc: fsam...@chromium.org kylec...@chromium.org sadrul@chromium.org
Owner: moh...@chromium.org
Passing along to mohsen@ as he's been working in this area. 
Cc: sky@chromium.org
GpuHostTest is left out of services_unittests as of r567650.

sky@: Is this intentional?
Definitely not. I sent you patch to add it back.
Status: Started (was: Assigned)
Project Member

Comment 7 by bugdroid1@chromium.org, Aug 27

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

commit 5da78930d5bf933ee61c2f31a62430b338d00923
Author: Scott Violet <sky@chromium.org>
Date: Mon Aug 27 20:50:48 2018

window-service: Adds gpu_hosts tests back to services_unittests

Removing these was an oversight.

BUG= 779614 
TEST=test only change

Change-Id: I726deff7a1b25319f0b3f8740ddde88daa0262cd
Reviewed-on: https://chromium-review.googlesource.com/1190843
Commit-Queue: Scott Violet <sky@chromium.org>
Reviewed-by: Mohsen Izadi <mohsen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#586407}
[modify] https://crrev.com/5da78930d5bf933ee61c2f31a62430b338d00923/services/ws/BUILD.gn

It seems that the failure happens if a test in GpuHostTest is run after a test that uses WindowServiceTestSetup. I think WidnowServiceTestSetup initializes GL without uninitializing it at the end, so when it becomes GpuHostTest's turn to run, GL is already initialized which is not what the test expects.
Project Member

Comment 9 by bugdroid1@chromium.org, Aug 28

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

commit 2cef28bf6a2b9583fa1d84db7738475902d0f673
Author: Mohsen Izadi <mohsen@chromium.org>
Date: Tue Aug 28 17:15:49 2018

Shut down GL in WindowServiceTestSetup::d'tor()

Otherwise, the GL setup may leak to the next test that happen to run
after the current one which is generally not expected. This is specially
problematic if tests are run with --single-process-tests flag.

BUG= 779614 
TEST=services_unittests --single-process-tests

Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: Id37eb35530be3519e7e1d8e47c1908bf6999839f
Reviewed-on: https://chromium-review.googlesource.com/1192592
Reviewed-by: Scott Violet <sky@chromium.org>
Commit-Queue: Mohsen Izadi <mohsen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#586758}
[modify] https://crrev.com/2cef28bf6a2b9583fa1d84db7738475902d0f673/services/ws/window_service_test_setup.cc
[modify] https://crrev.com/2cef28bf6a2b9583fa1d84db7738475902d0f673/ui/gl/test/gl_surface_test_support.cc
[modify] https://crrev.com/2cef28bf6a2b9583fa1d84db7738475902d0f673/ui/gl/test/gl_surface_test_support.h

Status: Fixed (was: Started)

Sign in to add a comment