New issue
Advanced search Search tips

Issue 902231 link

Starred by 2 users

Issue metadata

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



Sign in to add a comment

V8 changes not fully picked up in incremental Chromium build

Reported by peter.wm...@gmail.com, Nov 6

Issue description

UserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3602.2 Safari/537.36

Steps to reproduce the problem:
1) Checked out Chromium - git fetch chromium
2) Successfully built the Chromium.app - gclient sync && gn gen out/Default && autoninja -C out/Default chrome
3) Make a change in the v8 subdirectory (ex. Update array-join.tq with a Print)
4) Rebuild - autoninja -C out/Default chrome
5) Open Chromium and visit page exercising V8 change.

What is the expected behavior?
V8 changes are reflected

What went wrong?
At best, it's like the build didn't take the change.  At the worst, it causes bizarre behavior (unrelated v8 assert failures, string constants are completely wrong)

Did this work before? N/A 

Chrome version: 72.0.3602.2  Channel: canary
OS Version: OS X 10.13.6
Flash Version: 

I found a workaround, manually delete the v8_context_snapshot before running `autoninja -C out/Default chrome`.

Here's vid cap of the whole flow: https://media.giphy.com/media/WS2f9chKSVcF3Tv2Gh/giphy.mp4

Related v8-dev thread: https://groups.google.com/forum/#!topic/v8-dev/GsDgUb67Ddk
 
Cc: tebbi@chromium.org yangguo@chromium.org
Components: -Blink Blink>JavaScript
Labels: -Pri-2 Pri-1
Status: Untriaged (was: Unconfirmed)
Cc: peria@chromium.org danno@chromium.org
Status: Unconfirmed (was: Untriaged)
Owner: peria@chromium.org
Status: Assigned (was: Unconfirmed)
Without looking at the GN configs, my theory is that the v8_context_snapshot target does not depend on v8_base, which means that changing V8 does not trigger regenerating the snapshot. The result is that the snapshot and the binary are out of sync.

The observed behavior of wrong strings is probably due to embedded builtins referencing strings in the builtins constants table via fixed index. When the embedded builtins change due to changes to .tq files, but the constants table does not due to outdated snapshot, we get wrong string constants.
This is probably related to issue 866392.

Sign in to add a comment