V8 changes not fully picked up in incremental Chromium build
Reported by
peter.wm...@gmail.com,
Nov 6
|
|||
Issue descriptionUserAgent: 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
,
Nov 6
,
Nov 6
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.
,
Nov 6
This is probably related to issue 866392. |
|||
►
Sign in to add a comment |
|||
Comment 1 by clemensh@google.com
, Nov 6Components: -Blink Blink>JavaScript
Labels: -Pri-2 Pri-1
Status: Untriaged (was: Unconfirmed)