Skip to content

db/preverified: remove redundant assertSorted in Get#18967

Merged
anacrolix merged 1 commit into
erigontech:mainfrom
Bashmunta:db-preverified-sorteditems-get-assert-fix
Feb 5, 2026
Merged

db/preverified: remove redundant assertSorted in Get#18967
anacrolix merged 1 commit into
erigontech:mainfrom
Bashmunta:db-preverified-sorteditems-get-assert-fix

Conversation

@Bashmunta

Copy link
Copy Markdown
Contributor

SortedItems.Get was calling assertSorted directly and then calling searchName, which also invokes assertSorted, resulting in two O(n) sortedness checks per lookup without adding extra safety.
This change removes the direct assertSorted call from Get and keeps the invariant check centralized inside searchName.

@AskAlexSharov

Copy link
Copy Markdown
Collaborator

@anacrolix do we need this assert?

@anacrolix

Copy link
Copy Markdown
Contributor

@anacrolix do we need this assert?

We don't, but not sorting was previously causing a bug, so I ramped up the checks to catch anywhere else this might have been causing bugs.

@anacrolix

Copy link
Copy Markdown
Contributor

Yeah looks like I left it in there and forgot, it's definitely no longer needed here.

@anacrolix anacrolix merged commit 0a263a3 into erigontech:main Feb 5, 2026
16 checks passed
mattevans added a commit to ethpandaops/erigone-legacy that referenced this pull request Feb 6, 2026
* upstream/main: (91 commits)
  perf(cl/block_collector): optimize encodeBlock buffer allocation (erigontech#18980)
  db/kv: fix code cache hash key computation (erigontech#18965)
  Fix hive tests 0302 (erigontech#18986)
  perf(execution/types): optimize EIP-7685 request encoding (erigontech#18985)
  refactor: replace interface{} with any for clarity and modernization (erigontech#18978)
  refactor: replace interface{} with any for clarity and modernization (erigontech#18977)
  Rework Dockerhub API call authorization mechanism. (erigontech#18989)
  claude: add erigon-network-ports skill (erigontech#18992)
  PersistentBlockCollector: assert on inserting gap (erigontech#18979)
  qa-tests: add Geth test to the RPC Historic Performance Tests (erigontech#18895)
  a bit less debug logs (erigontech#18974)
  ProcessFrozenBlocks: to support `isDomainAheadOfBlocks` (which we have in `fcu`) (erigontech#18981)
  qa-tests: fix summary in RPC Performance Tests Latest (erigontech#18984)
  handle edge case for genesis block in SeekCommitment (erigontech#18960)
  db/preverified: remove redundant assertSorted in Get (erigontech#18967)
  txnprovider/shutter: fix identity preimage DecodeSSZ error length (erigontech#18938)
  perf(cl/sentinel): use stack allocation for light_client response prefix (erigontech#18961)
  Add debug.SetupSimple, and improve torrent client status info log (erigontech#18953)
  Refactor worker count calculation to remove redundant bounds check (erigontech#18415)
  fix: remove duplicate TxPoolBlobPriceBumpFlag check in setTxPool (erigontech#18472)
  ...
Giulio2002 pushed a commit that referenced this pull request Feb 6, 2026
SortedItems.Get was calling assertSorted directly and then calling
searchName, which also invokes assertSorted, resulting in two O(n)
sortedness checks per lookup without adding extra safety.
This change removes the direct assertSorted call from Get and keeps the
invariant check centralized inside searchName.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants