You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
goto-instrument --dfcc hangs for hours on some std harnesses; --harness-timeout does not cover it #4967
Both runs went through verify-rust-std's scripts/run-kani.sh --run autoharness, which adds -Z function-contracts -Z mem-predicates -Z float-lib -Z c-ffi -Z loop-contracts -Z quantifiers -Z stubbing --no-assert-contracts --cbmc-args --object-bits 12 to the command above. The dfcc step only runs under those flags.
with Kani version: 5c2234ee5 (main of 2026-09-28) on x86_64, and 6b5e2a3 (main of 2026-08) on aarch64.
I expected to see this happen: every harness finishes, or stops at a timeout.
Instead, this happened: for a few harnesses, the goto-instrument --dfcc step never finishes. It runs at 100% CPU for hours. --harness-timeout only covers CBMC, so nothing stops it.
On x86_64, six harnesses spent 2 to 3 hours in this step and then finished on their own. All are panic, allocation-error, or backtrace code:
@srivatsansamraj this is the goto-instrument hang we both hit in the verification runs. The x86_64 part is from your report; could you check that the six harnesses and the timings are right?
Checked against the x86_64 run's samples: the six names are right. Their goto-instrument --dfcc steps ran 187, 181, 162, 151, 132 and 124 minutes, in the order listed, and then finished on their own; nothing was killed on x86_64, and CBMC then ran each harness (five hit the 60 s limit, DisplayBacktrace::fmt failed in 14 s). The Kani was 5c2234ee5, the head of #4864 on main of 2026-09-28. The run went through scripts/run-kani.sh --run autoharness, which adds -Z function-contracts -Z mem-predicates -Z float-lib -Z c-ffi -Z loop-contracts -Z quantifiers -Z stubbing --no-assert-contracts --cbmc-args --object-bits 12 to the command above. Kani runs the dfcc step only for a harness with a contract or, under -Z loop-contracts, loop contracts (kani-driver/src/call_goto_instrument.rs), so the command as written may not reach it.
Checked against the x86_64 run's samples: the six names are right. Their goto-instrument --dfcc steps ran 187, 181, 162, 151, 132 and 124 minutes, in the order listed, and then finished on their own; nothing was killed on x86_64, and CBMC then ran each harness (five hit the 60 s limit, DisplayBacktrace::fmt failed in 14 s). The Kani was 5c2234ee5, the head of #4864 on main of 2026-09-28. The run went through scripts/run-kani.sh --run autoharness, which adds -Z function-contracts -Z mem-predicates -Z float-lib -Z c-ffi -Z loop-contracts -Z quantifiers -Z stubbing --no-assert-contracts --cbmc-args --object-bits 12 to the command above. Kani runs the dfcc step only for a harness with a contract or, under -Z loop-contracts, loop contracts (kani-driver/src/call_goto_instrument.rs), so the command as written may not reach it.
Thanks for checking. I fixed the issue text: the x86_64 harnesses were not killed, they finished on their own after 2 to 3 hours. I also added the run-kani.sh flags, since the dfcc step only runs with -Z loop-contracts.
Activity
Tianshu-Huang commentedon Oct 5, 2026
@srivatsansamraj this is the goto-instrument hang we both hit in the verification runs. The x86_64 part is from your report; could you check that the six harnesses and the timings are right?
srivatsansamraj commentedon Oct 5, 2026
Checked against the x86_64 run's samples: the six names are right. Their
goto-instrument --dfccsteps ran 187, 181, 162, 151, 132 and 124 minutes, in the order listed, and then finished on their own; nothing was killed on x86_64, and CBMC then ran each harness (five hit the 60 s limit,DisplayBacktrace::fmtfailed in 14 s). The Kani was5c2234ee5, the head of #4864 on main of 2026-09-28. The run went throughscripts/run-kani.sh --run autoharness, which adds-Z function-contracts -Z mem-predicates -Z float-lib -Z c-ffi -Z loop-contracts -Z quantifiers -Z stubbing --no-assert-contracts --cbmc-args --object-bits 12to the command above. Kani runs the dfcc step only for a harness with a contract or, under-Z loop-contracts, loop contracts (kani-driver/src/call_goto_instrument.rs), so the command as written may not reach it.Tianshu-Huang commentedon Oct 5, 2026
Thanks for checking. I fixed the issue text: the x86_64 harnesses were not killed, they finished on their own after 2 to 3 hours. I also added the run-kani.sh flags, since the dfcc step only runs with -Z loop-contracts.