micropython / micropython/micropython

tests: cmdline/repl_lock.py and repl_cont.py intermittent failures

Open
#18,868 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

tests
Dominant language
C
Stars
22.1k
Forks
9k
Avg merge
6d 4h
Merged PRs (30d)
16

Description

Two REPL tests fail intermittently on CI:

cmdline/repl_lock.py — fails on QEMU ARM and RISCV64. The expected
output shows >>> micropython.heap_lock() but the actual output drops
the >>> prompt prefix. Observed 3 times in 20 runs with logs. This is
a REPL prompt timing issue under QEMU emulation.

cmdline/repl_cont.py — fails on macOS. Differences in quote escaping
in REPL continuation prompts ("'" vs '\''). Observed once in 20 runs.
The macOS job has historically been the second most failure-prone job
(4.3% failure rate, 25 failures over 14 months) with all failures
attributed to REPL-related issues. The August 2025 spike (11 macOS
failures) correlates with the GitHub Actions macOS 15 runner migration.

PR #18861 now ignores these failures in CI.

See analysis: https://gist.github.com/andrewleech/5686ed5242e0948d8679c432579e002e

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.

Research direction

Start with cmdline/repl_lock.py and cmdline/repl_cont.py, then review the linked failure analysis and CI logs for the affected QEMU and macOS jobs. Re-run both tests repeatedly on those targets and compare prompt output and quote escaping; done means the intermittent mismatches are resolved rather than merely ignored by PR #18861.

Written by the indexing model from the issue text.

Assessment

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.