Skip to content

gc-call-effects UNSAFE drift on main since #11682/#11683: js_abort_* and js_error_is_error now Reenters (windows/macos tables stale) #11695

Description

@proggeramlug

The gc-call-effects jobs for windows-x86_64 and macos-aarch64 fail on main's own push run for 23d563404 (run 36653831017, jobs 109710794808 and 109710794730) with UNSAFE drift:

UNSAFE: 4 symbol(s) whose committed class is weaker than the archives prove (codegen would skip a statepoint the runtime needs):
  js_abort_controller_signal: committed Leaf, archives say Reenters
  js_abort_signal_is_aborted: committed Leaf, archives say Reenters
  js_abort_signal_throw_if_aborted: committed ThrowOnly, archives say Reenters
  js_error_is_error: committed Leaf, archives say Reenters

The paths it reports go through perry_runtime::event_target::state::get_slot → js_object_get_symbol_property_with_receiver, and through event_target::is_dom_exception_object. That is the code #11682 ("honest handles: EventTarget family are real objects") changed.

The parent run on 7fa094cb4 (36633236189) had only SAFE drift (24 symbols), so this appeared with #11682/#11683. The committed crates/perry-codegen/src/gc_effects/{windows-x86_64,macos-aarch64}.tsv need regenerating from those commits' archives. Until they are, codegen may skip a statepoint the runtime needs at these four calls, which is a real GC-safety gap, not just a red gate.

Every PR tested merged with current main inherits this failure. #11676 hit it in run 36653797552 with the identical four symbols.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions