Can't load replay schedule for max_steps failures
- Dominant language
- Rust
- Stars
- 1.1k
- Forks
- 59
- Avg merge
- 4d 2h
- Merged PRs (30d)
- 15
Description
I have a [shuttle test](https://github.com/chc4/samsara/blob/4799ed47775882c1adf224651e9380f882f5bdff/src/test.rs#L204) for a crate I wrote. It occasionally hits a deadlock that shuttle reports via hitting "exceeded max_steps bound ". It gives a (very big) failing schedule that I should pass to replay in order to reproduce the issue.
The problems are two fold:
1) replay_from_file can't load the outputted schedule string, always panicking with "invalid schedule"
2) ~~reducing the max_steps via a custom Config.max_steps so that the schedule is able to be embedded as an argument to replay directly ends with shuttle erroring out with "expected context switch but next schedule step is random choice".~~
This unfortunately makes shuttle kind of useless for trying to fix this bug, since I can't exercise the reported deadlock to try and debug it under gdb or something to get a stacktrace of the stuck thread.
Contributor guide
Research direction
Start with replay_from_file and the custom Config.max_steps path described in the report, using the linked src/test.rs shuttle test as the reproduction entry point. Confirm that the max_steps failure schedule can be loaded and replayed without the reported “invalid schedule” or context-switch/random-choice errors, and that the deadlock can be exercised.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- testing-qa
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100