• Samuel Groß's avatar
    Revert "[sandbox] Forbid double-initialization of ExternalPointerSlots" · f7eda75e
    Samuel Groß authored
    This reverts commit a31e8f24.
    
    Reason for revert: Causes DCHECK failures with --stress-snapshot
    
    Original change's description:
    > [sandbox] Forbid double-initialization of ExternalPointerSlots
    >
    > Double initialization may cause the ExternalPointerTable compaction
    > algorithm to behave non-optimally: Consider the case of an Entry E1 that
    > is owned by a HeapObject O and is marked for evacuation during GC
    > marking. In that case, a new entry E2 is allocated for it, and during
    > sweeping, E1 will be evacuated into E2 and the Handle in O updated to
    > point to E2. However, if a new entry E3 for O is allocated before
    > sweeping, then during sweeping E3 (instead of E1) will be moved into E2.
    > This may then violate the invariant that the compaction algorithms
    > always evacuates an entry out of the evacuation area.
    >
    > This CL therefore forbids double initializaiton of external pointer
    > slots and adds DCHECKs to attempt to catch these in debug builds.
    >
    > Bug: v8:10391
    > Change-Id: I128dc930e8b3f863dab18ba648f34d68d8cb276b
    > Cq-Include-Trybots: luci.v8.try:v8_linux64_heap_sandbox_dbg_ng,v8_linux_arm64_sim_heap_sandbox_dbg_ng
    > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3856563
    > Reviewed-by: Igor Sheludko <ishell@chromium.org>
    > Commit-Queue: Samuel Groß <saelo@chromium.org>
    > Cr-Commit-Position: refs/heads/main@{#82729}
    
    Bug: v8:10391
    Change-Id: I37e6728cc16fe79fa7d743417dc9938d58fb0474
    Cq-Include-Trybots: luci.v8.try:v8_linux64_heap_sandbox_dbg_ng,v8_linux_arm64_sim_heap_sandbox_dbg_ng
    No-Presubmit: true
    No-Tree-Checks: true
    No-Try: true
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3857422
    Commit-Queue: Samuel Groß <saelo@chromium.org>
    Reviewed-by: 's avatarIgor Sheludko <ishell@chromium.org>
    Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
    Cr-Commit-Position: refs/heads/main@{#82732}
    f7eda75e
slots-inl.h 9.3 KB