Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Kani produces no output on non-termination #493

Closed
tedinski opened this issue Sep 16, 2021 · 4 comments · Fixed by #1433
Closed

Kani produces no output on non-termination #493

tedinski opened this issue Sep 16, 2021 · 4 comments · Fixed by #1433
Assignees
Labels
[C] Bug This is a bug. Something isn't working. [E] User Experience An UX enhancement for an existing feature. Including deprecation of an existing one.

Comments

@tedinski
Copy link
Contributor

When running RMC on code with loops and without an --unwind bound, RMC will often not terminate.

But, it presently produces no output at all during this infinite loop, whereas CBMC produces continuous stream of logging data that helps indicate what's gone wrong.

I believe this is because at some point we're buffering stdout from cbmc and only printing it once it's finished. We should allow these log messages to stream to the terminal, so we can see them during a non-termination problem.

@tedinski tedinski added the [C] Bug This is a bug. Something isn't working. label Sep 16, 2021
@adpaco-aws
Copy link
Contributor

Note that this issue may also appear in examples without loops. Running with --unwind 0 will allow the example to terminate. The dashboard has had problems with this (see #482 and its fix #492) and I would expect some more.

We could also consider running --unwind 0 by default. Thoughts?

@tedinski
Copy link
Contributor Author

That's an interesting idea. The current default was presumably for soundness, but now we have unwinding assertions, right?

@adpaco-aws
Copy link
Contributor

Yes, unwinding assertions are on by default so in principle passing --unwind 0 (or higher) will assert if it is not enough.

@celinval celinval added the [E] User Experience An UX enhancement for an existing feature. Including deprecation of an existing one. label Mar 16, 2022
@jaisnan
Copy link
Contributor

jaisnan commented May 18, 2022

We're planning on addressing this issue by -

  1. Piping the output instead of writing it to a file within the rust code.
  2. Add functionality to read from stream in the Python Post processing.

@jaisnan jaisnan self-assigned this May 18, 2022
@jaisnan jaisnan moved this to In Progress in Kani v0.3 May 31, 2022
@jaisnan jaisnan moved this to In Progress in Kani v0.4 Jun 14, 2022
@adpaco-aws adpaco-aws self-assigned this Jun 28, 2022
@adpaco-aws adpaco-aws moved this to In Progress in Kani v0.6 Jul 12, 2022
@adpaco-aws adpaco-aws moved this to In Progress in Kani v0.7 Jul 12, 2022
@adpaco-aws adpaco-aws moved this to Todo in Kani v0.8 Jul 26, 2022
@adpaco-aws adpaco-aws moved this from Todo to In Progress in Kani v0.8 Jul 26, 2022
@adpaco-aws adpaco-aws changed the title RMC produces no output on non-termination Kani produces no output on non-termination Aug 1, 2022
Repository owner moved this from In Progress to Done in Kani v0.4 Aug 9, 2022
Repository owner moved this from In Progress to Done in Kani v0.3 Aug 9, 2022
Repository owner moved this from In Progress to Done in Kani v0.7 Aug 9, 2022
Repository owner moved this from In Progress to Done in Kani v0.8 Aug 9, 2022
Repository owner moved this from In Progress to Done in Kani v0.6 Aug 9, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[C] Bug This is a bug. Something isn't working. [E] User Experience An UX enhancement for an existing feature. Including deprecation of an existing one.
Projects
No open projects
Status: Done
Status: Done
Status: Done
Status: Done
Status: Done
Development

Successfully merging a pull request may close this issue.

4 participants