Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unwrap on non-existent blob_col_idx #922

Open
romanzac opened this issue Nov 21, 2024 · 0 comments
Open

Unwrap on non-existent blob_col_idx #922

romanzac opened this issue Nov 21, 2024 · 0 comments
Assignees
Labels

Comments

@romanzac
Copy link
Contributor

Problem

I found unwrap at nomos-da/kzgrs-backend/src/verifier.rs:122 while sending blob with column index not known by DaVerifier.

Impact

Occurrence low, impact high.

Expected behavior

verify() should handle unknown index. Possibly responding with false and logging error.

To reproduce

  1. Please checkout 99ed062
  2. cargo clean; cargo build
  3. RUST_LOG=info CONSENSUS_SLOT_TIME=5 RISC0_DEV_MODE=true cargo test -p nomos-da-tests test_verifier -- --nocapture

Screenshots/logs

sk > 560f39cc3e7f3761662eaaa4817583c3a0c0c7d46431cfa727194881568151ac1481be0b569b3516cbeca94dbd22f0027bab99df61b7a901b4e868252c3523e1
sk > b8805a7498fa2714046975e738f98bddc45710eec9055c021e20492e8e1951399b03a1a93196c5e1a78bc82319f51672c39b646a0e29e7d8810aeefcaa3b9166
Nov 21 19:52:49.982  INFO overwatch-run:start_all: nomos_libp2p:libp2p peer_id:12D3KooWCHEAb4UA5pvZeCvp9hrZS9PwWMjBa4osCaGuD2g7NmKz
Nov 21 19:52:49.982  INFO overwatch-run:start_all: nomos_libp2p:libp2p peer_id:12D3KooWMTZ4GBHC25ARoHrC3cVAUXWU8TDYocPpYu3Mcr64iTFP
Nov 21 19:52:49.988  INFO overwatch-run:start_all: libp2p_swarm:local_peer_id=12D3KooWCHEAb4UA5pvZeCvp9hrZS9PwWMjBa4osCaGuD2g7NmKz
Nov 21 19:52:49.988  INFO overwatch-run:start_all: libp2p_swarm:local_peer_id=12D3KooWMTZ4GBHC25ARoHrC3cVAUXWU8TDYocPpYu3Mcr64iTFP
Nov 21 19:52:49.992  INFO overwatch-run:start_all: libp2p_swarm:local_peer_id=12D3KooWAEJfJrUSv3aLeG7w7wgZMriNWD3yehufrPTy4oYQ5Gtp
Nov 21 19:52:49.992  INFO overwatch-run:start_all: libp2p_swarm:local_peer_id=12D3KooWSR4JssLah7EvK6o5tdDspZ4KbrXR5eU6cxn1UGtKv88d
Nov 21 19:52:49.994  INFO overwatch-run:start_all: libp2p_swarm:local_peer_id=12D3KooWLFUaE5VnkN95VCsT6J1SvsRr9ejDVo385SH9Myxag9tq
Nov 21 19:52:49.994  INFO overwatch-run:start_all: libp2p_swarm:local_peer_id=12D3KooWBCR4sYmsBfbs3q6zS8WA23zNyTkiwJEaKpaLCx93vvSU
Nov 21 19:52:49.998  WARN nomos_network::backends::libp2p::swarm:failed to send the Ok result of dialing: Ok(PeerId("12D3KooWMTZ4GBHC25ARoHrC3cVAUXWU8TDYocPpYu3Mcr64iTFP"))
Nov 21 19:52:49.997  WARN nomos_network::backends::libp2p::swarm:failed to send the Ok result of dialing: Ok(PeerId("12D3KooWCHEAb4UA5pvZeCvp9hrZS9PwWMjBa4osCaGuD2g7NmKz"))
Nov 21 19:52:50.013  INFO overwatch-run:start_all: nomos_da_verifier:HERE VerifierService initialized
Nov 21 19:52:50.013  INFO overwatch-run:start_all: nomos_da_verifier:HERE VerifierService initialized
Nov 21 19:52:50.078  INFO overwatch-run: overwatch_rs::overwatch:Overwatch command received command=Relay(RelayCommand { service_id: "Network", reply_channel: ReplyChannel(Sender { inner: Some(Inner { state: State { is_complete: false, is_closed: false, is_rx_task_set: true, is_tx_task_set: false } }) }) })
Nov 21 19:52:50.079  INFO overwatch-run: overwatch_rs::overwatch:Overwatch command received command=Relay(RelayCommand { service_id: "Network", reply_channel: ReplyChannel(Sender { inner: Some(Inner { state: State { is_complete: false, is_closed: false, is_rx_task_set: true, is_tx_task_set: false } }) }) })
Nov 21 19:52:50.079  INFO overwatch-run: overwatch_rs::overwatch:Overwatch command received command=Relay(RelayCommand { service_id: "Network", reply_channel: ReplyChannel(Sender { inner: Some(Inner { state: State { is_complete: false, is_closed: false, is_rx_task_set: true, is_tx_task_set: false } }) }) })
Nov 21 19:52:50.079  INFO overwatch-run: overwatch_rs::overwatch:Overwatch command received command=Relay(RelayCommand { service_id: "DA-Verifier", reply_channel: ReplyChannel(Sender { inner: Some(Inner { state: State { is_complete: false, is_closed: false, is_rx_task_set: true, is_tx_task_set: false } }) }) })
Nov 21 19:52:50.079  INFO overwatch-run: overwatch_rs::overwatch:Overwatch command received command=Relay(RelayCommand { service_id: "Network", reply_channel: ReplyChannel(Sender { inner: Some(Inner { state: State { is_complete: false, is_closed: false, is_rx_task_set: true, is_tx_task_set: false } }) }) })
Nov 21 19:52:50.079  INFO overwatch-run: overwatch_rs::overwatch:Overwatch command received command=Relay(RelayCommand { service_id: "Cryptarchia", reply_channel: ReplyChannel(Sender { inner: Some(Inner { state: State { is_complete: false, is_closed: false, is_rx_task_set: true, is_tx_task_set: false } }) }) })
Nov 21 19:52:50.078  INFO nomos_da_verifier:HERE VerifierService running
Nov 21 19:52:50.079  INFO overwatch-run: overwatch_rs::overwatch:Overwatch command received command=Relay(RelayCommand { service_id: "Network", reply_channel: ReplyChannel(Sender { inner: Some(Inner { state: State { is_complete: false, is_closed: false, is_rx_task_set: true, is_tx_task_set: false } }) }) })
Nov 21 19:52:50.079  INFO overwatch-run: overwatch_rs::overwatch:Overwatch command received command=Relay(RelayCommand { service_id: "DaNetwork", reply_channel: ReplyChannel(Sender { inner: Some(Inner { state: State { is_complete: false, is_closed: false, is_rx_task_set: true, is_tx_task_set: false } }) }) })
Nov 21 19:52:50.079  INFO overwatch-run: overwatch_rs::overwatch:Overwatch command received command=Relay(RelayCommand { service_id: "Network", reply_channel: ReplyChannel(Sender { inner: Some(Inner { state: State { is_complete: false, is_closed: false, is_rx_task_set: true, is_tx_task_set: false } }) }) })
Nov 21 19:52:50.079  INFO overwatch-run: overwatch_rs::overwatch:Overwatch command received command=Relay(RelayCommand { service_id: "DA-Verifier", reply_channel: ReplyChannel(Sender { inner: Some(Inner { state: State { is_complete: false, is_closed: false, is_rx_task_set: true, is_tx_task_set: false } }) }) })
Nov 21 19:52:50.079  INFO overwatch-run: overwatch_rs::overwatch:Overwatch command received command=Relay(RelayCommand { service_id: "Network", reply_channel: ReplyChannel(Sender { inner: Some(Inner { state: State { is_complete: false, is_closed: false, is_rx_task_set: true, is_tx_task_set: false } }) }) })
Nov 21 19:52:50.079  INFO overwatch-run: overwatch_rs::overwatch:Overwatch command received command=Relay(RelayCommand { service_id: "DA-Sampling", reply_channel: ReplyChannel(Sender { inner: Some(Inner { state: State { is_complete: false, is_closed: false, is_rx_task_set: true, is_tx_task_set: false } }) }) })
Nov 21 19:52:50.079  INFO overwatch-run: overwatch_rs::overwatch:Overwatch command received command=Relay(RelayCommand { service_id: "Network", reply_channel: ReplyChannel(Sender { inner: Some(Inner { state: State { is_complete: false, is_closed: false, is_rx_task_set: true, is_tx_task_set: false } }) }) })
Nov 21 19:52:50.079  INFO overwatch-run: overwatch_rs::overwatch:Overwatch command received command=Relay(RelayCommand { service_id: "DaNetwork", reply_channel: ReplyChannel(Sender { inner: Some(Inner { state: State { is_complete: false, is_closed: false, is_rx_task_set: true, is_tx_task_set: false } }) }) })
Nov 21 19:52:50.079  INFO overwatch-run: overwatch_rs::overwatch:Overwatch command received command=Relay(RelayCommand { service_id: "Cryptarchia", reply_channel: ReplyChannel(Sender { inner: Some(Inner { state: State { is_complete: false, is_closed: false, is_rx_task_set: true, is_tx_task_set: false } }) }) })
Nov 21 19:52:50.079  INFO overwatch-run: overwatch_rs::overwatch:Overwatch command received command=Relay(RelayCommand { service_id: "Mix", reply_channel: ReplyChannel(Sender { inner: Some(Inner { state: State { is_complete: false, is_closed: false, is_rx_task_set: true, is_tx_task_set: false } }) }) })
Nov 21 19:52:50.079  INFO overwatch-run: overwatch_rs::overwatch:Overwatch command received command=Relay(RelayCommand { service_id: "DaNetwork", reply_channel: ReplyChannel(Sender { inner: Some(Inner { state: State { is_complete: false, is_closed: false, is_rx_task_set: true, is_tx_task_set: false } }) }) })
Nov 21 19:52:50.079  INFO nomos_da_verifier:HERE VerifierService running
Nov 21 19:52:50.079  INFO overwatch-run: overwatch_rs::overwatch:Overwatch command received command=Relay(RelayCommand { service_id: "Storage", reply_channel: ReplyChannel(Sender { inner: Some(Inner { state: State { is_complete: false, is_closed: false, is_rx_task_set: true, is_tx_task_set: false } }) }) })
Nov 21 19:52:50.079  INFO overwatch-run: overwatch_rs::overwatch:Overwatch command received command=Relay(RelayCommand { service_id: "DA-Sampling", reply_channel: ReplyChannel(Sender { inner: Some(Inner { state: State { is_complete: false, is_closed: false, is_rx_task_set: true, is_tx_task_set: false } }) }) })
Nov 21 19:52:50.079  INFO overwatch-run: overwatch_rs::overwatch:Overwatch command received command=Relay(RelayCommand { service_id: "DA-Verifier", reply_channel: ReplyChannel(Sender { inner: Some(Inner { state: State { is_complete: false, is_closed: false, is_rx_task_set: true, is_tx_task_set: false } }) }) })
Nov 21 19:52:50.079  INFO overwatch-run: overwatch_rs::overwatch:Overwatch command received command=Relay(RelayCommand { service_id: "Mix", reply_channel: ReplyChannel(Sender { inner: Some(Inner { state: State { is_complete: false, is_closed: false, is_rx_task_set: true, is_tx_task_set: false } }) }) })
Nov 21 19:52:50.079  INFO overwatch-run: overwatch_rs::overwatch:Overwatch command received command=Relay(RelayCommand { service_id: "DaNetwork", reply_channel: ReplyChannel(Sender { inner: Some(Inner { state: State { is_complete: false, is_closed: false, is_rx_task_set: true, is_tx_task_set: false } }) }) })
Nov 21 19:52:50.079  INFO overwatch-run: overwatch_rs::overwatch:Overwatch command received command=Relay(RelayCommand { service_id: "Storage", reply_channel: ReplyChannel(Sender { inner: Some(Inner { state: State { is_complete: false, is_closed: false, is_rx_task_set: true, is_tx_task_set: false } }) }) })
Nov 21 19:52:50.079  INFO overwatch-run: overwatch_rs::overwatch:Overwatch command received command=Relay(RelayCommand { service_id: "Storage", reply_channel: ReplyChannel(Sender { inner: Some(Inner { state: State { is_complete: false, is_closed: false, is_rx_task_set: true, is_tx_task_set: false } }) }) })
Nov 21 19:52:50.079  INFO overwatch-run: overwatch_rs::overwatch:Overwatch command received command=Relay(RelayCommand { service_id: "Storage", reply_channel: ReplyChannel(Sender { inner: Some(Inner { state: State { is_complete: false, is_closed: false, is_rx_task_set: true, is_tx_task_set: false } }) }) })
Nov 21 19:52:50.079  INFO overwatch-run: overwatch_rs::overwatch:Overwatch command received command=Relay(RelayCommand { service_id: "Storage", reply_channel: ReplyChannel(Sender { inner: Some(Inner { state: State { is_complete: false, is_closed: false, is_rx_task_set: true, is_tx_task_set: false } }) }) })
Nov 21 19:52:50.079  INFO overwatch-run: overwatch_rs::overwatch:Overwatch command received command=Relay(RelayCommand { service_id: "mempool-cl", reply_channel: ReplyChannel(Sender { inner: Some(Inner { state: State { is_complete: false, is_closed: false, is_rx_task_set: true, is_tx_task_set: false } }) }) })
Nov 21 19:52:50.079  INFO overwatch-run: overwatch_rs::overwatch:Overwatch command received command=Relay(RelayCommand { service_id: "mempool-cl", reply_channel: ReplyChannel(Sender { inner: Some(Inner { state: State { is_complete: false, is_closed: false, is_rx_task_set: true, is_tx_task_set: false } }) }) })
Nov 21 19:52:50.080  INFO overwatch-run: overwatch_rs::overwatch:Overwatch command received command=Relay(RelayCommand { service_id: "Storage", reply_channel: ReplyChannel(Sender { inner: Some(Inner { state: State { is_complete: false, is_closed: false, is_rx_task_set: true, is_tx_task_set: false } }) }) })
Nov 21 19:52:50.080  INFO overwatch-run: overwatch_rs::overwatch:Overwatch command received command=Relay(RelayCommand { service_id: "mempool-da", reply_channel: ReplyChannel(Sender { inner: Some(Inner { state: State { is_complete: false, is_closed: false, is_rx_task_set: true, is_tx_task_set: false } }) }) })
Nov 21 19:52:50.080  INFO overwatch-run: overwatch_rs::overwatch:Overwatch command received command=Relay(RelayCommand { service_id: "Storage", reply_channel: ReplyChannel(Sender { inner: Some(Inner { state: State { is_complete: false, is_closed: false, is_rx_task_set: true, is_tx_task_set: false } }) }) })
Nov 21 19:52:50.080  INFO overwatch-run: overwatch_rs::overwatch:Overwatch command received command=Relay(RelayCommand { service_id: "mempool-da", reply_channel: ReplyChannel(Sender { inner: Some(Inner { state: State { is_complete: false, is_closed: false, is_rx_task_set: true, is_tx_task_set: false } }) }) })
Nov 21 19:52:50.080  INFO overwatch-run: overwatch_rs::overwatch:Overwatch command received command=Relay(RelayCommand { service_id: "DA-Sampling", reply_channel: ReplyChannel(Sender { inner: Some(Inner { state: State { is_complete: false, is_closed: false, is_rx_task_set: true, is_tx_task_set: false } }) }) })
Nov 21 19:52:50.080  INFO overwatch-run: overwatch_rs::overwatch:Overwatch command received command=Relay(RelayCommand { service_id: "Storage", reply_channel: ReplyChannel(Sender { inner: Some(Inner { state: State { is_complete: false, is_closed: false, is_rx_task_set: true, is_tx_task_set: false } }) }) })
Nov 21 19:52:50.080  INFO overwatch-run: overwatch_rs::overwatch:Overwatch command received command=Relay(RelayCommand { service_id: "DA-Sampling", reply_channel: ReplyChannel(Sender { inner: Some(Inner { state: State { is_complete: false, is_closed: false, is_rx_task_set: true, is_tx_task_set: false } }) }) })
Nov 21 19:52:50.186  INFO nomos_da_verifier:HERE Responding to DaVerifierMsg::AddBlob
Nov 21 19:52:50.186  INFO nomos_da_verifier:HERE Responding to DaVerifierMsg::AddBlob
Nov 21 19:52:50.341  INFO nomos_da_verifier:HERE Responding to DaVerifierMsg::AddBlob
thread 'Overwatch' panicked at nomos-da/kzgrs-backend/src/verifier.rs:122:50:
called `Option::unwrap()` on a `None` value
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
test verifier_integration::test_verifier ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.55s
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants