Skip to content

RPC timeout during proving state #1215

@benbierens

Description

@benbierens

Found by Wings in vaclab-codex node 3 in the testnet.

A bout of RPC connection timeouts seem to be able to cause the node to crash when a sales statemachine is in the proving state.

While we definitely need to figure out and reduce the RPC connection timeout issue, if they occur they should not be able to crash the node.

WRN 2025-05-04 16:40:58.382+00:00 Exception in blockexc read loop            topics="codex blockexcnetworkpeer" tid=1 msg="Stream Closed!"                            
ERR 2025-05-04 16:40:58.382+00:00 Cannot retrieve the request                topics="marketplace onchain market" tid=1 error="Failed to send POST Request with JSON-RPC: Connection timed out"                                                                                                                                              
ERR 2025-05-04 16:40:58.382+00:00 Error while waiting for expiry to lapse    topics="marketplace sales" tid=1 error="Failed to get request expiry: Failed to send POST Request with JSON-RPC: Connection timed out"                                                                                                                         
ERR 2025-05-04 16:40:58.382+00:00 Error during SalePreparing.run             topics="marketplace sales preparing" tid=1 error="Failed to fetch the slot state from the Marketplace contract: Failed to send POST Request with JSON-RPC: Connection timed out"                                                                               
ERR 2025-05-04 16:40:58.382+00:00 Proving failed                             topics="marketplace sales proving" tid=1 msg="Failed to get future proof requirement: Failed to send POST Request with JSON-RPC: Connection timed out" typ="ref CatchableError" stack="/src/codex.nim(142)      codex\n/src/vendor/nim-chronos/chronos/internal/asyncfutures.nim(150) _ZN11asyncengine4pollE\n/src/vendor/nim-chronos/chronos/internal/asyncengine.nim(371) _ZN12asyncfutures14futureContinueE3refIN7futures26FutureBasecolonObjectType_EE\n/src/codex/contracts/market.nim(63) _ZN19willProofBeRequired50willProofBeRequired\n/src/vendor/nim-chronos/chronos/internal/asyncengine.nim(345) _ZN6system18rawWriteStackTraceE3varI3seqIN6system15StackTraceEntryEEE\n/src/vendor/nimbus-build-system/vendor/Nim/lib/system/stacktraces.nim(62) _ZN11stacktraces30auxWriteStackTraceWithOverrideE3varI3seqIN6system15StackTraceEntryEEE\n[[reraised from:\n/src/codex.nim(142)      codex\n/src/vendor/nim-chronos/chronos/internal/asyncengine.nim(150) _ZN11asyncengine4pollE\n/src/vendor/nim-chronos/chronos/internal/asyncfutures.nim(371) _ZN12asyncfutures14futureContinueE3refIN7futures26FutureBasecolonObjectType_EE\n/src/vendor/nim-chronos/chronos/internal/asyncmacro.nim(450) _ZN19willProofBeRequired50willProofBeRequired\n/src/vendor/nimbus-build-system/vendor/Nim/lib/system/stacktraces.nim(62) _ZN11stacktraces30auxWriteStackTraceWithOverrideE3varI3seqIN6system15StackTraceEntryEEE\n]]\n[[reraised from:\n/src/codex.nim(142)      codex\n/src/vendor/nim-chronos/chronos/internal/asyncengine.nim(150) _ZN11asyncengine4pollE\n/src/vendor/nim-chronos/chronos/internal/asyncfutures.nim(371) _ZN12asyncfutures14futureContinueE3refIN7futures26FutureBasecolonObjectType_EE\n/src/codex/sales/states/proving.nim(79) _ZN9proveLoop9proveLoopE3refIN7futures26FutureBasecolonObjectType_EE\n/src/vendor/nimbus-build-system/vendor/Nim/lib/system/stacktraces.nim(62) _ZN11stacktraces30auxWriteStackTraceWithOverrideE3varI3seqIN6system15StackTraceEntryEEE\n]]\n[[reraised from:\n/src/codex.nim(142)      codex\n/src/vendor/nim-chronos/chronos/internal/asyncengine.nim(150) _ZN11asyncengine4pollE\n/src/vendor/nim-chronos/chronos/internal/asyncfutures.nim(371) _ZN12asyncfutures14futureContinueE3refIN7futures26FutureBasecolonObjectType_EE\n/src/codex/sales/states/proving.nim(139) _ZN3run37run\n/src/vendor/nimbus-build-system/vendor/Nim/lib/system/stacktraces.nim(62) _ZN11stacktraces30auxWriteStackTraceWithOverrideE3varI3seqIN6system15StackTraceEntryEEE\n]]\n" error="Failed to get future proof requirement: Failed to send POST Request with JSON-RPC: Connection timed out"
ERR 2025-05-04 16:40:58.382+00:00 Unhandled exception in async proc, aborting topics="codex" tid=1 msg="no sale request"

Metadata

Metadata

Assignees

No one assigned

    Labels

    MarketplaceSee https://miro.com/app/board/uXjVNZ03E-c=/ for detailsbugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions