When generating new Ps, the proposer of the P posit generation becomes the owner of the new Presignature. Somehow, not all nodes get the same number of Ps in our tests.
These tests are known to fail because of slow or uneven P generation:
- test_sign_requests_wait_for_presignatures
- test_sign_contention_5_nodes
- test_sign_requests_wait_for_presignatures
Example assertion error, while waiting for 3 Ps per node:
2026-03-05T16:29:25.250615Z INFO integration_tests::mpc_fixture::fixture_interface: Node Participant(0) has 12 Ps
2026-03-05T16:29:25.251657Z INFO integration_tests::mpc_fixture::fixture_interface: Node Participant(1) has 8 Ps
2026-03-05T16:29:25.252524Z INFO integration_tests::mpc_fixture::fixture_interface: Node Participant(2) has 18 Ps
2026-03-05T16:29:25.253070Z INFO integration_tests::mpc_fixture::fixture_interface: Node Participant(3) has 3 Ps
2026-03-05T16:29:25.253654Z INFO integration_tests::mpc_fixture::fixture_interface: Node Participant(4) has 2 Ps
thread 'cases::mpc::test_sign_contention_5_nodes' (159697) panicked at /home/runner/work/mpc/mpc/integration-tests/src/mpc_fixture/fixture_interface.rs:92:16:
should have enough presignatures: Elapsed(())
full logs
Task: Find out why these are generated uneven and find a solution for a better distribution.
When generating new Ps, the proposer of the P posit generation becomes the owner of the new Presignature. Somehow, not all nodes get the same number of Ps in our tests.
These tests are known to fail because of slow or uneven P generation:
Example assertion error, while waiting for 3 Ps per node:
full logs
Task: Find out why these are generated uneven and find a solution for a better distribution.