-
Notifications
You must be signed in to change notification settings - Fork 1.7k
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
Update simulated geth client wrapper & LogPoller tests #13204
Update simulated geth client wrapper & LogPoller tests #13204
Conversation
…lient ( instead of deprecated backends.SimulatedBackendClient )
This test relied on markBlockFinalized() which has been replaced with finalizedBlocksThrough(). Just needed some slight adjustments to keep testing the same thing.
d5f0bb2
to
9be1d30
Compare
I see you updated files related to
|
74c13d9
to
81aa9b7
Compare
Add RegisterHeadNumberCallback() to SimulatedBackendClient, so we can trigger an rpc failover event just after reading a particular block, but before the logs get read for that block. This is the race condition that can happen on optimism chain which BackupPoller was designed to address
be613b7
to
aec7ffe
Compare
a5a60a5
to
fcae628
Compare
2
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
scratch file?
Presumably, the older verison of simulated.Backend would fill in fake timestamps instead of real ones?
The new Simulated Geth made two changes which affected this test 1. The automatic time interval added to each new block is now 1ns instead of 1s 2. AdjustTime() now automatically calls Commit() so it no longer needs to be called aftewards
- Consolidate go-ethereum imports - Remove extra geth-wrapper changes
fcae628
to
1a6e9ff
Compare
Present status:
I think the last one was what prompted me initially to run I'm not sure how many of these errors were already in the branch I'm trying to merge into, but seems like it might be about time to merge it and rebase that branch? |
core/gethwrappers/keystone/generation/generated-wrapper-dependency-versions-do-not-edit.txt
Outdated
Show resolved
Hide resolved
…aside from the // error at the end that's in CI as well.
Quality Gate passedIssues Measures |
* bump geth v1.13.14; rm hack; fix simulated backend; run make generate * Update simulated geth client wrapper & LogPoller tests (#13204) * Re-run make generate, fix fluxmonitorv2 & ocr2keeper tests * Update SimulatedBackendClient to wrap simulated.Backend & simulated.Client ( instead of deprecated backends.SimulatedBackendClient ) * Update LogPoller helper * Add support for switching rpc clients in simulated geth * Fix TestLogPoller_BackupPollAndSaveLogsSkippingLogsThatAreTooOld This test relied on markBlockFinalized() which has been replaced with finalizedBlocksThrough(). Just needed some slight adjustments to keep testing the same thing. * Fix TestLogPoller_ReorgDeeperThanFinality * Fix Test_PollAndSavePersistsFinalityInBlocks * Fix Test_PollAndQueryFinalizedBlocks * update listener_v2_log_listener_test * Fix chainreader & config poller tests * Update keeper integration tests * Re-run make generate * Update BackupLogPoller test Add RegisterHeadNumberCallback() to SimulatedBackendClient, so we can trigger an rpc failover event just after reading a particular block, but before the logs get read for that block. This is the race condition that can happen on optimism chain which BackupPoller was designed to address * . * Update TestLogPoller_PollAndSaveLogsDeepReorg * Not sure how this was working before Presumably, the older verison of simulated.Backend would fill in fake timestamps instead of real ones? * Update TestLogPoller_PollAndSaveLogs * Update TestLogPoller_Blocktimestamps The new Simulated Geth made two changes which affected this test 1. The automatic time interval added to each new block is now 1ns instead of 1s 2. AdjustTime() now automatically calls Commit() so it no longer needs to be called aftewards * Update TestLogPoller_BackupPollAndSaveLogsWithPollerNotWorking * Address PR review comments - Consolidate go-ethereum imports - Remove extra geth-wrapper changes * Update types in vrf tests * Update keepers, fluxmointor, transmitter,ocr test types * re-generate KeystoneForwarder * Replace optimismMode with chainFamily enum * Update more types GenesisAlloc, GenesisAccount, llo * Fix some more compilation errors (fluxmonitor2, vrf, ocr2, functions) * Fix lint errors, remove unused logpoller test definitions * Run go-generate again on KeystoneForwarder * Re-run "make generate" one more time, this time without any failures aside from the // error at the end that's in CI as well. * Re-generate generation version db for keystone * cleanup * make generate * cleanup * race-free simulated backend commits * race free commits * fix tests by adding commits * bump geth to 1.13.15 * fix more races * Remove inconsistent named param from return signature * insert temporary skips * make generate * skip more tests * skip more tests; fill zeroed timestamp on insert * fix race for commit * core/services/ocr2/plugins/ocr2keeper/evmregistry/v21/logprovider: run log poller * re-enable some tests * consolidate finalization helpers * fix some tests with real timestamps * simplify * core/services/vrf/solidity_cross_tests: raise gas estimate upper bound in TestMeasureRandomnessRequestGasCost * cleanup and patch for geth bug * new geth error; vrf test fixes * fix ccip tests * fix clo tests * more fixes * fix test var name * fix compile error * upgrade to 14.7 * fix lint * lint issues * make generate * fix more tests * skip failing tests * skip tests; linter issues * fix race & lint issues * BCFR-1047 Fix HT Tests (#14807) * Simulated defaults (#14986) * Simulated defaults * Direct request works * Fix config tests * AsyncEthTx * OCR + FM * Keepers * Functions * Bunch of keeper and VRF tests * More vrf tests * Cleanup * Fix a race * core/chains/evm/txmgr: fix TestEthBroadcaster_ProcessUnstartedEthTxs_OptimisticLockingOnEthTx * core/gethwrappers: regenerate * bump geth to 1.14.11 (#15041) * bump geth to 1.14.11 * remove AdjustTime hacks * Try replace in integration tests * Copy replace around * Preserve fork behaviour * generate * tidy * Work around geth, fix timestamp test * Fix docstring * Fix reader test * Linter * Re-enable CCIP deployment tests * Mod + lint * Remove cltest dependency which invokes pgtest init --------- Co-authored-by: connorwstein <[email protected]> * Another cltest remove * Go mod tidy * Regen lint and fix LLO test * Enable some more tests * core: prefer simulated backend interface in order to wrap with syncBackend * fix race: cleanup int conversion * lint * lint & fix * lint * lint * unskip and fix * Fix TestIntegration_OCR2_plugins * Fix more OCR tests * update t.Skip() messages * update changeset * Resurrect CCIP tests * Lint * replaces * lint --------- Co-authored-by: Domino Valdano <[email protected]> Co-authored-by: Domino Valdano <[email protected]> Co-authored-by: AnieeG <[email protected]> Co-authored-by: Dmytro Haidashenko <[email protected]> Co-authored-by: Connor Stein <[email protected]>
In this PR:
Update
SimulatedBackendClient
to wrap simulated.Backend & simulated.Client ( instead of deprecated backends.SimulatedBackendClient )Add
SetActiveClient()
toSimulatedBackendClient
to simulate switching from one rpc server to another while running.Add
RegisterHeadByNumberCallback
toSimulatedBackendCilent
, to register a custom callback function to be called each timeHeadByNumber()
is called.Add to
SimulateBackendClient
ability to run in "optimism mode", which behaves slightly different from geth: returns success rather than "block not found" ifFilterLogs()
is called with an invalid or unknown block hash.Update BackupPoller test to use the previous 3 features to simulate failing over.to an out-of-sync optimism rpc server during a race condition between pulling a particular block and its corresponding logs. (This is exactly the case which motivated the creation of Backup LogPoller.) This avoids the need to use rawdb, which is no longer accessible in geth.
Replace
markBlockAsFinalized()
andmarkBlockAsFinalizedByHash()
in LogPoller tests withfinalizeThroughBlock()
.Refactor logic in LogPoller tests previously using
markBlockAsFinalized(ByHash)
to make use offinalizedThroughBlock()
instead.Update some tests for new block timestamp behavior in Simulated Geth: automatic time increment between simulated blocks is 1ns now instead of 1s, and Client.AdjustTime() now automatically commits the current block after adjusting its timestamp
Update rest of tests in LogPoller and other packages to use new data types associated with (1.), instead of deprecated types