Skip to content

A state var named _get_was_touched silently disables disk-state persistence #7091

Description

@masenf
  • Cluster: event_hotpath | Regression: no | Verifier: pending
  • Repro: add _get_was_touched: int = 7 to a state, run with the default disk state manager, send one
    event, wait past the flush debounce: every flush logs Error processing write queue: TypeError("'int' object is not callable") and shutdown ends in a traceback from
    istate/manager/token.py get_and_reset_touched_state. State is never persisted. Reads and writes of
    the var in the browser work, so the failure is invisible from the UI.
  • Note: perf: cut per-event overhead on the state/event hot path (−28% CPU/event, +20% throughput) #7025's own unit test uses this exact name as a supported collision, while the runtime call
    site (which predates the PR) calls it as a method.
  • Evidence: event_hotpath/logs/gwt_disk_smoke.trimmed.log, gwt_disk_base0910.trimmed.log.

Expected: reject the reserved-name collision at state definition time or preserve the internal method call so disk persistence succeeds. Related #7074 / #7077 concern inherited base-var shadowing; this is a collision with a framework method, so those reports do not cover this failure.

Source: prerelease finding 010, recorded against Reflex 0.9.11a1 and compared with 0.9.10.post2. See the full campaign report and cluster notes and reproduction artifacts. Findings and verification status above are from that campaign; this filing does not claim a new browser rerun.

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