Commit Graph

3355 Commits

Author SHA1 Message Date
Jeff Washington (jwash) 09ede8b85c
reuse update_shrink_stats for combine_ancient_slots (#28466) 2022-10-19 14:17:34 -07:00
Alexander Meißner 5aca7df232
Bank::create_executor() (#28474)
* Moves the integration test test_bpf_loader_upgradeable_deploy_with_max_len() from the bpf_loader into the runtime.

* Adds Bank::create_executor().

* Adds a test for Bank::create_executor().
2022-10-19 22:28:57 +02:00
Brooks Prumo 70e83e82c6
Waits to handle snapshot requests until after startup verification is complete (#28481) 2022-10-19 13:39:47 -04:00
Jeff Washington (jwash) 2b11926c9e
simplify combine_ancient_slots (#28464) 2022-10-19 09:35:21 -07:00
Jeff Washington (jwash) 8b115ff489
factor out update_shrink_stats (#28465)
* use local for shrink_stats

* renames and remove .as_us()

* factor out update_shrink_stats

* use integer to report us in metrics
2022-10-19 08:08:04 -07:00
Jeff Washington (jwash) 040035063f
share shrink_collect code (#28454)
* share shrink_collect code

* use correct stats
2022-10-19 08:07:05 -07:00
Brooks Prumo 1cc9cf927c
Supports warping with Epoch Accounts Hash (#28459) 2022-10-19 10:37:14 -04:00
Jeff Washington (jwash) ca115594ff
remove concept of 'full' ancient append vec (#28449) 2022-10-18 15:08:04 -07:00
Jeff Washington (jwash) c89bd0d6a4
make ancient shrink consistent with shrink (#28457) 2022-10-18 15:05:32 -07:00
Jeff Washington (jwash) 825b83c95c
simple minor refactoring (#28456) 2022-10-18 15:05:06 -07:00
Jeff Washington (jwash) 3835ac166e
refactor load_accounts_index_for_shrink for easier sharing (#28455) 2022-10-18 14:55:10 -07:00
Jeff Washington (jwash) d52e28ac22
combine sort into get_unique_accounts_from_storages (#28450) 2022-10-18 11:52:48 -07:00
Jeff Washington (jwash) b583ec79e1
add tests for should_move_to_ancient_append_vec (#28438)
add tests for should_moev_to_ancient_append_vec
2022-10-18 11:41:35 -07:00
Jeff Washington (jwash) fd2e671861
remove slot# from account hash (#28405)
* remove slot# from account hash

* add feature

* fix tests

* constants to help clarify 'irrelevant' changes

* move to enum for enforcing irrelevancy

* ignore unsupported tests
2022-10-18 08:03:37 -07:00
Jeff Washington (jwash) 682999a423
accounts hash calculation uses files instead of memory (#28065) 2022-10-18 07:51:38 -07:00
Jeff Washington (jwash) b669b827fb
refactor and test get_sorted_potential_ancient_slots (#28436) 2022-10-18 07:45:43 -07:00
Justin Starry 70445b7402
Refactor: Rename `max_invoke_depth` to `max_invoke_stack_height` (#28427)
Refactor: Rename max_invoke_depth to max_invoke_stack_height
2022-10-17 23:54:56 +08:00
Jeff Washington (jwash) 28a89a1d99
remove expected rent collection and rehashing completely (#28422) 2022-10-17 07:24:42 -07:00
Jeff Washington (jwash) f896513864
remove unnecessary clones (#28406) 2022-10-16 20:33:07 -07:00
Jeff Washington (jwash) 0807105c5a
refactoring of accounts hash to prepare for using files always (#28379) 2022-10-14 12:29:43 -07:00
Brooks Prumo 31c2b29941
Sends both an EAH and a snapshot request from `set_root()` (#28363) 2022-10-14 11:00:04 -04:00
Brooks Prumo dd7fee8f32
Re-enqueues unhandled ABS requests (#28362) 2022-10-13 16:25:39 -04:00
Brooks Prumo 9cbd00fdbc
Converts PendingAccountsPackage to a channel (#28352) 2022-10-13 12:47:36 -04:00
Jeff Washington (jwash) 72d6927fa1
factor out hashing of storages for caching (#28261) 2022-10-13 08:53:54 -07:00
Jeff Washington (jwash) 53a1a14868
eliminate worthless work in store_accounts_to (#28365) 2022-10-12 13:30:20 -07:00
Alexander Meißner 664339e239
Refactor - executor_cache (#28332)
* Renames CachedExecutors => BankExecutorCache.

* Renames TransactionExecutor => TransactionExecutorCacheEntry.

* Renames TransactionExecutorStatus => TxBankExecutorCacheDiff.

* Adds TransactionExecutorCache.

* Renames the items of TxBankExecutorCacheDiff.
2022-10-12 18:09:03 +02:00
steviez db9e32d71d
Revert "log adding root every 10s (#28280)" (#28334)
This reverts commit 16853acf35.

We get similar coverage from the slot field of bank-forks_set_root;
additionally, we can see banks with bank-new_from_parent-heights.
2022-10-11 12:49:49 -05:00
Brooks Prumo 020cc090d5
Refactors ABS snapshot request handling (#28326) 2022-10-11 13:17:06 -04:00
Ian Macalinao cdf77bb824
runtime: fix typo 'transaction' (#27948) 2022-10-11 07:47:10 -07:00
Jeff Washington (jwash) 7a120b8b62
accounts_db::load returns None for zero lamport accounts (#28311) 2022-10-11 07:43:03 -07:00
Brooks Prumo d500391006
Removes redundant accounts_package_type (#28325) 2022-10-10 17:11:38 +00:00
Alexander Meißner 2fc8e533a2
Refactor - Move `executor_cache` to program-runtime crate (#28322)
* Moves CachedExecutors, related structs, consts and tests into the program-runtime crate.

* Moves TransactionExecutor, related enum and type defs into executor_cache mod.
2022-10-10 15:01:41 +02:00
Jeff Washington (jwash) 16853acf35
log adding root every 10s (#28280) 2022-10-07 09:19:34 -07:00
Jeff Washington (jwash) a1fe8dd444
add info for load race condition asserts (#28277) 2022-10-07 08:55:01 -07:00
Tao Zhu 0324573667
report additional transaction errors to metrics (#28285) 2022-10-07 10:36:22 -05:00
Jeff Washington (jwash) a400178744
hash calc chunking cleanup (#28274) 2022-10-06 23:23:26 -07:00
Jeff Washington (jwash) 76c30e7bd0
move accounts_db::load_without_fixed_root to test mod (#28271) 2022-10-06 17:11:08 -07:00
Jeff Washington (jwash) 66cd290d04
add chunk tracking in SplitAncientStorages (#28202) 2022-10-06 11:19:53 -07:00
Jeff Washington (jwash) bb9a19ac86
minor refactoring of accounts hash cache (#28260) 2022-10-06 10:50:16 -07:00
Jeff Washington (jwash) 435d4aded9
run initial hash calc in background, using background threads (#28239) 2022-10-05 19:42:06 -07:00
Brooks Prumo eec2a2a301
Move epoch accounts hash utility functions (#28219) 2022-10-05 23:29:22 +00:00
Jeff Washington (jwash) 456d4ae93a
accounts hash calc, add get_ancient_slots (#28240) 2022-10-05 15:32:39 -07:00
Jeff Washington (jwash) ad0742c7cf
exit early deep in bank freeze, avoiding some unnecessary work (#28238)
exit early on bank freeze
2022-10-05 14:49:33 -07:00
Brooks Prumo a8c6a9e5fc
Bank::freeze() waits for EAH calculation to complete (#28170) 2022-10-05 17:44:35 -04:00
Jeff Washington (jwash) 3f5eec32cd
refactor SplitAncientStorages::new for testing (#28235) 2022-10-05 12:56:29 -07:00
Jeff Washington (jwash) f464c69764
refactor into SplitAncientStorages::new (#28228) 2022-10-05 08:46:53 -07:00
Jeff Washington (jwash) 3339570a70
accounts hash scan refactoring (#28220) 2022-10-04 10:19:50 -07:00
Jeff Washington (jwash) fd11e261dd
use ref for snapshot_storages.iter_range (#28205) 2022-10-04 09:11:44 -07:00
Justin Starry ddf95c181c
RPC: Support versioned txs in getFeeForMessage API (#28217)
* RPC: Support versioned txs in getFeeForMessage API

* Update sdk/program/src/message/sanitized.rs

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
2022-10-05 00:00:34 +08:00
Jeff Washington (jwash) 39b37e2c6f
remove LoadZeroLamports enum (#28204)
remove feature return_none_for_zero_lamport_accounts
2022-10-04 08:06:56 -07:00
Jeff Washington (jwash) e2c0999568
rename fields in SplitAncientStorages (#28200) 2022-10-03 17:18:08 -07:00
Jeff Washington (jwash) df76cb5ad9
refactor into split_storages_ancient (#28194) 2022-10-03 14:25:33 -07:00
Jeff Washington (jwash) 7b4a6ded5b
remove feature return_none_for_zero_lamport_accounts (#28144) 2022-10-03 12:22:56 -07:00
Jeff Washington (jwash) 05ebd42ac5
remove troublesome assert (#28195) 2022-10-03 12:18:48 -07:00
Jeff Washington (jwash) 2d4c88574c
add accounts hash get_binned_data() (#28168) 2022-10-03 12:17:32 -07:00
Brooks Prumo 5d044ccb34
abs: Update last_full_snapshot_slot before calling clean_accounts() (#27940) 2022-10-03 09:34:13 -04:00
Jeff Washington (jwash) adc4e633a2
accounts hash calc refactoring (#28164) 2022-10-01 17:09:50 -07:00
Jeff Washington (jwash) 7fd8540b49
refactor CacheHashDataFile to use mmapped data (#28163)
reafactor CacheHashDataFile to use mmapped data
2022-10-01 17:09:36 -07:00
Jeff Washington (jwash) 929a311155
refactor accts hash tests (#28165) 2022-10-01 17:09:29 -07:00
Jeff Washington (jwash) 9255506e92
refactor some accts hash tests (#28167) 2022-09-30 14:24:48 -07:00
Brooks Prumo 2f8f6c6a31
Send Epoch Accounts Hash requests from set_root() (#27764) 2022-09-30 14:59:41 -04:00
Jeff Washington (jwash) cfc124c825
acct idx can no longer use write cache (#28150) 2022-09-30 10:55:27 -07:00
Jeff Washington (jwash) 2196fcb4c8
alignment work (#28123) 2022-09-30 07:34:18 -07:00
Jeff Washington (jwash) 80c0173452
width of hash calc bins was off by 1 (#28124) 2022-09-29 11:45:53 -07:00
Brooks Prumo e6b237c2e8
eah: Add log in bank (#28110) 2022-09-28 14:45:42 -04:00
Haoran Yi 5b4a669e5f fix typo 2022-09-28 09:48:56 -05:00
Brooks Prumo 4d02292931
Use epoch_accounts_hash::calculation_stop() (#28106) 2022-09-28 09:11:18 -04:00
Jeff Washington (jwash) a89010cc89
fix duplicate local variable (#28093) 2022-09-27 08:48:05 -07:00
Jeff Washington (jwash) c7cda6c658
refactor hash calc caching (#27990) 2022-09-26 15:21:47 -07:00
apfitzge cdb95a362f
update upacking thread names (#28081)
* update upacking thread names

* remove - add ht
2022-09-26 14:51:31 -05:00
Jeff Washington (jwash) 1aa9c57a41
hash cache get_slice (#28018) 2022-09-26 09:30:20 -07:00
Justin Starry a0f49c2e4f
Add assertions for computed block cost limit constants (#28056) 2022-09-26 12:50:31 +00:00
Alexander Meißner 71aee4fcaf
Feature: Explicitly limit `TransactionContext::instruction_trace_capacity` (#27938)
* Renames instruction_stack_capacity => instruction_stack_capacity.

* Replaces number_of_instructions_at_transaction_level by instruction_trace_capacity.

* Adds MaxInstructionTraceLengthExceeded.

* Adjusts TransactionContext::new() parameter.

* Adds feature gate limit_max_instruction_trace_length.

* Adds test_max_instruction_trace_length().
2022-09-26 10:47:16 +02:00
Jeff Washington (jwash) de7a5f2c68
get rid of unnecessary mut (#28017) 2022-09-25 18:39:02 -07:00
Alessandro Decina b9f4c8e3c0
BorrowedAccount: add set_data_from_slice(), make set_data() take owned values (#27836)
* BorrowedAccount: add set_data_from_slice(), make set_data() take owned values

set_data() used to take a slice and would force alloc+copy if the caller
has owned values (eg account creation, account lookup table).

Expose set_data_from_slice() for callers that have slices, and switch
set_data() to taking an owned Vec.

* BorrowAccount: refactor common accounts_update_delta code in helper method

* BorrowedAccount: add extend_from_slice()

This allows avoiding copies appending entries to account lookup tables.

* BorrowedAccount: remove unnecessary ifs around update_accounts_resize_delta
2022-09-24 01:37:02 +01:00
Tao Zhu f64242847d
increase instruction data cost (#27992) 2022-09-23 16:15:31 -05:00
behzad nouri 9ee53e594d
patches clippy errors from new rust nightly release (#28028) 2022-09-23 20:57:27 +00:00
apfitzge ca55fc8a05
root_bank_cache (#27985)
* BankForks: atomic root

* root bank cache

* fix and clean up

* added some tests
2022-09-23 15:01:03 -05:00
Jeff Washington (jwash) 89b0abcf4d
get_one_epoch_old_slot_for_hash_calc_scan to handle many old append vecs (#28000) 2022-09-23 11:17:02 -07:00
behzad nouri 315707504e
boxes StakeState in stake_account::Error::InvalidDelegation (#28006)
This avoids clippy::result_large_err error on newer rust versions:
https://rust-lang.github.io/rust-clippy/master/#result_large_err
2022-09-23 14:04:44 +00:00
Michael Vines fb686cc83b Nodes with 0% commission are now included in the `getBlock` RPC method `rewards` response field. 2022-09-22 20:31:41 -07:00
behzad nouri 9a57c64f21
patches clippy errors from new rust nightly release (#27996) 2022-09-22 22:23:03 +00:00
apfitzge 64f64dedea
Use regex in get_snapshot_file_kind (#27728)
refactor get_snapshot_file_kind to use regex
2022-09-22 13:55:48 -05:00
Brooks Prumo 1ee595ca9c
remove AccountsDb::initial_blockstore_processing_complete (#27974) 2022-09-22 13:52:04 -04:00
apfitzge a846d50b6a
Interleaved snapshot unpack versioning (#27484)
* Issue #27346 - deserialize and check snapshot version before account fields

* Update comment on SnapshotFileKind

Co-authored-by: Brooks Prumo <brooks@prumo.org>

* SnapshotStorageRebuilderResult to RebuiltSnapshotStorage

* better error propagation from rebuild_storage

Co-authored-by: apfitzge <apfitzge@users.noreply.github.com>
Co-authored-by: Brooks Prumo <brooks@prumo.org>
2022-09-22 11:44:25 -05:00
dependabot[bot] c4fa849844
chore: bump itertools from 0.10.3 to 0.10.5 (#27962)
* chore: bump itertools from 0.10.3 to 0.10.5

Bumps [itertools](https://github.com/rust-itertools/itertools) from 0.10.3 to 0.10.5.
- [Release notes](https://github.com/rust-itertools/itertools/releases)
- [Changelog](https://github.com/rust-itertools/itertools/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-itertools/itertools/commits)

---
updated-dependencies:
- dependency-name: itertools
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* [auto-commit] Update all Cargo lock files

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dependabot-buildkite <dependabot-buildkite@noreply.solana.com>
2022-09-21 15:28:49 -06:00
dependabot[bot] 00e4313542
chore: bump regex from 1.5.6 to 1.6.0 (#27678)
* chore: bump regex from 1.5.6 to 1.6.0

Bumps [regex](https://github.com/rust-lang/regex) from 1.5.6 to 1.6.0.
- [Release notes](https://github.com/rust-lang/regex/releases)
- [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/regex/compare/1.5.6...1.6.0)

---
updated-dependencies:
- dependency-name: regex
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* [auto-commit] Update all Cargo lock files

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dependabot-buildkite <dependabot-buildkite@noreply.solana.com>
2022-09-21 18:09:33 +00:00
Brooks Prumo 5d7130623f
abs: Snapshot requests are handled in priority-order (#27942) 2022-09-21 12:39:09 -04:00
Brooks Prumo ceac6a1094
abs: Refactor determining the accounts package type (#27944) 2022-09-20 20:31:08 -04:00
Jeff Washington (jwash) 6e24edb771
log metric in case of race condition (#27951) 2022-09-20 16:23:25 -07:00
Ian Macalinao ab8b3386a1
runtime: fix typo for 'exempt' (#27947) 2022-09-20 16:58:57 -06:00
Ian Macalinao aa52b8aec1
runtime: fix 'governed' typo (#27946) 2022-09-20 13:05:13 -06:00
Jeff Washington (jwash) 4893dd3490
re-enable caching of hash calculation (#27920) 2022-09-20 10:44:57 -07:00
Jeff Washington (jwash) d74480a125
when shrinking, don't send entire old append vec to clean (#27914) 2022-09-20 06:32:07 -07:00
Jeff Washington (jwash) f2d6a7ecea
bank.initial_blockstore_processing_complete to avoid concurrent hash calculations (#27776)
* bank.initial_blockstore_processing_complete to avoid concurrent hash calculations

* Update runtime/src/bank.rs

Co-authored-by: Brooks Prumo <brooks@prumo.org>

* Update runtime/src/bank.rs

Co-authored-by: Brooks Prumo <brooks@prumo.org>

* Rename TestValidator::set_startup_verification_complete()

* Initialize with `AtomicBool::new(false)` instead of `default()`

* snapshot tests: move where `initial_blockstore_processing_completed()` is called

* fixup bank_forks.rs calling `is_initial_blockstore_processing_complete()`

* only call initial_blockstore_processing_completed() in blockstore_processor

Co-authored-by: Brooks Prumo <brooks@prumo.org>
Co-authored-by: Brooks Prumo <brooks@solana.com>
2022-09-19 13:00:21 -07:00
Jeff Washington (jwash) 9f097301df
remove dead code (#27858) 2022-09-19 07:36:40 -07:00
Ian Macalinao 7d06f7a174
runtime: fix typo in expected_rent_collection.rs (#27890) 2022-09-17 21:58:33 -06:00
Ian Macalinao 0e19b22e08
runtime: fix typo occured -> occurred (#27891) 2022-09-17 21:58:09 -06:00
Ian Macalinao c1c93adf67
runtime: fix typo recalcluate -> recalculate (#27892) 2022-09-17 21:57:38 -06:00
Ian Macalinao 9cec2ef577
runtime: fix typo situtation -> situation (#27893) 2022-09-17 21:57:13 -06:00