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

Issue 805233 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Feb 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 1
Type: Bug-Regression



Sign in to add a comment

Flaky crash in random webgl2_conformance_gl_passthrough_tests on Linux

Project Member Reported by ynovikov@chromium.org, Jan 24 2018

Issue description

https://ci.chromium.org/buildbot/chromium.gpu.fyi/Linux%20Release%20%28NVIDIA%29/53575
WebglConformance_conformance2_textures_misc_integer_cubemap_texture_sampling

https://ci.chromium.org/buildbot/chromium.gpu.fyi/Linux%20Release%20%28NVIDIA%29/53576
WebglConformance_conformance_textures_image_data_tex_2d_alpha_alpha_unsigned_byte
WebglConformance_conformance_textures_image_tex_2d_rgb_rgb_unsigned_short_5_6_5

https://ci.chromium.org/buildbot/chromium.gpu.fyi/Linux%20Debug%20%28NVIDIA%29/41704
WebglConformance_conformance_glsl_bugs_constant_precision_qualifier

https://ci.chromium.org/buildbot/chromium.gpu.fyi/Linux%20Debug%20%28NVIDIA%29/41705
WebglConformance_conformance_canvas_draw_webgl_to_canvas_test

Crash log in Release seems to point to ANGLE, but I think something is broken and we don't get the correct symbols, as ANGLE didn't change recently in the area of that stack.
In Debug it points to NOTREACHED() in WebGLRenderingContextBase.cpp.
I don't see any related changes in the blamelist either.

[1:1:0123/155422.156264:FATAL:WebGLRenderingContextBase.cpp(1481)] Check failed: false. 
#0 0x7f35c3411dbd base::debug::StackTrace::StackTrace()
#1 0x7f35c34101fc base::debug::StackTrace::StackTrace()
#2 0x7f35c349734a logging::LogMessage::~LogMessage()
#3 0x7f35adec2fd1 blink::WebGLRenderingContextBase::PaintRenderingResultsToCanvas()
#4 0x7f35b11ced3b blink::HTMLCanvasElement::GetSourceImageForCanvas()
#5 0x7f35b11d4114 blink::HTMLCanvasElement::GetSourceImageForCanvas()
#6 0x7f35ad9b6dc1 blink::BaseRenderingContext2D::drawImage()
#7 0x7f35ad9b79b7 blink::BaseRenderingContext2D::drawImage()
#8 0x7f35ad436432 blink::CanvasRenderingContext2DV8Internal::drawImage2Method()
#9 0x7f35ad428440 blink::CanvasRenderingContext2DV8Internal::drawImageMethod()
#10 0x7f35ad42832a blink::V8CanvasRenderingContext2D::drawImageMethodCallback()
#11 0x7f35b2e641b2 v8::internal::FunctionCallbackArguments::Call()
#12 0x7f35b2f5fed5 v8::internal::(anonymous namespace)::HandleApiCallHelper<>()
#13 0x7f35b2f5dfc9 v8::internal::Builtin_Impl_HandleApiCall()
#14 0x7f35b2f5da0d v8::internal::Builtin_HandleApiCall()
#15 0x38f993f04284 <unknown>
 
Labels: Hotlist-PixelWrangler

Comment 2 by kbr@chromium.org, Jan 24 2018

Cc: junov@chromium.org
It's this NOTREACHED that's failing while trying to copy the WebGL back buffer to the canvas element's storage:

https://cs.chromium.org/chromium/src/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.cpp?q=WebGLREnderingContextBase.cpp&sq=package:chromium&l=1481

Not sure why that could fail intermittently.

Got a bit different stack here:
https://ci.chromium.org/buildbot/chromium.gpu.fyi/Linux%20Debug%20%28NVIDIA%29/41720
During WebglConformance_conformance_glsl_bugs_sequence_operator_evaluation_order.
Also seeing an assert in ANGLE this time, which is probably the cause of the stack ending in ANGLE on Release bots.

ut/Debug/chrome --type=gpu-process --field-trial-handle=17338366845696132220,7044652464677068633,131072 --enable-logging=stderr --use-cmd-decoder=passthrough --use-angle=gl --enable-crash-reporter=, --noerrdialogs --user-data-dir=/b/s/w/ityUN69J/tmphGncmD --gpu-preferences=KAAAAAAAAAAgAQCAAQAAAAAAAAAAAGAAAQAAAAAAAAAIAAAAAAAAAAgAAAAAAAAA --use-gl=angle --gpu-vendor-id=0x10de --gpu-device-id=0x1cb3 --gpu-driver-vendor=Nvidia --gpu-driver-version=384.90 --gpu-driver-date --gpu-active-vendor-id=0x10de --gpu-active-device-id=0x1cb3 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/b/s/w/ityUN69J/tmphGncmD --enable-logging=stderr --service-request-channel-token=4B3A30058CE9E160336E1E3DA6311CC4: ../../third_party/angle/src/libANGLE/renderer/gl/StateManagerGL.cpp:671: void rx::StateManagerGL::beginQuery(GLenum, GLuint): Assertion `mQueries[type] == 0' failed.
[1:1:0124/101125.139473:ERROR:command_buffer_proxy_impl.cc(133)] ContextResult::kTransientFailure: Failed to send GpuChannelMsg_CreateCommandBuffer.
[1:1:0124/101125.139590:ERROR:context_provider_command_buffer.cc(257)] GpuChannelHost failed to create command buffer.
[25245:25245:0124/101125.162291:ERROR:gpu_process_transport_factory.cc(1019)] Lost UI shared context.
[1:7:0124/101133.703207:WARNING:ipc_message_attachment_set.cc(49)] MessageAttachmentSet destroyed with unconsumed attachments: 0/1
[1:7:0124/101133.703358:WARNING:ipc_message_attachment_set.cc(49)] MessageAttachmentSet destroyed with unconsumed attachments: 0/1
[1:7:0124/101133.703917:WARNING:ipc_message_attachment_set.cc(49)] MessageAttachmentSet destroyed with unconsumed attachments: 0/1
[1:1:0124/101133.773533:FATAL:WebGLRenderingContextBase.cpp(1481)] Check failed: false. 
#0 0x7f4aab24adbd base::debug::StackTrace::StackTrace()
#1 0x7f4aab2491fc base::debug::StackTrace::StackTrace()
#2 0x7f4aab2d034a logging::LogMessage::~LogMessage()
#3 0x7f4a95d06951 blink::WebGLRenderingContextBase::PaintRenderingResultsToCanvas()
#4 0x7f4a99013b61 blink::HTMLCanvasElement::ToStaticBitmapImage()
#5 0x7f4a990137e9 blink::HTMLCanvasElement::ToDataURLInternal()
#6 0x7f4a990143fa blink::HTMLCanvasElement::toDataURL()
#7 0x7f4a99f0e4e6 blink::HTMLCanvasElement::toDataURL()
#8 0x7f4a99f0ccdb blink::HTMLCanvasElementV8Internal::toDataURLMethod()
#9 0x7f4a99f0c5cf blink::V8HTMLCanvasElement::toDataURLMethodCallback()
#10 0x7f4a9ac901b2 v8::internal::FunctionCallbackArguments::Call()
#11 0x7f4a9ad8bed5 v8::internal::(anonymous namespace)::HandleApiCallHelper<>()
#12 0x7f4a9ad89fc9 v8::internal::Builtin_Impl_HandleApiCall()
#13 0x7f4a9ad89a0d v8::internal::Builtin_HandleApiCall()
#14 0x33074f104264 <unknown>

Owner: geoffl...@chromium.org
Status: Assigned (was: Unconfirmed)
Geoff is working on it.
Summary: Flaky crash in random webgl2_conformance_gl_passthrough_tests on Linux (was: Flaky crash in random webgl2_conformance_gl_passthrough_tests on Linux NVIDIA)
Cc: xlai@chromium.org penghuang@chromium.org jmad...@chromium.org vmp...@chromium.org
 Issue 808505  has been merged into this issue.

Comment 7 by xlai@chromium.org, Feb 5 2018

I am not sure whether this is because of a switch from AcceleratedImageBufferSurface to CanvasResourceProvider recently https://chromium-review.googlesource.com/c/chromium/src/+/864630.

In the spot function WebGLRenderingContextBase::CopyRenderingResultsFromDrawingBuffer(), there are four
places where it can return false and lead to NOTREACHED. My suspicion lies on
this particular line: https://cs.chromium.org/chromium/src/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.cpp?l=1496 because IIRC, this is the only place that was recently changed.

The current code is https://cs.chromium.org/chromium/src/third_party/WebKit/Source/platform/graphics/CanvasResourceProvider.cpp?l=49 and its SkSurface is constructed in this way:
https://cs.chromium.org/chromium/src/third_party/WebKit/Source/platform/graphics/CanvasResourceProvider.cpp?l=98.

The previous code is
https://chromium-review.googlesource.com/c/chromium/src/+/864630/8/third_party/WebKit/Source/platform/graphics/gpu/AcceleratedImageBufferSurface.cpp#b95
and the SkSurface is constructed in this way:
https://chromium-review.googlesource.com/c/chromium/src/+/864630/8/third_party/WebKit/Source/platform/graphics/gpu/AcceleratedImageBufferSurface.cpp#b60

One tiny change I can spot is that previously the SkSurface::MakeRenderTarget is created on SkBudgeted::kYes but now it is on SkBudgeted::kNo.

Maybe we can insert one more DCHECK into the code to verify if this line is the cause of failure in tests.
Project Member

Comment 8 by bugdroid1@chromium.org, Feb 5 2018

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

commit a7eecf3862613dfc37be5f757d0e0bdcbb0042d1
Author: Geoff Lang <geofflang@chromium.org>
Date: Mon Feb 05 21:42:26 2018

Revert Passthrough OpenGL flaky supression.

It was causing conflicts with other failure expectations.

TBR=zmo@chromium.org
NOTRY=true

BUG= 805233 

Change-Id: I24c0515d4c418a9dda6cda91dd8c5352ba20acf3
Reviewed-on: https://chromium-review.googlesource.com/902804
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#534498}
[modify] https://crrev.com/a7eecf3862613dfc37be5f757d0e0bdcbb0042d1/content/test/gpu/gpu_tests/webgl2_conformance_expectations.py
[modify] https://crrev.com/a7eecf3862613dfc37be5f757d0e0bdcbb0042d1/content/test/gpu/gpu_tests/webgl_conformance_expectations.py

Project Member

Comment 9 by bugdroid1@chromium.org, Feb 6 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/angle/angle/+/bcb4c68d0f85b2b7913e349a35013ac27192d1ee

commit bcb4c68d0f85b2b7913e349a35013ac27192d1ee
Author: Geoff Lang <geofflang@chromium.org>
Date: Tue Feb 06 00:20:13 2018

StateManagerGL: Rework query tracking (again)

 * Put the temporarily paused queries into a separate map, this should
   be separate functionality from the regular query tracking.

 * Pair down the number of functions that modify the current begin/end
   state.

 * Always pause all old queries and resume all new queries on context
   switch.

BUG= 805233 

Change-Id: If37a9947b50feaa4e627070ce2a7895aa5034c0e
Reviewed-on: https://chromium-review.googlesource.com/902426
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>

[modify] https://crrev.com/bcb4c68d0f85b2b7913e349a35013ac27192d1ee/src/libANGLE/renderer/gl/StateManagerGL.h
[modify] https://crrev.com/bcb4c68d0f85b2b7913e349a35013ac27192d1ee/src/libANGLE/renderer/gl/StateManagerGL.cpp
[modify] https://crrev.com/bcb4c68d0f85b2b7913e349a35013ac27192d1ee/src/libANGLE/renderer/gl/QueryGL.cpp

Project Member

Comment 10 by bugdroid1@chromium.org, Feb 6 2018

The following revision refers to this bug:
  https://skia.googlesource.com/skia/+/92f93799e8ae77cb80abd64ec804ea7797fdb460

commit 92f93799e8ae77cb80abd64ec804ea7797fdb460
Author: angle-skia-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com <angle-skia-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Date: Tue Feb 06 01:18:55 2018

Roll skia/third_party/externals/angle2/ a8fe18fc5..44dcb911c (2 commits)

https://chromium.googlesource.com/angle/angle.git/+log/a8fe18fc590b..44dcb911c00e

$ git log a8fe18fc5..44dcb911c --date=short --no-merges --format='%ad %ae %s'
2018-02-02 geofflang Decode R11 and RG11 EAC formats into 16-bit textures.
2018-02-05 geofflang StateManagerGL: Rework query tracking (again)

Created with:
  roll-dep skia/third_party/externals/angle2
BUG= 805233 


The AutoRoll server is located here: https://angle-skia-roll.skia.org

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.


CQ_INCLUDE_TRYBOTS=skia.primary:Perf-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE,Perf-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE,Perf-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE,Perf-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE,Perf-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Debug-All-ANGLE,Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE,Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE,Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE,Test-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Debug-All-ANGLE,Build-Debian9-Clang-x86_64-Release-ANGLE
TBR=bsalomon@google.com

Change-Id: If7067dcf7d0effbce237a72d9ecf96ce531275f6
Reviewed-on: https://skia-review.googlesource.com/104043
Commit-Queue: <angle-skia-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Reviewed-by: <angle-skia-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>

[modify] https://crrev.com/92f93799e8ae77cb80abd64ec804ea7797fdb460/DEPS

Project Member

Comment 11 by bugdroid1@chromium.org, Feb 6 2018

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

commit e8cdc8955d14eaed3fbd20f0f193bd7dda6eb5cd
Author: angle-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com <angle-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Date: Tue Feb 06 03:12:49 2018

Roll src/third_party/angle/ 338abb469..44dcb911c (6 commits)

https://chromium.googlesource.com/angle/angle.git/+log/338abb469bba..44dcb911c00e

$ git log 338abb469..44dcb911c --date=short --no-merges --format='%ad %ae %s'
2018-02-02 geofflang Decode R11 and RG11 EAC formats into 16-bit textures.
2018-02-05 geofflang StateManagerGL: Rework query tracking (again)
2018-02-05 geofflang GL: Fix usage of glGetInternalFormativ.
2018-02-02 lucferron Add end2end test for GL_TRIANGLE_FAN in SimpleOperationTest
2018-02-05 jmadill Add a dotfile_settings GN config file.
2018-02-02 lucferron Add end2end tests for GL_LINES and GL_LINE_STRIP

Created with:
  roll-dep src/third_party/angle
BUG= 805233 


The AutoRoll server is located here: https://angle-chromium-roll.skia.org

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.


CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
TBR=cwallez@chromium.org

Change-Id: Ic9233e0a947c1cdddc98f256d6b3ec4809b7d1af
Reviewed-on: https://chromium-review.googlesource.com/902895
Reviewed-by: angle-chromium-autoroll <angle-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Commit-Queue: angle-chromium-autoroll <angle-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#534607}
[modify] https://crrev.com/e8cdc8955d14eaed3fbd20f0f193bd7dda6eb5cd/DEPS

Project Member

Comment 12 by bugdroid1@chromium.org, Feb 6 2018

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

commit 9e05f8571b54614bc7fa3660add8d25483af95f8
Author: skia-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com <skia-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Date: Tue Feb 06 04:30:53 2018

Roll src/third_party/skia/ f7b659ab3..92f93799e (2 commits)

https://skia.googlesource.com/skia.git/+log/f7b659ab3ce2..92f93799e8ae

$ git log f7b659ab3..92f93799e --date=short --no-merges --format='%ad %ae %s'
2018-02-06 angle-skia-autoroll Roll skia/third_party/externals/angle2/ a8fe18fc5..44dcb911c (2 commits)
2018-02-05 angle-skia-autoroll Roll skia/third_party/externals/angle2/ b54206643..a8fe18fc5 (1 commit)

Created with:
  roll-dep src/third_party/skia
BUG= 805233 


The AutoRoll server is located here: https://autoroll.skia.org

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.


CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
TBR=bsalomon@chromium.org

Change-Id: Ie810534681a1651192ee9526fa0810f0a47de01b
Reviewed-on: https://chromium-review.googlesource.com/903368
Commit-Queue: skia-chromium-autoroll <skia-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Reviewed-by: skia-chromium-autoroll <skia-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#534624}
[modify] https://crrev.com/9e05f8571b54614bc7fa3660add8d25483af95f8/DEPS

Status: Fixed (was: Assigned)
No flakes since my patch landed.
Nice work Geoff!

Comment 15 by kbr@chromium.org, Feb 6 2018

Great work! Thank you for tracking down these nasty flaky test failures!

Sign in to add a comment