The GitHub Actions job "Pull Requests" on pekko.git/fix/actor-graph-interpreter-initial-shell-leak has succeeded. Run started by GitHub user He-Pin (triggered by He-Pin).
Head commit for run: 6bc01426582dd5415768ba019af4dff7228ff434 / 虎鸣 <[email protected]> fix: release reference to initial interpreter shell after it is shut down Motivation: ActorGraphInterpreter retains a strong reference to its initial GraphInterpreterShell via the _initial constructor val. When the actor outlives the initial shell (e.g., while hosting subfused interpreters registered via registerShell), the initial shell and all its logics cannot be garbage collected for the lifetime of the actor. Modification: - Convert _initial from a constructor val to a private var - Set _initial = null at the end of preStart() after tryInit completes - Fix debug println in tryInit to reference the shell parameter instead of _initial (which may be null after preStart) - Add behavioral test using flatMapConcat which triggers subfusing via SubFusingActorMaterializerImpl, verifying the actor continues processing subfused shells after the initial shell is released Result: The initial GraphInterpreterShell and its stage logics become eligible for garbage collection once the initial shell shuts down, reducing memory retention in long-lived ActorGraphInterpreter actors. Tests: - stream-tests/testOnly ActorGraphInterpreterSpec: 12/12 passed References: None - memory leak fix Report URL: https://github.com/apache/pekko/actions/runs/27616790486 With regards, GitHub Actions via GitBox --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
