Skip to content

Preserve IFDS return traces and actor request lifecycle in #225 - #429

Draft
CaelmBleidd wants to merge 2 commits into
sergey/ifdsfrom
caelmbleidd/review-j225-20261008
Draft

CaelmBleidd wants to merge 2 commits into
sergey/ifdsfrom
caelmbleidd/review-j225-20261008

Conversation

@CaelmBleidd

Copy link
Copy Markdown
Member

Interprocedural traces skip the callee body because the return edge points from its entry rather than its exit. Concurrent completion waits overwrite each other, while closing the actor system leaves request/completion promises unresolved; a failed ask builder also counts an unsent message.

Connect callee exit to caller return, retain all completion waiters, attach owned promises to system cancellation and clean them up on return. Isolate failed request replies through a request-local SupervisorJob so one failed reply does not kill the system. Increment the send count only after message construction succeeds.

This correction targets the original #225 branch without rewriting it. Current develop integration and broader IFDS ownership/supervision decisions remain separate gates.

Validation: the actual production trace fixture failed before and passed after the graph correction. All four new actor lifecycle regressions failed on the original source; all nine actor tests (including existing tests and failed-reply isolation) passed after the final correction. Focused harnesses compile the real graph/domain and complete actor sources; they do not claim full analyzer/runtime integration. The historical linked-worktree Gradle hook could not locate its Git root; the actor commit records explicit focused tests and diff-check as its validation.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant