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

Issue 890752 link

Starred by 1 user

Issue metadata

Status: Verified
Owner:
Closed: Oct 2
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Mac
Pri: 1
Type: Bug-Regression

Blocking:
issue 864462



Sign in to add a comment

webgl2_conformance_tests failing on multiple mac chromium.gpu.fyi bots

Project Member Reported by kylec...@chromium.org, Oct 1

Issue description

webgl2_conformance_tests are failing on the following mac bots:
Mac FYI Retina Release (AMD)
Mac FYI Experimental Retina Release (AMD)
Mac FYI Retina Release (NVIDIA)
Mac FYI Experimental Retina Release (NVIDIA)
Mac FYI Release (Intel)
Mac FYI Release (Intel)

I see at least two different tests that are failing sometimes:
gpu_tests.webgl_conformance_integration_test.WebGLConformanceIntegrationTest.WebglConformance_deqp_functional_gles3_samplerobject
gpu_tests.webgl_conformance_integration_test.WebGLConformanceIntegrationTest.WebglConformance_deqp_functional_gles3_texturespecification_texsubimage2d_pbo_params


Here is the first failing run on on of the bots: https://ci.chromium.org/p/chromium/builders/luci.chromium.ci/Mac%20FYI%20Release%20%28Intel%29/6879

