privacy-scaling-explorations/zkevm-circuits

nondeterministic circuit generation in integration test

hero78119 opened this issue · 2 comments

What command(s) is the bug in?

Remote CI integration test

Describe the bug

Circuit are nondeterministic generated, which lead to variadic constraint system

Reproduced on latest main branch

PR and correspondent CI error

Preliminary investigated result

Mismatched are fixed column index 1 after insert more debug log.
Also reported the stack trace where index_1 fixed column are inserted in ConstrainSystem, which came from block_table
It might came from block_table refactor long time ago.

stack backtrace:
   ...
   3: zkevm_circuits::table::block_table::BlockTable::construct
             at ./src/table/block_table.rs:46:18
   4: <zkevm_circuits::evm_circuit::EvmCircuit<F> as halo2_proofs::plonk::circuit::Circuit<F>>::configure_with_params
             at ./src/evm_circuit.rs:506:27
   5: zkevm_circuits::evm_circuit::param::get_step_height_map
             at ./src/evm_circuit/param.rs:188:19
   6: <zkevm_circuits::evm_circuit::param::EXECUTION_STATE_HEIGHT_MAP as core::ops::deref::Deref>::deref::__static_ref_initialize
             at ./src/evm_circuit/param.rs:184:89
   7: core::ops::function::FnOnce::call_once
             at /rustc/7f94b314cead7059a71a265a8b64905ef2511796/library/core/src/ops/function.rs:250:5
   8: spin::once::Once<T>::call_once
             at /home/wusm/.cargo/registry/src/index.crates.io-6f17d22bba15001f/spin-0.5.2/src/once.rs:110:50
   9: lazy_static::lazy::Lazy<T>::get
             at /home/wusm/.cargo/registry/src/index.crates.io-6f17d22bba15001f/lazy_static-1.4.0/src/core_lazy.rs:21:9
  10: <zkevm_circuits::evm_circuit::param::EXECUTION_STATE_HEIGHT_MAP as core::ops::deref::Deref>::deref::__stability
             at /home/wusm/.cargo/registry/src/index.crates.io-6f17d22bba15001f/lazy_static-1.4.0/src/lib.rs:142:21
  11: <zkevm_circuits::evm_circuit::param::EXECUTION_STATE_HEIGHT_MAP as core::ops::deref::Deref>::deref
             at /home/wusm/.cargo/registry/src/index.crates.io-6f17d22bba15001f/lazy_static-1.4.0/src/lib.rs:144:17
  12: zkevm_circuits::evm_circuit::step::ExecutionState::get_step_height_option
             at ./src/evm_circuit/step.rs:607:9
  13: zkevm_circuits::evm_circuit::step::ExecutionState::get_step_height
             at ./src/evm_circuit/step.rs:611:9
  14: zkevm_circuits::evm_circuit::EvmCircuit<F>::get_min_num_rows_required
             at ./src/evm_circuit.rs:260:33
  15: zkevm_circuits::evm_circuit::EvmCircuit<F>::get_num_rows_required
             at ./src/evm_circuit.rs:246:13
  ...

Other related issue for reference

It's related to this commit 3a46772 where previously it's under advice_column.
Upon change to fixed_column once history_hash vector are not getting in same size then lead to variadic bug.

Duplicated with #1703