Skip to content

Commit 8957938

Browse files
authored
Merge branch 'merge-train/spartan-v5' into phil/bench-integration-v5
2 parents c1d9ee2 + aa725dc commit 8957938

671 files changed

Lines changed: 25194 additions & 10677 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/pull-request-title.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ jobs:
2828
types: |
2929
fix
3030
feat
31+
perf
3132
chore
3233
refactor
3334
docs

.test_patterns.yml

Lines changed: 31 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -108,45 +108,41 @@ tests:
108108
skip: true
109109
owners:
110110
- *alex
111-
- regex: "src/e2e_fees/private_payments"
111+
- regex: "src/single-node/fees/private_payments"
112112
owners:
113113
- *phil
114-
- regex: "src/e2e_token_contract/access_control"
114+
- regex: "src/automine/token/access_control"
115115
error_regex: "HttpRequestError: HTTP request failed."
116116
owners:
117117
- *charlie
118-
- regex: "src/e2e_lending_contract"
118+
- regex: "src/automine/token/lending"
119119
error_regex: "✕ Depositing"
120120
owners:
121121
- *lasse
122-
- regex: "src/e2e_lending_contract"
122+
- regex: "src/automine/token/lending"
123123
error_regex: "✕ Repay"
124124
owners:
125125
- *lasse
126-
- regex: "src/e2e_cross_chain_messaging/l1_to_l2"
126+
- regex: "src/single-node/cross-chain/l1_to_l2"
127127
owners:
128128
- *palla
129-
- regex: "src/e2e_cross_chain_messaging/token_bridge_private"
129+
- regex: "src/single-node/cross-chain/token_bridge_private"
130130
error_regex: "✕ Claim secret is enough to consume the message"
131131
owners:
132132
- *lasse
133-
- regex: "src/e2e_cross_chain_messaging/token_bridge_public"
133+
- regex: "src/single-node/cross-chain/token_bridge_public"
134134
error_regex: "✕ Someone else can mint funds to me on my behalf"
135135
owners:
136136
- *lasse
137-
- regex: "src/e2e_cross_chain_messaging/token_bridge_public"
137+
- regex: "src/single-node/cross-chain/token_bridge_public"
138138
error_regex: "✕ Publicly deposit funds"
139139
owners:
140140
- *lasse
141-
- regex: "src/e2e_cross_chain_messaging/token_bridge_failure_cases"
141+
- regex: "src/single-node/cross-chain/token_bridge_failure_cases"
142142
error_regex: "✕ Can't claim funds"
143143
owners:
144144
- *lasse
145-
- regex: "src/e2e_l1_publisher/e2e_l1_publisher.test.ts"
146-
error_regex: "Anvil failed to stop in time|Cannot read properties of undefined"
147-
owners:
148-
- *palla
149-
- regex: "src/e2e_bot.test.ts"
145+
- regex: "src/single-node/bot/bot.test.ts"
150146
error_regex: "Tx dropped"
151147
owners:
152148
- *palla
@@ -185,10 +181,6 @@ tests:
185181
error_regex: "ContractFunctionExecutionError: The contract function"
186182
owners:
187183
- *mitch
188-
- regex: "e2e_p2p/valid_epoch_pruned_slash.test.ts"
189-
owners:
190-
- *mitch
191-
- *palla
192184
- regex: "archiver/src/archiver/archiver.test.ts"
193185
error_regex: "Received number of calls: 1"
194186
owners:
@@ -201,6 +193,10 @@ tests:
201193
owners:
202194
- *phil
203195
- *palla
196+
- regex: "sequencer-client/src/publisher/l1_publisher.integration.test.ts"
197+
error_regex: "Anvil failed to stop in time|Cannot read properties of undefined"
198+
owners:
199+
- *palla
204200

205201
# Nightly GKE tests
206202
- regex: "spartan/bootstrap.sh"
@@ -225,7 +221,7 @@ tests:
225221
owners:
226222
- *adam
227223

228-
- regex: "yarn-project/end-to-end/scripts/run_test.sh simple src/e2e_bot.test.ts"
224+
- regex: "yarn-project/end-to-end/scripts/run_test.sh simple src/single-node/bot/bot.test.ts"
229225
error_regex: "Nonce provided for the transaction is lower than the current nonce of the account"
230226
owners:
231227
- *adam
@@ -290,7 +286,7 @@ tests:
290286
# Blanket flake patterns for unstable p2p, epoch, and l1 tx utils tests
291287
# This is a temporary measure while team bandwidth is constrained
292288
# Replaced many specific patterns - see https://github.com/AztecProtocol/aztec-packages/pull/17962 for historical context
293-
- regex: "src/e2e_p2p/.*\\.test\\.ts"
289+
- regex: "src/p2p/.*\\.test\\.ts"
294290
flake_group_id: e2e-p2p-epoch-flakes
295291
owners:
296292
- *phil
@@ -305,6 +301,11 @@ tests:
305301
owners:
306302
- *palla
307303

304+
- regex: "src/automine/.*\\.test\\.ts"
305+
flake_group_id: e2e-p2p-epoch-flakes
306+
owners:
307+
- *palla
308+
308309
- regex: "p2p/src/client/test/.*\\.test\\.ts"
309310
flake_group_id: e2e-p2p-epoch-flakes
310311
owners:
@@ -330,12 +331,16 @@ tests:
330331
- *leila
331332

332333
# http://ci.aztec-labs.com/61d96be1402847b1
334+
# The L1↔L2 bridging flow sends its L1 txs against an automining anvil that the
335+
# local-network sequencer and cheat codes also drive; under load a tx can sit
336+
# unmined past viem's confirmation timeout, surfacing as either the jest per-test
337+
# timeout or a viem WaitForTransactionReceiptTimeoutError (http://ci.aztec-labs.com/1643e817d7242e0e).
333338
- regex: "src/composed/e2e_token_bridge_tutorial_test.test.ts"
334-
error_regex: "Exceeded timeout of [0-9]+ ms for a test"
339+
error_regex: "Exceeded timeout of [0-9]+ ms for a test|WaitForTransactionReceiptTimeoutError: Timed out while waiting for transaction"
335340
owners:
336341
- *palla
337342

338-
- regex: "e2e_block_building"
343+
- regex: "src/single-node/block-building/block_building.test.ts"
339344
error_regex: "✕ processes txs until hitting timetable"
340345
owners:
341346
- *palla
@@ -368,7 +373,7 @@ tests:
368373
owners:
369374
- *lasse
370375

371-
- regex: "yarn-project/end-to-end/scripts/run_test.sh simple src/e2e_fees/gas_estimation.test.ts"
376+
- regex: "yarn-project/end-to-end/scripts/run_test.sh simple src/single-node/fees/gas_estimation.parallel.test.ts"
372377
error_regex: "timeout: sending signal TERM to command 'bash'"
373378
owners:
374379
- *alex
@@ -383,7 +388,7 @@ tests:
383388
# p2p checkpoint-attestation-validator's acceptance window, getting rejected
384389
# before the slasher's gossip callback fires. The slasher then never records
385390
# ATTESTED_TO_INVALID_CHECKPOINT_PROPOSAL and the test times out.
386-
- regex: "src/e2e_slashing/attested_invalid_proposal.test.ts"
391+
- regex: "src/multi-node/slashing/attested_invalid_proposal.parallel.test.ts"
387392
error_regex: "Timeout awaiting honest validator slash offenses for invalid proposal attestation"
388393
owners:
389394
- *palla
@@ -394,22 +399,17 @@ tests:
394399

395400
# http://ci.aztec-labs.com/98d59d04f85223f8
396401
# Build-cache flake: module not found during Jest startup
397-
- regex: "src/e2e_sequencer/gov_proposal.parallel.test.ts"
402+
- regex: "src/single-node/sequencer/gov_proposal.parallel.test.ts"
398403
error_regex: "Cannot find module '@aztec/sequencer-client/config'"
399404
owners:
400405
- *palla
401406

402407
# http://ci.aztec-labs.com/153f5dcbb0f3799c
403-
- regex: "src/e2e_offchain_payment.test.ts"
408+
- regex: "src/automine/effects/offchain_payment.parallel.test.ts"
404409
error_regex: "✕ reprocesses an offchain-delivered payment after an L1 reorg"
405410
owners:
406411
- *martin
407412

408-
- regex: "yarn-project/scripts/run_test.sh bb-prover/src/avm_proving_tests/avm_"
409-
error_regex: "timeout: sending signal"
410-
owners:
411-
- *charlie
412-
413413
- regex: "run_test.sh simple tx_stats_bench"
414414
error_regex: "✕ verifies transactions at 10 TPS"
415415
owners:
Binary file not shown.

barretenberg/cpp/src/barretenberg/vm2/tracegen/lib/lookup_builder.hpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -51,10 +51,10 @@ template <typename LookupSettings_> class IndexedLookupTraceBuilder : public Int
5151
}
5252

5353
trace.set(LookupSettings::COUNTS, dst_row, trace.get(LookupSettings::COUNTS, dst_row) + 1);
54-
// Set the fine grained inner selector if it's not already one.
55-
if (LookupSettings::DST_SELECTOR != this->outer_dst_selector &&
56-
trace.get(LookupSettings::DST_SELECTOR, dst_row) != 1) {
57-
trace.set(LookupSettings::DST_SELECTOR, dst_row, 1);
54+
if (LookupSettings::DST_SELECTOR != this->outer_dst_selector) {
55+
// This step might write to the same cell from multiple threads, so we use atomic limbs to avoid UB.
56+
// Since we are always writing a 1, the end result will be 1 even under concurrency.
57+
trace.set(LookupSettings::DST_SELECTOR, dst_row, 1, /*use_atomic_limbs=*/true);
5858
}
5959
});
6060
}
@@ -198,10 +198,10 @@ template <typename LookupSettings> class LookupIntoDynamicTableSequential : publ
198198
if (dst_selector == 1 && src_values == trace.get_multiple(LookupSettings::DST_COLUMNS, dst_row)) {
199199
trace.set(LookupSettings::COUNTS, dst_row, trace.get(LookupSettings::COUNTS, dst_row) + 1);
200200

201-
// Set the fine grained inner selector if it's not already one.
202-
if (LookupSettings::DST_SELECTOR != this->outer_dst_selector &&
203-
trace.get(LookupSettings::DST_SELECTOR, dst_row) != 1) {
204-
trace.set(LookupSettings::DST_SELECTOR, dst_row, 1);
201+
if (LookupSettings::DST_SELECTOR != this->outer_dst_selector) {
202+
// This step might write to the same cell from multiple threads, so we use atomic limbs to avoid
203+
// UB. Since we are always writing a 1, the end result will be 1 even under concurrency.
204+
trace.set(LookupSettings::DST_SELECTOR, dst_row, 1, /*use_atomic_limbs=*/true);
205205
}
206206

207207
found = true;

0 commit comments

Comments
 (0)