Parsing should not crash on failure to launch Z3 process

Open
#3,551 8 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

  • #3552 by @FWBlueWizard — closed without merging

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
35/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Stale
Tech stack
python
Domain
frontend

Research direction

Start by tracing the frontend's Z3 process launch and process-pool error handling, then investigate how the OS file limit failure appears in CI. Done means a failed launch no longer crashes parsing and the frontend retries according to the agreed limit and interval; the payload does not name a file or test.

Written by the indexing model from the issue text.

Description

We're seeing a lot of flakiness on CI because we're hitting some OS file limit when launching too many z3 processes.

I guess this could be because th efrontend is launching a bunch of Z3 processes in a process pool, and triggering that limit.

One simple solution to this would be for the frontend to block when it fails to launch a Z3 process, and try again in a small time interval later, maybe a set amount of times. It could pause for 0.1s up to 5 times, trying to launch z3 processes.

We will also investigate being smarter about using kserver in pyk when launchnig a bunch of proofs in parallel, but the frontend not crashing on this case would also be nice.

Dominant language
Python
Stars
591
Forks
163
PR merge metrics
No merged PRs in 30d

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from runtimeverification/k

All issues in runtimeverification/k

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.