Skip to content

Context collapse aliases synthetic-dispatch receivers with list/tuple allocations, polluting object catalogs #608

Description

@khatchad

Summary

The root cause beneath the #603 catalog crash appears to be a context-sensitivity gap: a 1-CFA context collapse aliases a synthetic-dispatch receiver (an op object) with a list/tuple allocation, so a reflective method-name read lands as a field in the list/tuple's object catalog.

Mechanism (traced from the modeling)

The synthetic do bodies in tensorflow.xml dispatch helper methods via virtual calls, e.g. <call name="read_data" type="virtual" arg0="...">. A virtual call resolves through the trampoline's reflective method lookup, which reads the method name (read_data) off the receiver. That read registers read_data as a reflected field on the receiver's allocation, so it shows up in that allocation's object catalog.

All four read_data virtual calls dispatch on op objects (SparseTensor, Model, the MNIST read_data_sets self), never on a list/tuple. Yet #603 crashes while walking a list/tuple catalog that contains read_data. By elimination, the dispatch receiver's points-to set must alias a list/tuple allocation — i.e., a 1-CFA context collapse mixes the op-object receiver with a list/tuple. That collapse is what drops read_data into a list/tuple catalog alongside its real integer element keys.

Why this is the root, not #603 or #380

Status

Inferred by elimination from the modeling, not yet confirmed by a dumped points-to set. Confirmation needs a reproduction over gpt-2-tensorflow2.0 / TensorFlow-Examples (the subjects that surface #603) with the dispatch-receiver PTS dumped at the polluting read. The fix is context sensitivity sufficient to keep op-object dispatch receivers distinct from list/tuple allocations.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No fields configured for Bug.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions