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]

Reply via email to