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

Examples of cross-contract calls prove generation failure #104

Open
BC-A opened this issue Apr 20, 2024 · 1 comment
Open

Examples of cross-contract calls prove generation failure #104

BC-A opened this issue Apr 20, 2024 · 1 comment

Comments

@BC-A
Copy link
Contributor

BC-A commented Apr 20, 2024

I wrote an example of a cross-contract call. The generated json is contractCall.json. It can generate 10 chunks. However, when calling zkvm to generate a proof, the proof generation for the 7th chunk fails. In hardhat-example, you can find the relevant contract. After deploying the contract, call the get function in Bank. contractCall.json is generated for this transaction.

If you want to reproduce the problem, you can test it in the eigen-zkvm repo and replace solidityExample.json with contractCall.json, and execute the following code

RUST_MIN_STACK=2073741821 RUST_LOG=info cargo test --release test_zkvm_prove-- --nocapture

If you want to get error information faster, you can modify the test_file in the test_zkvm_lr_execute_then_prove function and change the task to evm. When iterating chunks, only generate proof for the 7th chunk(i==6 because i starts from 0), similar to the following

#[test]
#[ignore]
fn test_zkvm_lr_execute_then_prove() {
    env_logger::try_init().unwrap_or_default();
    let test_file = "/tmp/contractCall.json";
    let suite_json = fs::read_to_string(test_file).unwrap();

    let output_path = "/tmp/test_evm";
    let task = "evm";
    let workspace = format!("program/{}", task);
    let bootloader_inputs =
        zkvm_generate_chunks(workspace.as_str(), &suite_json, output_path).unwrap();
    let cnt_chunks: usize = bootloader_inputs.len();
    log::debug!("Generated {} chunks", cnt_chunks);
    // save the chunks
    let bi_files: Vec<_> = (0..bootloader_inputs.len())
        .map(|i| Path::new(output_path).join(format!("{task}_chunks_{i}.data")))
        .collect();
    log::debug!("bi_files: {:#?}", bi_files);
    bootloader_inputs
        .iter()
        .zip(&bi_files)
        .for_each(|(data, filename)| {
            let mut f = fs::File::create(filename).unwrap();
            for d in &data.0 {
                f.write_all(&d.to_bytes_le()[0..8]).unwrap();
            }
        });

    let cnt_chunks: usize = bootloader_inputs.len();
    log::debug!("Generated {} chunks", cnt_chunks);
    // load each chunk, generate witness and prove
    bi_files.iter().enumerate().for_each(|(i, filename)| {
        if i==6 {
            log::info!("i: {:?}, filename: {:#?}", i, filename);
            let mut f = fs::File::open(filename).unwrap();
            let metadata = fs::metadata(filename).unwrap();
            let file_size = metadata.len() as usize;
            assert!(file_size % 8 == 0);
            let mut buffer = vec![0; file_size];
            f.read_exact(&mut buffer).unwrap();
            let mut bi = vec![GoldilocksField::zero(); file_size / 8];
            bi.iter_mut().zip(buffer.chunks(8)).for_each(|(out, bin)| {
                *out = GoldilocksField::from_bytes_le(bin);
            });
            zkvm_prove_only(task, &suite_json, bi, i, output_path).unwrap();
        }
    });
}

Execute the following command to test

RUST_MIN_STACK=2073741821 RUST_LOG=info cargo test --release test_zkvm_lr_execute_then_prove -- --nocapture
@BC-A
Copy link
Contributor Author

BC-A commented Apr 20, 2024

This is an error message

[2024-04-20T07:53:49Z DEBUG powdr_executor::witgen::machines::machine_extractor] Detected machine: block
[2024-04-20T07:53:49Z INFO powdr_executor::witgen::vm_processor] Running main machine for 1048576 rows
[00:03:16 (ETA: 00:00:19)] ██████████████████░░ 90% - 5516 rows/s, 554k identities/s, 73% progress [2024-04-20T07:57:05Z ERROR powdr_executor::witgen::vm_processor]
Error: Row 945254 failed. Set RUST_LOG=debug for more information.

[2024-04-20T07:57:05Z DEBUG powdr_executor::witgen::vm_processor] Some identities where not satisfiable after the following values were uniquely determined (known nonzero first, then zero, unknown omitted):
[2024-04-20T07:57:05Z DEBUG powdr_executor::witgen::vm_processor] Current row (945254):
main._operation_id = 2
main.pc = 375738
main.Y = 3587217190
main.Z = 2309867857
main.tmp2 = 3
main.tmp3 = 3439329280
main.x1 = 281252400
main.x2 = 45440
main.x5 = 2768571416
main.x6 = 579533747
main.x7 = 4056654378
main.x8 = 957698780
main.x9 = 3259360503
main.reg_write_X_x10 = 1
main.x10 = 3587217190
main.x11 = 2309867857
main.x12 = 3661688610
main.x13 = 1206001142
main.x14 = 588167090
main.x15 = 118882634
main.x16 = 1788731658
main.x17 = 557474404
main.x18 = 3355586798
main.x19 = 955921838
main.x20 = 1032962527
main.x21 = 1611130332
main.x22 = 1519104985
main.x23 = 197729563
main.x24 = 2816157076
main.x25 = 952596001
main.x26 = 3465507222
main.x27 = 1798382812
main.x28 = 2201738451
main.x29 = 2148512090
main.x30 = 3159989583
main.x31 = 1124684398
main.instr_xor = 1
main.X_read_free = 1
main.read_Y_x10 = 1
main.read_Z_x11 = 1
main.W = 0
main.reg_write_X_tmp1 = 0
main.reg_write_Y_tmp1 = 0
main.reg_write_Z_tmp1 = 0
main.reg_write_W_tmp1 = 0
main.tmp1 = 0
main.reg_write_X_tmp2 = 0
main.reg_write_Y_tmp2 = 0
main.reg_write_Z_tmp2 = 0
main.reg_write_X_tmp3 = 0
main.reg_write_Y_tmp3 = 0
main.reg_write_Y_tmp4 = 0
main.tmp4 = 0
main.reg_write_X_lr_sc_reservation = 0
main.reg_write_Y_lr_sc_reservation = 0
main.lr_sc_reservation = 0
main.reg_write_X_x0 = 0
main.reg_write_Z_x0 = 0
main.reg_write_X_x1 = 0
main.reg_write_Y_x1 = 0
main.reg_write_X_x2 = 0
main.reg_write_Y_x2 = 0
main.reg_write_X_x3 = 0
main.reg_write_Y_x3 = 0
main.x3 = 0
main.reg_write_X_x4 = 0
main.reg_write_Y_x4 = 0
main.x4 = 0
main.reg_write_X_x5 = 0
main.reg_write_Y_x5 = 0
main.reg_write_X_x6 = 0
main.reg_write_Y_x6 = 0
main.reg_write_X_x7 = 0
main.reg_write_Y_x7 = 0
main.reg_write_X_x8 = 0
main.reg_write_Y_x8 = 0
main.reg_write_X_x9 = 0
main.reg_write_Y_x9 = 0
main.reg_write_Y_x10 = 0
main.reg_write_W_x10 = 0
main.reg_write_X_x11 = 0
main.reg_write_Y_x11 = 0
main.reg_write_Z_x11 = 0
main.reg_write_X_x12 = 0
main.reg_write_Y_x12 = 0
main.reg_write_Z_x12 = 0
main.reg_write_X_x13 = 0
main.reg_write_Y_x13 = 0
main.reg_write_Z_x13 = 0
main.reg_write_X_x14 = 0
main.reg_write_Y_x14 = 0
main.reg_write_Z_x14 = 0
main.reg_write_X_x15 = 0
main.reg_write_Y_x15 = 0
main.reg_write_X_x16 = 0
main.reg_write_Y_x16 = 0
main.reg_write_Z_x16 = 0
main.reg_write_X_x17 = 0
main.reg_write_Y_x17 = 0
main.reg_write_Z_x17 = 0
main.reg_write_X_x18 = 0
main.reg_write_Y_x18 = 0
main.reg_write_X_x19 = 0
main.reg_write_Y_x19 = 0
main.reg_write_X_x20 = 0
main.reg_write_Y_x20 = 0
main.reg_write_X_x21 = 0
main.reg_write_Y_x21 = 0
main.reg_write_X_x22 = 0
main.reg_write_Y_x22 = 0
main.reg_write_X_x23 = 0
main.reg_write_Y_x23 = 0
main.reg_write_X_x24 = 0
main.reg_write_Y_x24 = 0
main.reg_write_X_x25 = 0
main.reg_write_Y_x25 = 0
main.reg_write_X_x26 = 0
main.reg_write_Y_x26 = 0
main.reg_write_X_x27 = 0
main.reg_write_Y_x27 = 0
main.reg_write_X_x28 = 0
main.reg_write_Y_x28 = 0
main.reg_write_X_x29 = 0
main.reg_write_Y_x29 = 0
main.reg_write_X_x30 = 0
main.reg_write_Y_x30 = 0
main.reg_write_X_x31 = 0
main.reg_write_Y_x31 = 0
main.instr_load_bootloader_input = 0
main.instr_assert_bootloader_input = 0
main.instr_jump_to_bootloader_input = 0
main.instr_mstore_bootloader = 0
main.instr_mload = 0
main.instr_mstore = 0
main.instr_load_label = 0
main.instr_load_label_param_l = 0
main.instr_jump = 0
main.instr_jump_param_l = 0
main.instr_jump_dyn = 0
main.instr_branch_if_nonzero = 0
main.instr_branch_if_nonzero_param_l = 0
main.instr_branch_if_zero = 0
main.instr_branch_if_zero_param_l = 0
main.instr_skip_if_zero = 0
main.instr_branch_if_positive = 0
main.instr_branch_if_positive_param_l = 0
main.instr_is_positive = 0
main.instr_is_equal_zero = 0
main.instr_is_not_equal_zero = 0
main.instr_and = 0
main.instr_or = 0
main.instr_poseidon_gl = 0
main.instr_shl = 0
main.instr_shr = 0
main.instr_split_gl = 0
main.instr_wrap = 0
main.instr_wrap_signed = 0
main.instr_sign_extend_byte = 0
main.instr_sign_extend_16_bits = 0
main.instr_to_signed = 0
main.instr_wrap16 = 0
main.instr_divremu = 0
main.instr_mul = 0
main.instr__jump_to_operation = 0
main.instr__reset = 0
main.instr__loop = 0
main.instr_return = 0
main.X_const = 0
main.read_X_lr_sc_reservation = 0
main.read_X_tmp1 = 0
main.read_X_tmp2 = 0
main.read_X_tmp3 = 0
main.read_X_tmp4 = 0
main.read_X_x0 = 0
main.read_X_x1 = 0
main.read_X_x10 = 0
main.read_X_x11 = 0
main.read_X_x12 = 0
main.read_X_x13 = 0
main.read_X_x14 = 0
main.read_X_x15 = 0
main.read_X_x16 = 0
main.read_X_x17 = 0
main.read_X_x18 = 0
main.read_X_x19 = 0
main.read_X_x2 = 0
main.read_X_x20 = 0
main.read_X_x21 = 0
main.read_X_x22 = 0
main.read_X_x23 = 0
main.read_X_x24 = 0
main.read_X_x25 = 0
main.read_X_x26 = 0
main.read_X_x27 = 0
main.read_X_x28 = 0
main.read_X_x29 = 0
main.read_X_x30 = 0
main.read_X_x31 = 0
main.read_X_x4 = 0
main.read_X_x5 = 0
main.read_X_x6 = 0
main.read_X_x7 = 0
main.read_X_x8 = 0
main.read_X_x9 = 0
main.Y_const = 0
main.Y_read_free = 0
main.read_Y_lr_sc_reservation = 0
main.read_Y_tmp1 = 0
main.read_Y_tmp2 = 0
main.read_Y_tmp3 = 0
main.read_Y_tmp4 = 0
main.read_Y_x0 = 0
main.read_Y_x1 = 0
main.read_Y_x11 = 0
main.read_Y_x12 = 0
main.read_Y_x13 = 0
main.read_Y_x14 = 0
main.read_Y_x15 = 0
main.read_Y_x16 = 0
main.read_Y_x17 = 0
main.read_Y_x18 = 0
main.read_Y_x19 = 0
main.read_Y_x2 = 0
main.read_Y_x20 = 0
main.read_Y_x21 = 0
main.read_Y_x22 = 0
main.read_Y_x23 = 0
main.read_Y_x24 = 0
main.read_Y_x25 = 0
main.read_Y_x26 = 0
main.read_Y_x27 = 0
main.read_Y_x28 = 0
main.read_Y_x29 = 0
main.read_Y_x3 = 0
main.read_Y_x30 = 0
main.read_Y_x31 = 0
main.read_Y_x4 = 0
main.read_Y_x5 = 0
main.read_Y_x6 = 0
main.read_Y_x7 = 0
main.read_Y_x8 = 0
main.read_Y_x9 = 0
main.Z_const = 0
main.Z_read_free = 0
main.read_Z_tmp1 = 0
main.read_Z_tmp2 = 0
main.read_Z_tmp3 = 0
main.read_Z_x0 = 0
main.read_Z_x1 = 0
main.read_Z_x10 = 0
main.read_Z_x12 = 0
main.read_Z_x13 = 0
main.read_Z_x14 = 0
main.read_Z_x15 = 0
main.read_Z_x16 = 0
main.read_Z_x17 = 0
main.read_Z_x18 = 0
main.read_Z_x19 = 0
main.read_Z_x20 = 0
main.read_Z_x21 = 0
main.read_Z_x22 = 0
main.read_Z_x23 = 0
main.read_Z_x24 = 0
main.read_Z_x25 = 0
main.read_Z_x26 = 0
main.read_Z_x27 = 0
main.read_Z_x28 = 0
main.read_Z_x29 = 0
main.read_Z_x30 = 0
main.read_Z_x31 = 0
main.read_Z_x5 = 0
main.read_Z_x6 = 0
main.read_Z_x7 = 0
main.read_Z_x8 = 0
main.read_Z_x9 = 0
main.W_read_free = 0
main.read_W_tmp2 = 0
main.read_W_x1 = 0
main.read_W_x10 = 0
main.read_W_x11 = 0
main.read_W_x12 = 0
main.read_W_x13 = 0
main.read_W_x14 = 0
main.read_W_x15 = 0
main.read_W_x16 = 0
main.read_W_x17 = 0
main.read_W_x18 = 0
main.read_W_x19 = 0
main.read_W_x20 = 0
main.read_W_x21 = 0
main.read_W_x22 = 0
main.read_W_x23 = 0
main.read_W_x24 = 0
main.read_W_x25 = 0
main.read_W_x26 = 0
main.read_W_x27 = 0
main.read_W_x28 = 0
main.read_W_x29 = 0
main.read_W_x30 = 0
main.read_W_x31 = 0
main.read_W_x5 = 0
main.read_W_x6 = 0
main.read_W_x7 = 0
main.read_W_x8 = 0
main.read_W_x9 = 0
---------------------
[2024-04-20T07:57:05Z DEBUG powdr_executor::witgen::vm_processor] Next row (945255):

---------------------

[2024-04-20T07:57:05Z DEBUG powdr_executor::witgen::vm_processor] Set RUST_LOG=trace to understand why these values were chosen.
[2024-04-20T07:57:05Z ERROR powdr_executor::witgen::vm_processor] Errors:
Error in identity: main.instr_xor { 2, main.Y, main.Z, main.X } is (main_binary.latch * main_binary.sel[2]) { main_binary.operation_id, main_binary.A, main_binary.B, main_binary.C };
Known values in current row (local: 945254, global 945254):
main._operation_id = 2
main.pc = 375738
main.Y = 3587217190
main.Z = 2309867857
main.tmp2 = 3
main.tmp3 = 3439329280
main.x1 = 281252400
main.x2 = 45440
main.x5 = 2768571416
main.x6 = 579533747
main.x7 = 4056654378
main.x8 = 957698780
main.x9 = 3259360503
main.reg_write_X_x10 = 1
main.x10 = 3587217190
main.x11 = 2309867857
main.x12 = 3661688610
main.x13 = 1206001142
main.x14 = 588167090
main.x15 = 118882634
main.x16 = 1788731658
main.x17 = 557474404
main.x18 = 3355586798
main.x19 = 955921838
main.x20 = 1032962527
main.x21 = 1611130332
main.x22 = 1519104985
main.x23 = 197729563
main.x24 = 2816157076
main.x25 = 952596001
main.x26 = 3465507222
main.x27 = 1798382812
main.x28 = 2201738451
main.x29 = 2148512090
main.x30 = 3159989583
main.x31 = 1124684398
main.instr_xor = 1
main.X_read_free = 1
main.read_Y_x10 = 1
main.read_Z_x11 = 1
main.W = 0
main.reg_write_X_tmp1 = 0
main.reg_write_Y_tmp1 = 0
main.reg_write_Z_tmp1 = 0
main.reg_write_W_tmp1 = 0
main.tmp1 = 0
main.reg_write_X_tmp2 = 0
main.reg_write_Y_tmp2 = 0
main.reg_write_Z_tmp2 = 0
main.reg_write_X_tmp3 = 0
main.reg_write_Y_tmp3 = 0
main.reg_write_Y_tmp4 = 0
main.tmp4 = 0
main.reg_write_X_lr_sc_reservation = 0
main.reg_write_Y_lr_sc_reservation = 0
main.lr_sc_reservation = 0
main.reg_write_X_x0 = 0
main.reg_write_Z_x0 = 0
main.reg_write_X_x1 = 0
main.reg_write_Y_x1 = 0
main.reg_write_X_x2 = 0
main.reg_write_Y_x2 = 0
main.reg_write_X_x3 = 0
main.reg_write_Y_x3 = 0
main.x3 = 0
main.reg_write_X_x4 = 0
main.reg_write_Y_x4 = 0
main.x4 = 0
main.reg_write_X_x5 = 0
main.reg_write_Y_x5 = 0
main.reg_write_X_x6 = 0
main.reg_write_Y_x6 = 0
main.reg_write_X_x7 = 0
main.reg_write_Y_x7 = 0
main.reg_write_X_x8 = 0
main.reg_write_Y_x8 = 0
main.reg_write_X_x9 = 0
main.reg_write_Y_x9 = 0
main.reg_write_Y_x10 = 0
main.reg_write_W_x10 = 0
main.reg_write_X_x11 = 0
main.reg_write_Y_x11 = 0
main.reg_write_Z_x11 = 0
main.reg_write_X_x12 = 0
main.reg_write_Y_x12 = 0
main.reg_write_Z_x12 = 0
main.reg_write_X_x13 = 0
main.reg_write_Y_x13 = 0
main.reg_write_Z_x13 = 0
main.reg_write_X_x14 = 0
main.reg_write_Y_x14 = 0
main.reg_write_Z_x14 = 0
main.reg_write_X_x15 = 0
main.reg_write_Y_x15 = 0
main.reg_write_X_x16 = 0
main.reg_write_Y_x16 = 0
main.reg_write_Z_x16 = 0
main.reg_write_X_x17 = 0
main.reg_write_Y_x17 = 0
main.reg_write_Z_x17 = 0
main.reg_write_X_x18 = 0
main.reg_write_Y_x18 = 0
main.reg_write_X_x19 = 0
main.reg_write_Y_x19 = 0
main.reg_write_X_x20 = 0
main.reg_write_Y_x20 = 0
main.reg_write_X_x21 = 0
main.reg_write_Y_x21 = 0
main.reg_write_X_x22 = 0
main.reg_write_Y_x22 = 0
main.reg_write_X_x23 = 0
main.reg_write_Y_x23 = 0
main.reg_write_X_x24 = 0
main.reg_write_Y_x24 = 0
main.reg_write_X_x25 = 0
main.reg_write_Y_x25 = 0
main.reg_write_X_x26 = 0
main.reg_write_Y_x26 = 0
main.reg_write_X_x27 = 0
main.reg_write_Y_x27 = 0
main.reg_write_X_x28 = 0
main.reg_write_Y_x28 = 0
main.reg_write_X_x29 = 0
main.reg_write_Y_x29 = 0
main.reg_write_X_x30 = 0
main.reg_write_Y_x30 = 0
main.reg_write_X_x31 = 0
main.reg_write_Y_x31 = 0
main.instr_load_bootloader_input = 0
main.instr_assert_bootloader_input = 0
main.instr_jump_to_bootloader_input = 0
main.instr_mstore_bootloader = 0
main.instr_mload = 0
main.instr_mstore = 0
main.instr_load_label = 0
main.instr_load_label_param_l = 0
main.instr_jump = 0
main.instr_jump_param_l = 0
main.instr_jump_dyn = 0
main.instr_branch_if_nonzero = 0
main.instr_branch_if_nonzero_param_l = 0
main.instr_branch_if_zero = 0
main.instr_branch_if_zero_param_l = 0
main.instr_skip_if_zero = 0
main.instr_branch_if_positive = 0
main.instr_branch_if_positive_param_l = 0
main.instr_is_positive = 0
main.instr_is_equal_zero = 0
main.instr_is_not_equal_zero = 0
main.instr_and = 0
main.instr_or = 0
main.instr_poseidon_gl = 0
main.instr_shl = 0
main.instr_shr = 0
main.instr_split_gl = 0
main.instr_wrap = 0
main.instr_wrap_signed = 0
main.instr_sign_extend_byte = 0
main.instr_sign_extend_16_bits = 0
main.instr_to_signed = 0
main.instr_wrap16 = 0
main.instr_divremu = 0
main.instr_mul = 0
main.instr__jump_to_operation = 0
main.instr__reset = 0
main.instr__loop = 0
main.instr_return = 0
main.X_const = 0
main.read_X_lr_sc_reservation = 0
main.read_X_tmp1 = 0
main.read_X_tmp2 = 0
main.read_X_tmp3 = 0
main.read_X_tmp4 = 0
main.read_X_x0 = 0
main.read_X_x1 = 0
main.read_X_x10 = 0
main.read_X_x11 = 0
main.read_X_x12 = 0
main.read_X_x13 = 0
main.read_X_x14 = 0
main.read_X_x15 = 0
main.read_X_x16 = 0
main.read_X_x17 = 0
main.read_X_x18 = 0
main.read_X_x19 = 0
main.read_X_x2 = 0
main.read_X_x20 = 0
main.read_X_x21 = 0
main.read_X_x22 = 0
main.read_X_x23 = 0
main.read_X_x24 = 0
main.read_X_x25 = 0
main.read_X_x26 = 0
main.read_X_x27 = 0
main.read_X_x28 = 0
main.read_X_x29 = 0
main.read_X_x30 = 0
main.read_X_x31 = 0
main.read_X_x4 = 0
main.read_X_x5 = 0
main.read_X_x6 = 0
main.read_X_x7 = 0
main.read_X_x8 = 0
main.read_X_x9 = 0
main.Y_const = 0
main.Y_read_free = 0
main.read_Y_lr_sc_reservation = 0
main.read_Y_tmp1 = 0
main.read_Y_tmp2 = 0
main.read_Y_tmp3 = 0
main.read_Y_tmp4 = 0
main.read_Y_x0 = 0
main.read_Y_x1 = 0
main.read_Y_x11 = 0
main.read_Y_x12 = 0
main.read_Y_x13 = 0
main.read_Y_x14 = 0
main.read_Y_x15 = 0
main.read_Y_x16 = 0
main.read_Y_x17 = 0
main.read_Y_x18 = 0
main.read_Y_x19 = 0
main.read_Y_x2 = 0
main.read_Y_x20 = 0
main.read_Y_x21 = 0
main.read_Y_x22 = 0
main.read_Y_x23 = 0
main.read_Y_x24 = 0
main.read_Y_x25 = 0
main.read_Y_x26 = 0
main.read_Y_x27 = 0
main.read_Y_x28 = 0
main.read_Y_x29 = 0
main.read_Y_x3 = 0
main.read_Y_x30 = 0
main.read_Y_x31 = 0
main.read_Y_x4 = 0
main.read_Y_x5 = 0
main.read_Y_x6 = 0
main.read_Y_x7 = 0
main.read_Y_x8 = 0
main.read_Y_x9 = 0
main.Z_const = 0
main.Z_read_free = 0
main.read_Z_tmp1 = 0
main.read_Z_tmp2 = 0
main.read_Z_tmp3 = 0
main.read_Z_x0 = 0
main.read_Z_x1 = 0
main.read_Z_x10 = 0
main.read_Z_x12 = 0
main.read_Z_x13 = 0
main.read_Z_x14 = 0
main.read_Z_x15 = 0
main.read_Z_x16 = 0
main.read_Z_x17 = 0
main.read_Z_x18 = 0
main.read_Z_x19 = 0
main.read_Z_x20 = 0
main.read_Z_x21 = 0
main.read_Z_x22 = 0
main.read_Z_x23 = 0
main.read_Z_x24 = 0
main.read_Z_x25 = 0
main.read_Z_x26 = 0
main.read_Z_x27 = 0
main.read_Z_x28 = 0
main.read_Z_x29 = 0
main.read_Z_x30 = 0
main.read_Z_x31 = 0
main.read_Z_x5 = 0
main.read_Z_x6 = 0
main.read_Z_x7 = 0
main.read_Z_x8 = 0
main.read_Z_x9 = 0
main.W_read_free = 0
main.read_W_tmp2 = 0
main.read_W_x1 = 0
main.read_W_x10 = 0
main.read_W_x11 = 0
main.read_W_x12 = 0
main.read_W_x13 = 0
main.read_W_x14 = 0
main.read_W_x15 = 0
main.read_W_x16 = 0
main.read_W_x17 = 0
main.read_W_x18 = 0
main.read_W_x19 = 0
main.read_W_x20 = 0
main.read_W_x21 = 0
main.read_W_x22 = 0
main.read_W_x23 = 0
main.read_W_x24 = 0
main.read_W_x25 = 0
main.read_W_x26 = 0
main.read_W_x27 = 0
main.read_W_x28 = 0
main.read_W_x29 = 0
main.read_W_x30 = 0
main.read_W_x31 = 0
main.read_W_x5 = 0
main.read_W_x6 = 0
main.read_W_x7 = 0
main.read_W_x8 = 0
main.read_W_x9 = 0
=> Error: Table rows exhausted

thread 'tests::test_zkvm_lr_execute_then_prove' panicked at /home/devadmin/.cargo/git/checkouts/powdr-5ad669c296f4e377/514a0ed/executor/src/witgen/vm_processor.rs:435:9:
Witness generation failed.
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace
test tests::test_zkvm_lr_execute_then_prove ... FAILED

failures:

failures:
tests::test_zkvm_lr_execute_then_prove

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 2 filtered out; finished in 404.86s

error: test failed, to rerun pass --lib

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

No branches or pull requests

1 participant