[110/141] gpu_tests.webgl_conformance_integration_test.WebGLConformanceIntegrationTest.WebglConformance_deqp_functional_gles3_samplerobject failed unexpectedly 4.8209s:
  
  Traceback (most recent call last):
    _RunGpuTest at content/test/gpu/gpu_tests/gpu_integration_test.py:138
      self.RunActualGpuTest(url, *args)
    RunActualGpuTest at content/test/gpu/gpu_tests/webgl_conformance_integration_test.py:188
      getattr(self, test_name)(test_path, *args[1:])
    _RunConformanceTest at content/test/gpu/gpu_tests/webgl_conformance_integration_test.py:202
      self._CheckTestCompletion()
    _CheckTestCompletion at content/test/gpu/gpu_tests/webgl_conformance_integration_test.py:198
      self.fail(self._WebGLTestMessages(self.tab))
    fail at .swarming_module/lib/python2.7/unittest/case.py:410
      raise self.failureException(msg)
  AssertionError: sampler_object.single_tex_2d.diff_wrap_r: 
  Init testcase: sampler_object.single_tex_2d.diff_wrap_t
  Init testcase: sampler_object.single_tex_2d.diff_wrap_s
  Init testcase: sampler_object.single_tex_2d.diff_wrap_r
  FAIL 
  Init testcase: sampler_object.single_tex_2d.diff_min_filter
  Init testcase: sampler_object.single_tex_2d.diff_mag_filter
  sampler_object.single_tex_2d.diff_mag_filter: 
  FAIL 
  Init testcase: sampler_object.single_tex_2d.diff_max_lod
  Init testcase: sampler_object.single_tex_2d.diff_min_lod
  sampler_object.single_tex_2d.diff_min_lod: 
  FAIL 
  Init testcase: sampler_object.multi_tex_2d.diff_wrap_t
  sampler_object.multi_tex_2d.diff_wrap_t: 
  FAIL 
  Init testcase: sampler_object.multi_tex_2d.diff_wrap_s
  Init testcase: sampler_object.multi_tex_2d.diff_wrap_r
  sampler_object.multi_tex_2d.diff_wrap_r: 
  FAIL 
  Init testcase: sampler_object.multi_tex_2d.diff_min_filter
  Init testcase: sampler_object.multi_tex_2d.diff_mag_filter
  sampler_object.multi_tex_2d.diff_mag_filter: 
  FAIL 
  Init testcase: sampler_object.multi_tex_2d.diff_max_lod
  Init testcase: sampler_object.multi_tex_2d.diff_min_lod
  Init testcase: sampler_object.single_tex_3d.diff_wrap_t
  sampler_object.single_tex_3d.diff_wrap_t: 
  FAIL 
  Init testcase: sampler_object.single_tex_3d.diff_wrap_s
  Init testcase: sampler_object.single_tex_3d.diff_wrap_r
  Init testcase: sampler_object.single_tex_3d.diff_min_filter
  sampler_object.single_tex_3d.diff_min_filter: 
  FAIL 
  Init testcase: sampler_object.single_tex_3d.diff_mag_filter
  Init testcase: sampler_object.single_tex_3d.diff_max_lod
  sampler_object.single_tex_3d.diff_max_lod: 
  FAIL 
  Init testcase: sampler_object.single_tex_3d.diff_min_lod
  Init testcase: sampler_object.multi_tex_3d.diff_wrap_t
  sampler_object.multi_tex_3d.diff_wrap_t: 
  FAIL 
  Init testcase: sampler_object.multi_tex_3d.diff_wrap_s
  Init testcase: sampler_object.multi_tex_3d.diff_wrap_r
  sampler_object.multi_tex_3d.diff_wrap_r: 
  FAIL 
  Init testcase: sampler_object.multi_tex_3d.diff_min_filter
  Init testcase: sampler_object.multi_tex_3d.diff_mag_filter
  sampler_object.multi_tex_3d.diff_mag_filter: 
  FAIL 
  Init testcase: sampler_object.multi_tex_3d.diff_max_lod
  Init testcase: sampler_object.multi_tex_3d.diff_min_lod
  sampler_object.multi_tex_3d.diff_min_lod: 
  FAIL 
  Init testcase: sampler_object.single_cubemap.diff_wrap_t
  Init testcase: sampler_object.single_cubemap.diff_wrap_s
  sampler_object.single_cubemap.diff_wrap_s: 
  FAIL 
  Init testcase: sampler_object.single_cubemap.diff_wrap_r
  Init testcase: sampler_object.single_cubemap.diff_min_filter
  Init testcase: sampler_object.single_cubemap.diff_mag_filter
  sampler_object.single_cubemap.diff_mag_filter: 
  FAIL 
  Init testcase: sampler_object.single_cubemap.diff_max_lod
  Init testcase: sampler_object.single_cubemap.diff_min_lod
  sampler_object.single_cubemap.diff_min_lod: 
  FAIL 
  Init testcase: sampler_object.multi_cubemap.diff_wrap_t
  Init testcase: sampler_object.multi_cubemap.diff_wrap_s
  sampler_object.multi_cubemap.diff_wrap_s: 
  FAIL 
  Init testcase: sampler_object.multi_cubemap.diff_wrap_r
  Init testcase: sampler_object.multi_cubemap.diff_min_filter
  sampler_object.multi_cubemap.diff_min_filter: 
  FAIL 
  Init testcase: sampler_object.multi_cubemap.diff_mag_filter
  Init testcase: sampler_object.multi_cubemap.diff_max_lod
  sampler_object.multi_cubemap.diff_max_lod: 
  FAIL 
  Init testcase: sampler_object.multi_cubemap.diff_min_lod
  
  Locals:
    msg : u'sampler_object.single_tex_2d.diff_wrap_r: \nInit testcase: sampler_object.single_tex_2d.diff_wrap_t\nInit testcase: sampler_object.single_tex_2d.diff_wrap_s\nInit testcase: sampler_object.single_tex_2d.diff_wrap_r\nFAIL \nInit testcase: sampler_object.single_tex_2d.diff_min_filter\nInit testcase: sampler_object.single_tex_2d.diff_mag_filter\nsampler_object.single_tex_2d.diff_mag_filter: \nFAIL \nInit testcase: sampler_object.single_tex_2d.diff_max_lod\nInit testcase: sampler_object.single_tex_2d.diff_m ... nit testcase: sampler_object.multi_cubemap.diff_wrap_s\nsampler_object.multi_cubemap.diff_wrap_s: \nFAIL \nInit testcase: sampler_object.multi_cubemap.diff_wrap_r\nInit testcase: sampler_object.multi_cubemap.diff_min_filter\nsampler_object.multi_cubemap.diff_min_filter: \nFAIL \nInit testcase: sampler_object.multi_cubemap.diff_mag_filter\nInit testcase: sampler_object.multi_cubemap.diff_max_lod\nsampler_object.multi_cubemap.diff_max_lod: \nFAIL \nInit testcase: sampler_object.multi_cubemap.diff_min_lod\n' (truncated)

 
mac_webgl2_conformance_test_failure_log.txt
220 KB View Download
The common revision range between the failure for each bot is 595218-595223:
https://chromium.googlesource.com/chromium/src/+log/f369a29a01b3d8e8269afae32157f3e4e7ec7e3f%5E..192f116fd51a4f62d6614a420260f72a73d6f89a?pretty=fuller&n=

The only things that look remotely plausible as the cause are https://crrev.com/c/1213957 or https://crrev.com/c/1236413. I'm going to try and reproduce the failure locally. 
Cc: kbr@chromium.org kainino@chromium.org cwallez@chromium.org
I'm unable to reproduce the failure locally on a MacBook Pro at ToT. Adding some webgl people in case they better understand what the failure means.
Owner: palmer@google.com
I was able to reproduce with https://chromium-review.googlesource.com/c/chromium/src/+/1213957 and not without. Unfortunately the revert has a merge conflict.

Palmer, can you take a look? It looks like this optimization is broken on Mac.
Status: Assigned (was: Untriaged)
Blocking: 864462
Status: Started (was: Assigned)
Is there a way I can run tests on a Mac bot? I don't have a Mac workstation.
You can debug on a swarmed bot. Go to failed swarmed task and click "Debug". Ask for the same bot. Follow the instruction in Debug task log.
You can also run tryjobs on mac_optional_gpu_tests_rel and mac_angle_rel_ng trybots.
Labels: -Type-Bug Type-Bug-Regression
This has caused significant regressions on the mac_optional_gpu_tests_rel trybot (which would have caught this failure -- we should add the optional trybots for commits under base/allocator/partition_allocator/ ).

Can we revert https://chromium-review.googlesource.com/1213957 and dependent patches in order to get these Mac bots green again? Then we can use the mac_optional_gpu_tests_rel trybot at leisure in order to debug these Mac-specific failures.

https://chromium-review.googlesource.com/c/chromium/src/+/1255592 is in the CQ and I checked that it fixes the issue locally.
In a dry run*
Project Member

Comment 12 by bugdroid1@chromium.org, Oct 2

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

commit a6519e88c07449783269f87535afea8e55effbdb
Author: Chris Palmer <palmer@chromium.org>
Date: Tue Oct 02 00:09:00 2018

Temporarily turn off the memory-zeroing optimization on macOS.

It is breaking macOS GPU tests.

Bug:  890752 
TBR: ajwong
Change-Id: I3f686473483cab053fc43e3d4b719a2900bdd71b
Cq-Include-Trybots: luci.chromium.try:mac_optional_gpu_tests_rel
Reviewed-on: https://chromium-review.googlesource.com/1255592
Reviewed-by: Chris Palmer <palmer@chromium.org>
Commit-Queue: Chris Palmer <palmer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#595654}
[modify] https://crrev.com/a6519e88c07449783269f87535afea8e55effbdb/base/allocator/partition_allocator/partition_bucket.cc
[modify] https://crrev.com/a6519e88c07449783269f87535afea8e55effbdb/base/allocator/partition_allocator/partition_root_base.h

Status: Verified (was: Started)
Checked current redness is for a different issue. Thanks for the fix!
Project Member

Comment 14 by bugdroid1@chromium.org, Oct 3

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

commit 6ae88d9a2b7f3ef8b6c0cc263ed484838bdabf48
Author: Chris Palmer <palmer@chromium.org>
Date: Wed Oct 03 18:44:24 2018

Enable only 1 `PartitionAllocZeroFill` optimization.

`SlowPathAlloc` has 3 tactics for getting new memory. Of these, only the 1st
(calling `PartitionDirectMap`) seems to most obviously get a fresh, zeroed page
from the OS. I think it is safe to optimize in that branch. It might be safe on
some platforms to optimize in the other 2 branches, but it's less obviously
safe, and we've had trouble on at least macOS. This CL enables the 1st branch
but turns off the optimization in the 2nd 2 branches.

Bug:  890752 
Cq-Include-Trybots: luci.chromium.try:mac_optional_gpu_tests_rel
Change-Id: Ibd9ff599ba78aeab47c2369c472af71a4f71d600
Reviewed-on: https://chromium-review.googlesource.com/1256211
Reviewed-by: Albert J. Wong <ajwong@chromium.org>
Commit-Queue: Chris Palmer <palmer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#596297}
[modify] https://crrev.com/6ae88d9a2b7f3ef8b6c0cc263ed484838bdabf48/base/allocator/partition_allocator/partition_bucket.cc
[modify] https://crrev.com/6ae88d9a2b7f3ef8b6c0cc263ed484838bdabf48/base/allocator/partition_allocator/partition_root_base.h

Sign in to add a comment