Skip to content

[stm] Error resilience behaves strangely with Stm.join #9204

@ejgallego

Description

@ejgallego

Opening the following file https://github.com/ejgallego/coq-serapi/blob/b62ae5fc928fa2f098df1e2308d6e1244521d99e/tests/fail/assoc.v
in CoqIDE, then go to the end.

  • The first time, it emits no error [exception], but a message in the buffer;
  • the second time, click the gears, and CoqIDE tries to close the proof, an error "no such goal" is produced,
  • and the third time, click the gears again, the CoqIDE says "All proof terms checked by the kernel", the error persists.

The problem is that Stm.join / finish returns successfully even if the bad proof is there; this seems a bad interaction with the error recovery mode. Disabling it fixes the problem.

Another variation of the bug is with -async-proofs off in CoqIDE, in this case clicking the gear will always report "All proof terms checked by the kernel".

Metadata

Metadata

Assignees

No one assigned

    Labels

    part: STMState Transition Machine, asynchronous proofs, etc.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions