Skip to content

Report the crafting state when the furnace crafting game tests time out - #236

Merged
rubensworks merged 1 commit into
master-1.21-ltsfrom
test/diagnose-furnace-crafting-timeouts
Sep 12, 2026
Merged

Report the crafting state when the furnace crafting game tests time out#236
rubensworks merged 1 commit into
master-1.21-ltsfrom
test/diagnose-furnace-crafting-timeouts

Conversation

@rubensworks

Copy link
Copy Markdown
Member

testItemsCraftIngotsAndExtractFromStorage failed sporadically with:

testitemscraftingotsandextractfromstorage failed at -9268589, -60, 2073166! Slot 0 item is incorrect, was 1 minecraft:raw_iron

The message says what did not happen, but nothing about why, so a sporadic failure like this leaves nothing to work with. Both furnace tests now also report the crafting jobs of their interface (status, ingredient buffer, number of running operations), the interface's result buffer, and the contents of the furnace:

Slot 0 item is incorrect, was 1 minecraft:raw_iron, jobs=[#42 processing amount=1 operations=1 inputs=[] ] results=[] machine=[0=1 minecraft:raw_iron 1=62 minecraft:coal ]

That separates the possible causes at a glance:

  • no jobs at all: the crafting writer stopped scheduling
  • a pending job with empty inputs and missing-ingredients: its ingredient buffer was never (re)filled
  • a processing job with a running operation, and an ingot left in the furnace: the output never reached the network
  • a non-empty result buffer: the interface is blocked on storage

Why only diagnostics

I could not reproduce the failure here: running the scenario ~600 times (40 concurrent copies of the test per game test server run) gave no failure at all. Instrumenting those copies to log the tick at which they succeed shows that the test finishes between 1508 and 1908 ticks, with a median of 1608, out of the 4000 ticks it is given. The reported failure is therefore not a test that was merely slow: with one raw iron left, the crafting pipeline stopped making progress for over 2000 ticks somewhere around the 7th of its 8 smelting operations. Raising the timeout would not have helped, so this PR does not touch it, and instead makes the next occurrence say where it got stuck.

For reference: master-1.21, master-26 and master-26-lts give these two tests TIMEOUT * 5 instead of TIMEOUT * 2, which dates back to the merge in f15673c and was never brought back to master-1.21-lts. Happy to align that here too if you want the branches consistent.

🤖 Generated with Claude Code

https://claude.ai/code/session_01CYLrSSsEJgQocz2Z4BSFfU


Generated by Claude Code

testItemsCraftIngotsAndExtractFromStorage failed sporadically with one
raw iron left in the input chest, and the message only said which item
was left, which is not enough to tell a slow craft from a stuck one.

Both furnace tests now also report the crafting jobs of their interface
with their status, ingredient buffer and running operations, the
interface's result buffer, and the contents of the furnace.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CYLrSSsEJgQocz2Z4BSFfU
@rubensworks
rubensworks merged commit 417689d into master-1.21-lts Sep 12, 2026
7 checks passed
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