Skip to content

Commit 9b1c701

Browse files
authored
Merge pull request #716 from OffchainLabs/staker-test-fixes
test retries
2 parents 1950aab + f419338 commit 9b1c701

File tree

3 files changed

+21
-9
lines changed

3 files changed

+21
-9
lines changed

arbos/block_processor.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,7 @@ func ProduceBlockAdvanced(
203203
} else {
204204
tx = txes[0]
205205
txes = txes[1:]
206-
if tx.Type() == types.ArbitrumInternalTxType {
206+
if tx.Type() != types.ArbitrumInternalTxType {
207207
hooks = sequencingHooks // the sequencer has the ability to drop this tx
208208
isUserTx = true
209209
}

system_tests/staker_test.go

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,14 @@ import (
1414
"math/big"
1515
"strings"
1616
"testing"
17+
"time"
1718

1819
"github.com/ethereum/go-ethereum/accounts/abi/bind"
1920
"github.com/ethereum/go-ethereum/common"
2021
"github.com/ethereum/go-ethereum/params"
2122
"github.com/offchainlabs/nitro/arbutil"
2223
"github.com/offchainlabs/nitro/solgen/go/rollupgen"
24+
"github.com/offchainlabs/nitro/util/colors"
2325
"github.com/offchainlabs/nitro/validator"
2426
)
2527

@@ -186,7 +188,7 @@ func stakerTestImpl(t *testing.T, faultyStaker bool, honestStakerInactive bool)
186188
defer close(backgroundTxsShutdownChan)
187189
err := makeBackgroundTxs(backgroundTxsCtx, l2info, l2clientA, l2clientB, faultyStaker)
188190
if !errors.Is(err, context.Canceled) {
189-
t.Error("error making background txs", err)
191+
Fail(t, "error making background txs", err)
190192
}
191193
})()
192194

@@ -210,6 +212,14 @@ func stakerTestImpl(t *testing.T, faultyStaker bool, honestStakerInactive bool)
210212
stakerBTxs++
211213
}
212214
}
215+
216+
if err != nil && strings.Contains(err.Error(), "waiting") {
217+
colors.PrintRed("retrying ", err.Error(), i)
218+
time.Sleep(20 * time.Millisecond)
219+
i--
220+
continue
221+
}
222+
213223
if err != nil && faultyStaker && i%2 == 1 {
214224
// Check if this is an expected error from the faulty staker.
215225
if strings.Contains(err.Error(), "agreed with entire challenge") {
@@ -247,15 +257,15 @@ func stakerTestImpl(t *testing.T, faultyStaker bool, honestStakerInactive bool)
247257
isHonestZombie, err := rollup.IsZombie(&bind.CallOpts{}, valWalletAddrA)
248258
Require(t, err)
249259
if isHonestZombie {
250-
t.Fatal("staker A became a zombie")
260+
Fail(t, "staker A became a zombie")
251261
}
252262
for j := 0; j < 5; j++ {
253263
TransferBalance(t, "Faucet", "Faucet", common.Big0, l1info, l1client, ctx)
254264
}
255265
}
256266

257267
if stakerATxs == 0 || stakerBTxs == 0 {
258-
t.Fatal("staker didn't make txs: staker A made", stakerATxs, "staker B made", stakerBTxs)
268+
Fail(t, "staker didn't make txs: staker A made", stakerATxs, "staker B made", stakerBTxs)
259269
}
260270

261271
latestConfirmedNode, err := rollup.LatestConfirmed(&bind.CallOpts{})
@@ -264,24 +274,24 @@ func stakerTestImpl(t *testing.T, faultyStaker bool, honestStakerInactive bool)
264274
if latestConfirmedNode <= 1 && !honestStakerInactive {
265275
latestCreatedNode, err := rollup.LatestNodeCreated(&bind.CallOpts{})
266276
Require(t, err)
267-
t.Fatal("latest confirmed node didn't advance:", latestConfirmedNode, latestCreatedNode)
277+
Fail(t, "latest confirmed node didn't advance:", latestConfirmedNode, latestCreatedNode)
268278
}
269279

270280
if faultyStaker && !sawStakerZombie {
271-
t.Fatal("staker B didn't become a zombie despite being faulty")
281+
Fail(t, "staker B didn't become a zombie despite being faulty")
272282
}
273283

274284
isStaked, err := rollup.IsStaked(&bind.CallOpts{}, valWalletAddrA)
275285
Require(t, err)
276286
if !isStaked {
277-
t.Fatal("staker A isn't staked")
287+
Fail(t, "staker A isn't staked")
278288
}
279289

280290
if !faultyStaker {
281291
isStaked, err := rollup.IsStaked(&bind.CallOpts{}, valWalletAddrB)
282292
Require(t, err)
283293
if !isStaked {
284-
t.Fatal("staker B isn't staked")
294+
Fail(t, "staker B isn't staked")
285295
}
286296
}
287297
}

validator/staker.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -266,7 +266,9 @@ func (s *Staker) Act(ctx context.Context) (*types.Transaction, error) {
266266
}
267267
// If the wallet address is zero, or the wallet address isn't staked,
268268
// this will return the latest node and its hash (atomically).
269-
latestStakedNodeNum, latestStakedNodeInfo, err := s.validatorUtils.LatestStaked(callOpts, s.rollupAddress, walletAddressOrZero)
269+
latestStakedNodeNum, latestStakedNodeInfo, err := s.validatorUtils.LatestStaked(
270+
callOpts, s.rollupAddress, walletAddressOrZero,
271+
)
270272
if err != nil {
271273
return nil, err
272274
}

0 commit comments

Comments
 (0)