MystenLabs / sui

Sui, a next-generation smart contract platform with high throughput, low latency, and an asset-oriented programming model powered by the Move programming language
https://sui.io
Apache License 2.0
6.28k stars 11.22k forks source link

Panic in execution_driver.rs due to ObjectVersionUnavailableForConsumption error #20282

Closed fawby-republic closed 1 week ago

fawby-republic commented 2 weeks ago

Details

We are experiencing panics in execution_driver.rs on our testnet node (sui-node 1.37.3-b8eb8920aeca). The node crashes occasionally with an ObjectVersionUnavailableForConsumption error. This suggests that the retries mentioned in the below code comment might still be necessary to prevent these crashes.

https://github.com/MystenLabs/sui/blob/5271252cd8897611902615cadd9741f1ec9b647d/crates/sui-core/src/execution_driver.rs#L147-L152

Suggestion

Reproduction

Logs

Nov 15 11:22:15 sui-node[3865784]: 2024-11-15T11:22:15.391329Z ERROR execution_driver{tx_digest=TransactionDigest(FTQYMErXwfEqqmAAWXQisfGVh3N1qrs5qz6NU43Mn7Jo)}: telemetry_subscribers: panicked at /republic/sui/git/MystenLabs/sui/crates/sui-core/src/execution_driver.rs:151:25:
Nov 15 11:22:15 sui-node[3865784]: Failed to execute certified transaction TransactionDigest(FTQYMErXwfEqqmAAWXQisfGVh3N1qrs5qz6NU43Mn7Jo) after 1 attempts! error=Error checking transaction input objects: ObjectVersionUnavailableForConsumption { provided_obj_ref: (0x7141444dd9a0f18ee415fb8cb0e0f84ee94e35511f70782b9aa293b8038fc70f, SequenceNumber(239429482), o#HwpAqgHKf9hZ2Smo1vZZWUZgZCdkMFMRdqecTfbjCYfr), current_version: SequenceNumber(239429481) } certificate=Envelope { digest: OnceCell(TransactionDigest(FTQYMErXwfEqqmAAWXQisfGVh3N1qrs5qz6NU43Mn7Jo)), data: SenderSignedData(SizeOneVec { e: SenderSignedTransaction { intent_message: IntentMessage { intent: Intent { scope: TransactionData, version: V0, app_id: Sui }, value: V1(TransactionDataV1 { kind: ProgrammableTransaction(ProgrammableTransaction { inputs: [Object(SharedObject { id: 0x0e60a946a527902c90bbc71240435728cd6dc26b9e8debc69f09b71671c3029b, initial_shared_version: SequenceNumber(182020000), mutable: true }), Object(ImmOrOwnedObject((0x7141444dd9a0f18ee415fb8cb0e0f84ee94e35511f70782b9aa293b8038fc70f, SequenceNumber(239429482), o#HwpAqgHKf9hZ2Smo1vZZWUZgZCdkMFMRdqecTfbjCYfr))), Pure([64, 41, 81, 14, 0, 0, 0, 0]), Pure([178, 181, 215, 0, 47, 86, 210, 87, 237, 245, 98, 144, 137, 14, 22, 43, 230, 159, 188, 72, 57, 16, 78, 222, 73, 82, 124, 234, 135, 89, 22, 235])], commands: [SplitCoins(Input(1), [Input(2)]), MoveCall(ProgrammableMoveCall { package: 0x9f992cc2430a1f442ca7a5ca7638169f5d5c00e0ebc3977a65e9ac6e497fe5ef, module: "wal_exchange", function: "exchange_all_for_sui", type_arguments: [], arguments: [Input(0), Result(0)] }), TransferObjects([Result(1)], Input(3))] }), sender: 0xb2b5d7002f56d257edf56290890e162be69fbc4839104ede49527cea875916eb, gas_data: GasData { payment: [(0x9ff76a9bd4c797f649bd222b8496f643f5d9f62d4f21fc1fc7615bf2e0bfd3e5, SequenceNumber(239429482), o#3v2iSDCe5fTu6r9xvcwNnFbFBnmsfAjedocq22uVzRds)], owner: 0xb2b5d7002f56d257edf56290890e162be69fbc4839104ede49527cea875916eb, price: 1000, budget: 4007388 }, expiration: None }) }, tx_signatures: [Signature(Ed25519SuiSignature(Ed25519SuiSignature([0, 79, 115, 200, 148, 42, 236, 41, 218, 16, 87, 70, 104, 72, 107, 56, 23, 180, 207, 203, 114, 118, 148, 40, 53, 198, 131, 86, 144, 193, 188, 148, 176, 251, 50, 151, 224, 220, 120, 174, 205, 212, 205, 182, 222, 121, 120, 88, 64, 1, 14, 228, 236, 190, 168, 246, 44, 230, 186, 197, 86, 41, 68, 35, 2, 194, 55, 171, 138, 102, 49, 221, 4, 24, 47, 69, 37, 47, 50, 42, 123, 222, 240, 237, 178, 5, 178, 92, 162, 158, 216, 246, 30, 99, 223, 165, 51])))] } }), auth_signature: Certified(AuthorityQuorumSignInfo { epoch: 554, signature: BLS12381AggregateSignature { sig: Signature { point: blst_p1_affine { x: blst_fp { l: [18206224375431961513, 10666487208249606308, 4642641641364123411, 14781451030576356050, 12149859882726692475, 872654105760223149] }, y: blst_fp { l: [7191996596659586906, 16782535936266879892, 11858393994517516319, 15399395225066471553, 15163819832899959508, 1572325719222305379] } } }, bytes: OnceCell(Uninit) }, signers_map: RoaringBitmap<64 values between 0 and 111> }) } panic.file="/republic/sui/git/MystenLabs/sui/crates/sui-core/src/execution_driver.rs" panic.line=151 panic.column=25
Nov 15 11:22:15 sui-node[3865784]: thread 'sui-node-runtime' panicked at /republic/sui/git/MystenLabs/sui/crates/sui-core/src/execution_driver.rs:151:25:
Nov 15 11:22:15 sui-node[3865784]: Failed to execute certified transaction TransactionDigest(FTQYMErXwfEqqmAAWXQisfGVh3N1qrs5qz6NU43Mn7Jo) after 1 attempts! error=Error checking transaction input objects: ObjectVersionUnavailableForConsumption { provided_obj_ref: (0x7141444dd9a0f18ee415fb8cb0e0f84ee94e35511f70782b9aa293b8038fc70f, SequenceNumber(239429482), o#HwpAqgHKf9hZ2Smo1vZZWUZgZCdkMFMRdqecTfbjCYfr), current_version: SequenceNumber(239429481) } certificate=Envelope { digest: OnceCell(TransactionDigest(FTQYMErXwfEqqmAAWXQisfGVh3N1qrs5qz6NU43Mn7Jo)), data: SenderSignedData(SizeOneVec { e: SenderSignedTransaction { intent_message: IntentMessage { intent: Intent { scope: TransactionData, version: V0, app_id: Sui }, value: V1(TransactionDataV1 { kind: ProgrammableTransaction(ProgrammableTransaction { inputs: [Object(SharedObject { id: 0x0e60a946a527902c90bbc71240435728cd6dc26b9e8debc69f09b71671c3029b, initial_shared_version: SequenceNumber(182020000), mutable: true }), Object(ImmOrOwnedObject((0x7141444dd9a0f18ee415fb8cb0e0f84ee94e35511f70782b9aa293b8038fc70f, SequenceNumber(239429482), o#HwpAqgHKf9hZ2Smo1vZZWUZgZCdkMFMRdqecTfbjCYfr))), Pure([64, 41, 81, 14, 0, 0, 0, 0]), Pure([178, 181, 215, 0, 47, 86, 210, 87, 237, 245, 98, 144, 137, 14, 22, 43, 230, 159, 188, 72, 57, 16, 78, 222, 73, 82, 124, 234, 135, 89, 22, 235])], commands: [SplitCoins(Input(1), [Input(2)]), MoveCall(ProgrammableMoveCall { package: 0x9f992cc2430a1f442ca7a5ca7638169f5d5c00e0ebc3977a65e9ac6e497fe5ef, module: "wal_exchange", function: "exchange_all_for_sui", type_arguments: [], arguments: [Input(0), Result(0)] }), TransferObjects([Result(1)], Input(3))] }), sender: 0xb2b5d7002f56d257edf56290890e162be69fbc4839104ede49527cea875916eb, gas_data: GasData { payment: [(0x9ff76a9bd4c797f649bd222b8496f643f5d9f62d4f21fc1fc7615bf2e0bfd3e5, SequenceNumber(239429482), o#3v2iSDCe5fTu6r9xvcwNnFbFBnmsfAjedocq22uVzRds)], owner: 0xb2b5d7002f56d257edf56290890e162be69fbc4839104ede49527cea875916eb, price: 1000, budget: 4007388 }, expiration: None }) }, tx_signatures: [Signature(Ed25519SuiSignature(Ed25519SuiSignature([0, 79, 115, 200, 148, 42, 236, 41, 218, 16, 87, 70, 104, 72, 107, 56, 23, 180, 207, 203, 114, 118, 148, 40, 53, 198, 131, 86, 144, 193, 188, 148, 176, 251, 50, 151, 224, 220, 120, 174, 205, 212, 205, 182, 222, 121, 120, 88, 64, 1, 14, 228, 236, 190, 168, 246, 44, 230, 186, 197, 86, 41, 68, 35, 2, 194, 55, 171, 138, 102, 49, 221, 4, 24, 47, 69, 37, 47, 50, 42, 123, 222, 240, 237, 178, 5, 178, 92, 162, 158, 216, 246, 30, 99, 223, 165, 51])))] } }), auth_signature: Certified(AuthorityQuorumSignInfo { epoch: 554, signature: BLS12381AggregateSignature { sig: Signature { point: blst_p1_affine { x: blst_fp { l: [18206224375431961513, 10666487208249606308, 4642641641364123411, 14781451030576356050, 12
149859882726692475, 872654105760223149] }, y: blst_fp { l: [7191996596659586906, 16782535936266879892, 11858393994517516319, 15399395225066471553, 15163819832899959508, 1572325719222305379] } } }, bytes
: OnceCell(Uninit) }, signers_map: RoaringBitmap<64 values between 0 and 111> }) }
Nov 15 11:22:15 sui-node[3865784]: note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
arun-koshy commented 1 week ago

This error is transient and the patch for this was just recently cherry-picked into 1.37 and will be part of the next mainnet release.