This tickets tracks deploying a Chromium Linux buildbot with SafeStack enabled and turning it green.
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/7a75d5828b9289780298e479c9f1815aa2f3c086 commit 7a75d5828b9289780298e479c9f1815aa2f3c086 Author: Vlad Tsyrklevich <vtsyrklevich@chromium.org> Date: Thu Aug 02 21:20:59 2018 Refactor unreliable Proxy tests While working on crrev.com/c/1141045 I caused 3 assertThrows() tests under the 'Deeply nested target' tests to fail. The tests for defineProperty, isExtensible, and preventExtensions began to fail under a couple build configurations because my change modified the stack check code such that it no longer inhibited tail call optimization. Under some build configurations the methods responsible for causing a stack oveflow for those 3 methods were tail call optimized and the tests no longer threw an exception. Other built-in implementations of proxy handler methods could also fail in the future due to refactors moving variables off the stack. Change the test to ensure v8 doesn't crash but don't rely on stack overflow exceptions being thrown for the 'deeply nested target' test. BUG= chromium:864705 Change-Id: Iefeaa1d5402986c1831d0f259f83025452756387 Reviewed-on: https://chromium-review.googlesource.com/1159356 Reviewed-by: Georg Neis <neis@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#54878} [modify] https://crrev.com/7a75d5828b9289780298e479c9f1815aa2f3c086/test/mjsunit/regress/regress-7716.js
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/12c81480a33134a911336846a76161bc62e031c3 commit 12c81480a33134a911336846a76161bc62e031c3 Author: Vlad Tsyrklevich <vtsyrklevich@chromium.org> Date: Fri Aug 03 07:58:20 2018 Update GetCurrentStackPosition to use built-in By using a built-in this functions works with SafeStack and doesn't require an attribute disabling ASan. BUG= chromium:864705 Change-Id: I20cc818f1a0724a017a4f7f9ae3cd8fedb6245ee Reviewed-on: https://chromium-review.googlesource.com/1141045 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#54884} [modify] https://crrev.com/12c81480a33134a911336846a76161bc62e031c3/src/utils.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/02b85b197763b2e71d10083f98f509f7c275736c commit 02b85b197763b2e71d10083f98f509f7c275736c Author: Michael Achenbach <machenbach@chromium.org> Date: Fri Aug 03 08:41:45 2018 Revert "Update GetCurrentStackPosition to use built-in" This reverts commit 12c81480a33134a911336846a76161bc62e031c3. Reason for revert: https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Win64%20-%20msvc/3967 Original change's description: > Update GetCurrentStackPosition to use built-in > > By using a built-in this functions works with SafeStack and doesn't > require an attribute disabling ASan. > > BUG= chromium:864705 > > Change-Id: I20cc818f1a0724a017a4f7f9ae3cd8fedb6245ee > Reviewed-on: https://chromium-review.googlesource.com/1141045 > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > Reviewed-by: Clemens Hammacher <clemensh@chromium.org> > Cr-Commit-Position: refs/heads/master@{#54884} TBR=clemensh@chromium.org,vtsyrklevich@chromium.org Change-Id: I779091eb7e98f6a8920e274df60e35693bfdc512 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:864705 Reviewed-on: https://chromium-review.googlesource.com/1161881 Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#54886} [modify] https://crrev.com/02b85b197763b2e71d10083f98f509f7c275736c/src/utils.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/fa2dc8dbad5a13bd1e1a13daf71e7cbcddeb5562 commit fa2dc8dbad5a13bd1e1a13daf71e7cbcddeb5562 Author: Vlad Tsyrklevich <vtsyrklevich@chromium.org> Date: Mon Aug 06 08:09:13 2018 Reland "Update GetCurrentStackPosition to use built-in" By using a built-in this functions works with SafeStack and doesn't require an attribute disabling ASan. BUG= chromium:864705 Change-Id: I898d42c0b39b07300f1679eba11e7f50cad42120 Reviewed-on: https://chromium-review.googlesource.com/1162669 Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#54912} [modify] https://crrev.com/fa2dc8dbad5a13bd1e1a13daf71e7cbcddeb5562/src/utils.cc [modify] https://crrev.com/fa2dc8dbad5a13bd1e1a13daf71e7cbcddeb5562/src/utils.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/eeab6d715f91856d50cffd6428e5740261b1f27b commit eeab6d715f91856d50cffd6428e5740261b1f27b Author: Vlad Tsyrklevich <vtsyrklevich@chromium.org> Date: Wed Aug 08 21:06:02 2018 SafeStack: Package SafeStack runtime for Linux Bug: 864705 Change-Id: I8ebce1fd5911f90b8313a27f9d9e11e229ec0b6b Reviewed-on: https://chromium-review.googlesource.com/1162757 Commit-Queue: Vlad Tsyrklevich <vtsyrklevich@chromium.org> Reviewed-by: Nico Weber <thakis@chromium.org> Cr-Commit-Position: refs/heads/master@{#581690} [modify] https://crrev.com/eeab6d715f91856d50cffd6428e5740261b1f27b/docs/updating_clang.md [modify] https://crrev.com/eeab6d715f91856d50cffd6428e5740261b1f27b/tools/clang/scripts/package.py
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/d79d92d7d387ea9d9b705868821091ce91235395 commit d79d92d7d387ea9d9b705868821091ce91235395 Author: Vlad Tsyrklevich <vtsyrklevich@chromium.org> Date: Tue Aug 14 20:25:34 2018 Disable SafeStack for test that requires direct stack access Bug: 864705 Change-Id: I4fbcd32c785dbca8de023d474956d8b1f1a308e4 Reviewed-on: https://chromium-review.googlesource.com/1159682 Reviewed-by: Lei Zhang <thestig@chromium.org> Commit-Queue: Vlad Tsyrklevich <vtsyrklevich@chromium.org> Cr-Commit-Position: refs/heads/master@{#583012} [modify] https://crrev.com/d79d92d7d387ea9d9b705868821091ce91235395/base/debug/proc_maps_linux_unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/0f1d13460f835e9ba5a63b1a0273d558c1194bbd commit 0f1d13460f835e9ba5a63b1a0273d558c1194bbd Author: Vlad Tsyrklevich <vtsyrklevich@chromium.org> Date: Tue Aug 14 22:20:02 2018 SafeStack: Make oilpan unsafe stack aware SafeStack [1] introduces a secondary thread stack called the unsafe stack that also needs to be scanned for object references. Introduce matching logic in oilpan to scan the unsafe stack for heap references. [1] https://clang.llvm.org/docs/SafeStack.html Bug: 864705 Change-Id: I376077bd985e2077aa3771101c1822e1570c7807 Reviewed-on: https://chromium-review.googlesource.com/1169772 Reviewed-by: Kentaro Hara <haraken@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Vlad Tsyrklevich <vtsyrklevich@chromium.org> Cr-Commit-Position: refs/heads/master@{#583056} [modify] https://crrev.com/0f1d13460f835e9ba5a63b1a0273d558c1194bbd/third_party/blink/renderer/platform/heap/thread_state.cc [modify] https://crrev.com/0f1d13460f835e9ba5a63b1a0273d558c1194bbd/third_party/blink/renderer/platform/heap/thread_state.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/091eaad72cc76e55eed3ee4a396b8d2f2407a763 commit 091eaad72cc76e55eed3ee4a396b8d2f2407a763 Author: Vlad Tsyrklevich <vtsyrklevich@chromium.org> Date: Wed Aug 15 22:14:15 2018 SafeStack: Add a SafeStack build configuration Bug: 864705 Change-Id: Ifefb1df326d50f321bb2936979284c545156b38d Reviewed-on: https://chromium-review.googlesource.com/1141048 Reviewed-by: Nico Weber <thakis@chromium.org> Commit-Queue: Vlad Tsyrklevich <vtsyrklevich@chromium.org> Cr-Commit-Position: refs/heads/master@{#583414} [modify] https://crrev.com/091eaad72cc76e55eed3ee4a396b8d2f2407a763/build/config/compiler/BUILD.gn [modify] https://crrev.com/091eaad72cc76e55eed3ee4a396b8d2f2407a763/build/config/sanitizers/BUILD.gn [modify] https://crrev.com/091eaad72cc76e55eed3ee4a396b8d2f2407a763/build/config/sanitizers/sanitizers.gni [add] https://crrev.com/091eaad72cc76e55eed3ee4a396b8d2f2407a763/build/linux/chrome.safestack.map [modify] https://crrev.com/091eaad72cc76e55eed3ee4a396b8d2f2407a763/chrome/BUILD.gn
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/6755efb132f386a07cb03bd194988de45f368585 commit 6755efb132f386a07cb03bd194988de45f368585 Author: Vlad Tsyrklevich <vtsyrklevich@chromium.org> Date: Wed Aug 22 20:55:36 2018 SafeStack: Fix blink v8 initialization Currently, the blink v8 initialization code uses a stack address-taken variable to read the stack position. This fails with SafeStack because it reads an address on the unsafe stack. Make it match the code in v8 to read the stack position safely with either ASAN or SafeStack [1] by using a compiler intrinsic. [1] https://crrev.com/c/1162669 Bug: 864705 Change-Id: Ib972540eb0264d9f737eb8bc40c601b8b2cf1ab0 Reviewed-on: https://chromium-review.googlesource.com/1179265 Reviewed-by: Kentaro Hara <haraken@chromium.org> Commit-Queue: Vlad Tsyrklevich <vtsyrklevich@chromium.org> Cr-Commit-Position: refs/heads/master@{#585239} [modify] https://crrev.com/6755efb132f386a07cb03bd194988de45f368585/third_party/blink/renderer/bindings/core/v8/v8_initializer.cc [modify] https://crrev.com/6755efb132f386a07cb03bd194988de45f368585/third_party/blink/renderer/platform/wtf/compiler.h [modify] https://crrev.com/6755efb132f386a07cb03bd194988de45f368585/third_party/blink/renderer/platform/wtf/stack_util.cc [modify] https://crrev.com/6755efb132f386a07cb03bd194988de45f368585/third_party/blink/renderer/platform/wtf/stack_util.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/84c270171d07c1199f4c97ef18594949df520054 commit 84c270171d07c1199f4c97ef18594949df520054 Author: Vlad Tsyrklevich <vtsyrklevich@chromium.org> Date: Mon Sep 10 19:29:06 2018 SafeStack: Add SafeStack Linux ToT builder Bug: 864705 Change-Id: I2b929b8655092520b755693c92ee34990d5e1dec Reviewed-on: https://chromium-review.googlesource.com/1184152 Commit-Queue: Vlad Tsyrklevich <vtsyrklevich@chromium.org> Reviewed-by: Dirk Pranke <dpranke@chromium.org> Reviewed-by: John Budorick <jbudorick@chromium.org> Cr-Commit-Position: refs/heads/master@{#590021} [modify] https://crrev.com/84c270171d07c1199f4c97ef18594949df520054/infra/config/global/luci-milo.cfg [modify] https://crrev.com/84c270171d07c1199f4c97ef18594949df520054/testing/buildbot/chromium.clang.json [modify] https://crrev.com/84c270171d07c1199f4c97ef18594949df520054/testing/buildbot/waterfalls.pyl [modify] https://crrev.com/84c270171d07c1199f4c97ef18594949df520054/tools/mb/mb_config.pyl
The following revision refers to this bug: https://chromium.googlesource.com/chromium/tools/build/+/2d20fde40d92c418a9811df792f650d5d46aaf2b commit 2d20fde40d92c418a9811df792f650d5d46aaf2b Author: Vlad Tsyrklevich <vtsyrklevich@chromium.org> Date: Mon Sep 10 19:38:49 2018 SafeStack: Add SafeStack Linux ToT builder Bug: 864705 Change-Id: I854672ebd2dcd824c3b6183c1f022cda674a11da Reviewed-on: https://chromium-review.googlesource.com/1184145 Reviewed-by: Dirk Pranke <dpranke@chromium.org> Commit-Queue: Vlad Tsyrklevich <vtsyrklevich@chromium.org> [modify] https://crrev.com/2d20fde40d92c418a9811df792f650d5d46aaf2b/scripts/slave/recipe_modules/chromium_tests/chromium_clang.py [modify] https://crrev.com/2d20fde40d92c418a9811df792f650d5d46aaf2b/masters/master.chromium.clang/builders.pyl
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/2e54ce1645e19457013dd47be77de7d0e764d0aa commit 2e54ce1645e19457013dd47be77de7d0e764d0aa Author: Vlad Tsyrklevich <vtsyrklevich@chromium.org> Date: Mon Sep 17 20:31:19 2018 SafeStack: Add missing ToT bot configuration Updated the bot configuration to match other clang buildbots. Bug: 864705 Change-Id: Ia14a200bf08e6f9e9ff1173e348db70e10322164 Reviewed-on: https://chromium-review.googlesource.com/1228510 Reviewed-by: Vadim Shtayura <vadimsh@chromium.org> Commit-Queue: Vlad Tsyrklevich <vtsyrklevich@chromium.org> Cr-Commit-Position: refs/heads/master@{#591804} [modify] https://crrev.com/2e54ce1645e19457013dd47be77de7d0e764d0aa/infra/config/global/cr-buildbucket.cfg [modify] https://crrev.com/2e54ce1645e19457013dd47be77de7d0e764d0aa/infra/config/global/luci-milo.cfg [modify] https://crrev.com/2e54ce1645e19457013dd47be77de7d0e764d0aa/infra/config/global/luci-scheduler.cfg
Deprecating SafeStack support in bug 908597 .
Comment 1 by bugdroid1@chromium.org
, Aug 2