Skip to content

test: skip finalizerinvariants.go on riscv-qemu - #5680

Closed
deadprogram wants to merge 1 commit into
tinygo-org:devfrom
deadprogram:skip-finalizerinvariants-riscv
Closed

deadprogram wants to merge 1 commit into
tinygo-org:devfrom
deadprogram:skip-finalizerinvariants-riscv

Conversation

@deadprogram

@deadprogram deadprogram commented Sep 13, 2026

Copy link
Copy Markdown
Member

The test TestBuild/EmulatedRISCV/finalizerinvariants.go fails sometimes in CI. The run stops and the 2m timeout gives context deadline exceeded. See https://github.com/tinygo-org/tinygo/actions/runs/34747497323/job/103697999692

CI speed is not the cause. I ran the same binary locally with the same qemu command. 10 of 100 runs failed. A good run takes approximately 0.9s. 5 runs stopped and did not continue. 5 runs failed with mcause=5, which is a load access fault, in runtime.scanConservative. In one stopped run, one hart was in runtime.runGC and the other three harts were in runtime.schedulerUnlockAndWait. Thus the stop-the-world operation does not complete. The test testdata/gc.go passed 40 of 40 runs on the same target. Thus the fault is in the finalizer code with scheduler=cores.

A longer timeout does not correct this, because the run stops for an unlimited time, and the faults occur again.

This change skips the test on riscv-qemu, near the same skip for simavr. Issue #5679 contains the full data and the procedure to cause the fault. Remove this skip when #5679 is corrected.

The finalizer code stops or fails on multicore RISC-V. Locally, 10 of 100
runs fail. 5 runs stop, with one hart in runGC and the other harts in
schedulerUnlockAndWait. 5 runs fail with mcause=5 in runtime.scanConservative.
Skip the test on this target until tinygo-org#5679 is corrected.
@deadprogram

Copy link
Copy Markdown
Member Author

Closed. PR #5681 replaces this one. The branch is now in the tinygo-org repository.

@deadprogram
deadprogram deleted the skip-finalizerinvariants-riscv branch September 13, 2026 10:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant