Skip to content

Replay fault handling (from #12329) should support eventualOutcome #12480

@erights

Description

@erights

This issue was suggested by @michaelfig at #12329 (comment)

In the replay fault handling (to be) introduced by #12329 , the fault handler might be called because an actual guest call might not match the recorded guest call. For the fault handler to emulate the host behavior that the guest call expects, the fault handler should be provided with the actual guest arguments, the recorded guest argument, and the recorded guest result, i.e., the guest manifestation of the result that was returned by the host to the guest.

The fault handler could then decide to

  • return to the actual call what was returned to the recorded call.
  • something derived from what was returned
  • something else.

However, #12329 does not provide the recorded guest result in its description of the fault. The logger does provide adequate query methods for the fault handler to figure this out, so this is not a fundamental problem. But that is so awkward that we should fix this.

The expectedOutcome should be implemented for calls by peeking ahead for the corresponding doReturn or doThrow. For sends, it should be the immediately returned guest promise.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions