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

Issue 826178 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Mar 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 2
Type: Bug

Blocking:
issue 710190



Sign in to add a comment

WebGL regressions on textures/image_bitmap_from_blob tests on Win10/Intel HD630

Project Member Reported by jiawei.s...@intel.com, Mar 27 2018

Issue description

OS: Windows 10

What steps will reproduce the problem?
(1) On Win10 Kabylake using HD630 GPU, open https://www.khronos.org/registry/webgl/sdk/tests/webgl-conformance-tests.html?version=2.0.1  
(2) Click the "Run" button before "all/conformance/textures/image_bitmap_from_blob" and "all/conformance2/textures/image_bitmap_from_blob"
(3) You can see several test failures with #538331[1].
(4) Repeat these tests, you may see different tests failed.

What is the expected result?
All tests in "all/conformance/textures/image_bitmap_from_blob" and "all/conformance2/textures/image_bitmap_from_blob" can pass.

What happens instead?
Before the Chromium commit #538331, all tests can pass.
With #538331, you can see the random failures.

Please use labels and text to provide additional information.
This regression cannot be observed on Win10 using NVidia GPU.

For graphics-related bugs, please copy/paste the contents of the about:gpu
page at the end of this report.

[1] https://chromium-review.googlesource.com/c/chromium/src/+/920783

 
gpu-Win10-HD630.html
121 KB View Download

Comment 1 by zmo@chromium.org, Mar 27 2018

How come our Win10 Intel HD 630 bot didn't catch this regression?

https://ci.chromium.org/buildbot/chromium.gpu.fyi/Win10%20FYI%20Release%20%28Intel%20HD%20630%29/

Comment 2 by mek@chromium.org, Mar 27 2018

Components: Blink>FileAPI

Comment 3 by mek@chromium.org, Mar 27 2018

Components: Blink>Network>XHR
Hmm, I think what's going on here is an unfortunate combination of behavior of XHR when downloading to a blob (which behind the scenes downloads to a file), and that CL of mine trying to prevent blink from reading files that have modified after blink gains access to them. The network code that writes the data to a file doesn't actually close the file until some arbitrary time after it has finished writing, which I guess could in some cases result in the blob backed by the file being created before the file is closed. Since on windows it is closing the file that updates the modified timestamp, that could result in some race conditions where the blob system sees the wrong timestamp.

The good news is that I'm rewriting the XHR side of this, and the new code shouldn't have the same problems. But that new code isn't going to be backported to M66, so that doesn't directly help for this case.

Reverting the fix for 710190 would of course unbreak this, which I guess I might end up doing, but that would be unfortunate as that was arguably a security bug...
Project Member

Comment 4 by bugdroid1@chromium.org, Mar 27 2018

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

commit 724fb40f190432710bc7d6ab31c1eba1b1fe69e9
Author: Marijn Kruisselbrink <mek@chromium.org>
Date: Tue Mar 27 21:53:14 2018

Revert "Make sure kFile BlobDataItems have a expected_modification_time."

This reverts commit 9b568e65a707b8a5abad91ddc464d158efdb95d9.

Reason for revert: this breaks XHR downloading to blobs, since the file that writes to might not be closed/updated until after the blob is created.

Original change's description:
> Make sure kFile BlobDataItems have a expected_modification_time.
> 
> Having expected_modification_time set guards us against files changing
> out from under us, and accidentally exposing those changes to the web.
> Without this change any files selected in <input> elements would be
> perpetually readable with whatever the file on disk changed to.
> 
> Bug: 710190
> Change-Id: I4b05ccfbe2d3c42116769d442bcec853973ff67c
> Reviewed-on: https://chromium-review.googlesource.com/920783
> Commit-Queue: Daniel Murphy <dmurph@chromium.org>
> Reviewed-by: Daniel Murphy <dmurph@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#538331}

TBR=dmurph@chromium.org,mek@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: 710190,  826178 
Change-Id: I7f742f6d63d39a546c441203e5815abf5d0ba4b2
Reviewed-on: https://chromium-review.googlesource.com/981502
Commit-Queue: Marijn Kruisselbrink <mek@chromium.org>
Reviewed-by: Marijn Kruisselbrink <mek@chromium.org>
Cr-Commit-Position: refs/heads/master@{#546278}
[modify] https://crrev.com/724fb40f190432710bc7d6ab31c1eba1b1fe69e9/storage/browser/blob/blob_data_item.cc
[modify] https://crrev.com/724fb40f190432710bc7d6ab31c1eba1b1fe69e9/storage/browser/blob/blob_data_item.h
[modify] https://crrev.com/724fb40f190432710bc7d6ab31c1eba1b1fe69e9/storage/browser/blob/blob_storage_context.cc
[modify] https://crrev.com/724fb40f190432710bc7d6ab31c1eba1b1fe69e9/third_party/WebKit/LayoutTests/fast/filesystem/resources/file-writer-sync-write-overlapped.js
[delete] https://crrev.com/9126ccb11f468eb77b5188237c4fb809101e417e/third_party/WebKit/LayoutTests/http/tests/local/fileapi/file-changed-after-drop-expected.txt
[delete] https://crrev.com/9126ccb11f468eb77b5188237c4fb809101e417e/third_party/WebKit/LayoutTests/http/tests/local/fileapi/file-changed-after-drop.html
[delete] https://crrev.com/9126ccb11f468eb77b5188237c4fb809101e417e/third_party/WebKit/LayoutTests/http/tests/local/fileapi/script-tests/file-changed-after-drop.js

Comment 5 by mek@chromium.org, Mar 27 2018

Owner: mek@chromium.org
Status: Fixed (was: Available)

Comment 6 by mek@chromium.org, Mar 27 2018

Labels: Merge-Request-66
Status: Started (was: Fixed)
oops, of course still have to backport the revert to M66.

Comment 7 by kbr@chromium.org, Mar 27 2018

Blocking: 710190
The bug cannot be reproduced if you run tests in all/conformance/textures/image_bitmap_from_blob separately. It can only be reproduced when we run these tests together.
Project Member

Comment 9 by sheriffbot@chromium.org, Mar 28 2018

Labels: -Merge-Request-66 Merge-Review-66 Hotlist-Merge-Review
This bug requires manual review: Reverts referenced in bugdroid comments after merge request.
Please contact the milestone owner if you have questions.
Owners: cmasso@(Android), cmasso@(iOS), josafat@(ChromeOS), abdulsyed@(Desktop)

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
How safe is this merge overall? Why is this critical for M66 vs waiting until M67?

Comment 11 by mek@chromium.org, Mar 29 2018

It's a revert of a change that caused regressions in M66. Essentially the change had the unfortunate side effect of breaking XMLHttpRequest downloading to a blob. Merge should be perfectly safe since it just gets us back to the state the code had in M65.
Labels: -Merge-Review-66 Merge-Approved-66
Approving merge to M66. Branch:3359
Project Member

Comment 13 by bugdroid1@chromium.org, Mar 30 2018

Labels: -merge-approved-66 merge-merged-3359
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a00e7f7ffb6cdc7bfc6d2779f19110e7681986a3

commit a00e7f7ffb6cdc7bfc6d2779f19110e7681986a3
Author: Marijn Kruisselbrink <mek@chromium.org>
Date: Fri Mar 30 22:44:55 2018

Revert "Make sure kFile BlobDataItems have a expected_modification_time."

This reverts commit 9b568e65a707b8a5abad91ddc464d158efdb95d9.

Reason for revert: this breaks XHR downloading to blobs, since the file that writes to might not be closed/updated until after the blob is created.

Original change's description:
> Make sure kFile BlobDataItems have a expected_modification_time.
>
> Having expected_modification_time set guards us against files changing
> out from under us, and accidentally exposing those changes to the web.
> Without this change any files selected in <input> elements would be
> perpetually readable with whatever the file on disk changed to.
>
> Bug: 710190
> Change-Id: I4b05ccfbe2d3c42116769d442bcec853973ff67c
> Reviewed-on: https://chromium-review.googlesource.com/920783
> Commit-Queue: Daniel Murphy <dmurph@chromium.org>
> Reviewed-by: Daniel Murphy <dmurph@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#538331}

TBR=dmurph@chromium.org, mek@chromium.org


(cherry picked from commit 724fb40f190432710bc7d6ab31c1eba1b1fe69e9)

Bug: 710190,  826178 
Change-Id: I7f742f6d63d39a546c441203e5815abf5d0ba4b2
Reviewed-on: https://chromium-review.googlesource.com/981502
Commit-Queue: Marijn Kruisselbrink <mek@chromium.org>
Reviewed-by: Marijn Kruisselbrink <mek@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#546278}
Reviewed-on: https://chromium-review.googlesource.com/988956
Cr-Commit-Position: refs/branch-heads/3359@{#514}
Cr-Branched-From: 66afc5e5d10127546cc4b98b9117aff588b5e66b-refs/heads/master@{#540276}
[modify] https://crrev.com/a00e7f7ffb6cdc7bfc6d2779f19110e7681986a3/storage/browser/blob/blob_data_item.cc
[modify] https://crrev.com/a00e7f7ffb6cdc7bfc6d2779f19110e7681986a3/storage/browser/blob/blob_data_item.h
[modify] https://crrev.com/a00e7f7ffb6cdc7bfc6d2779f19110e7681986a3/storage/browser/blob/blob_storage_context.cc
[modify] https://crrev.com/a00e7f7ffb6cdc7bfc6d2779f19110e7681986a3/third_party/WebKit/LayoutTests/fast/filesystem/resources/file-writer-sync-write-overlapped.js
[delete] https://crrev.com/c976556d63702d59736c380e645d9c9ea3199b3e/third_party/WebKit/LayoutTests/http/tests/local/fileapi/file-changed-after-drop-expected.txt
[delete] https://crrev.com/c976556d63702d59736c380e645d9c9ea3199b3e/third_party/WebKit/LayoutTests/http/tests/local/fileapi/file-changed-after-drop.html
[delete] https://crrev.com/c976556d63702d59736c380e645d9c9ea3199b3e/third_party/WebKit/LayoutTests/http/tests/local/fileapi/script-tests/file-changed-after-drop.js

Comment 14 by mek@chromium.org, Mar 30 2018

Status: Fixed (was: Started)
Components: Blink>Storage>FileAPI
Components: -Blink>FileAPI

Sign in to add a comment