William Banfield
cf3bcbaa4c
final blocksync fixup
2022-07-13 17:33:09 -04:00
William Banfield
222a25284d
Merge branch 'wb/max-connected' into v035-testing
2022-07-13 17:32:46 -04:00
William Banfield
cae81ce43d
p2p: configure max connected for non-legacy as well
2022-07-13 17:08:29 -04:00
tycho garen
3e8daaeb44
fix e2e
2022-07-13 12:13:15 -04:00
tycho garen
aa2d6ee64a
remove init
2022-07-13 12:11:52 -04:00
William Banfield
2b189852b0
Merge branch 'v0.35.x' into blocksync-logging
2022-07-13 11:16:50 -04:00
M. J. Fromberger
3790968156
mempool: release lock during app connection flush ( #8984 )
...
This case is symmetric to what we did for CheckTx calls, where we release the
mempool mutex to ensure callbacks can fire during call setup. We also need
this behaviour for application flush, for the same reason: The caller holds the
lock by contract from the Mempool interface.
2022-07-12 10:28:51 -07:00
M. J. Fromberger
9e64c95e56
mempool: reduce lock contention during CheckTx (cleanup) ( #8983 )
...
The way this was originally structured, we reacquired the lock after issuing
the initial ABCI CheckTx call, only to immediately release it. Restructure the
code so that this redundant acquire is no longer necessary.
2022-07-12 08:00:29 -07:00
M. J. Fromberger
cb93d3b587
mempool: don't log message type mismatch in the default callback ( #8969 )
2022-07-11 18:06:49 -07:00
M. J. Fromberger
f98de20f7e
p2p: ensure closed channels stop receiving service ( #8979 )
...
Once these channels are closed, we should not continue to service them, as they
will never again deliver nonzero values.
2022-07-11 16:34:05 -07:00
Sam Kleinman
b17f044a1c
Merge branch 'v0.35.x' into blocksync-logging
2022-07-11 14:42:19 -04:00
M. J. Fromberger
451e697331
Update generated mocks after upgrade of Mockery v2. ( #8973 )
2022-07-11 09:18:36 -04:00
tycho garen
a8c419f126
fix lint
2022-07-08 14:01:09 -04:00
Sam Kleinman
20c1ffd03a
Merge branch 'v0.35.x' into blocksync-logging
2022-07-08 14:00:11 -04:00
mergify[bot]
e3292a48e3
p2p: simpler priority queue (backport #8929 ) ( #8956 )
2022-07-08 13:29:42 -04:00
M. J. Fromberger
6a354a1e8d
Update pending changelog. ( #8965 )
2022-07-08 09:54:50 -07:00
Sam Kleinman
2750cb26a9
Merge branch 'v0.35.x' into blocksync-logging
2022-07-08 12:36:19 -04:00
tycho garen
a04759c4f6
force blocksync
2022-07-08 12:36:00 -04:00
mergify[bot]
1daf7b939d
p2p: make peer gossiping coinflip safer ( #8949 ) ( #8963 )
...
Closes #8948
(cherry picked from commit 61ce384d75 )
Co-authored-by: Sam Kleinman <garen@tychoish.com >
2022-07-08 12:32:12 -04:00
Sam Kleinman
09c54a8d5c
Merge branch 'v0.35.x' into blocksync-logging
2022-07-08 10:03:03 -04:00
mergify[bot]
156c305b08
p2p: delete cruft ( #8958 ) ( #8959 )
...
I think the decision in #8806 is that we shouldn't do this yet, so I think it's best to just drop this.
(cherry picked from commit 636320f901 )
Co-authored-by: Sam Kleinman <garen@tychoish.com >
2022-07-08 09:59:57 -04:00
M. J. Fromberger
bc49f66c35
Add more unit tests for the priority mempool. ( #8961 )
...
- Add a test for time-based (TTL) expiration.
- Add tests for eviction based on size and priority.
2022-07-07 14:56:34 -07:00
M. J. Fromberger
9b02094827
Fix unbounded heap growth in the priority mempool. ( #8944 )
...
The primary effect of this change is to simplify the implementation of the
priority mempool to eliminate an unbounded heap growth observed by Vega team
when it was enabled in their testnet. It updates and fixes #8775 .
The main body of this change is to remove the auxiliary indexing structures,
and use only the concurrent list structure (the same as the legacy mempool) to
maintain both gossip order and priority.
This means that operations that require priority information, such as block
updates and insert-time evictions, require a linear scan over the mempool.
This tradeoff greatly simplifies the code and eliminates the long-term heap
load, at the cost of some extra CPU and short-lived working memory during
CheckTx and Update calls.
Rough benchmark results:
- This PR:
BenchmarkTxMempool_CheckTx-10 486373 2271 ns/op
- Original priority mempool implementation:
BenchmarkTxMempool_CheckTx-10 500302 2113 ns/op
- Legacy (v0) mempool:
BenchmarkCheckTx-10 364591 3571 ns/op
These benchmarks are not a good proxy for production load, but at least suggest
that the overhead of the implementation changes are not cause for concern.
In addition:
- Rework synchronization so that access to shared data structures is safe.
Previously shared locks were used to exclude block updates during calls that
update mempool state. Now access is properly exclusive where necessary.
- Fix a bug in the recheck flow, where priority updates from the application
were not correctly reflected in the index structures.
- Eliminate the need for separate recheck cursors during block update. This
avoids the need to explicitly invalidate elements of the concurrent list,
which averts the dependency cycle that led to objects being pinned.
- Clean up, clarify, and fix inaccuracies in documentation comments throughout
the package.
Co-authored-by: William Banfield <4561443+williambanfield@users.noreply.github.com >
2022-07-07 07:15:08 -07:00
Sam Kleinman
bf1ab9c3d8
Merge branch 'v0.35.x' into blocksync-logging
2022-07-06 14:07:54 -04:00
William Banfield
da83edc588
p2p: return from conn send on stopped mconn ( #8904 )
...
Co-authored-by: Sam Kleinman <garen@tychoish.com >
2022-07-06 10:41:55 -04:00
William Banfield
25f6557174
Merge branch 'v0.35.x' into blocksync-logging
2022-07-05 20:12:00 -04:00
mergify[bot]
047d7c927b
p2p: fix flakey test due to disconnect cooldown ( #8917 ) ( #8918 )
...
This test was made flakey by #8839 . The cooldown period means that the node in the test will not try to reconnect as quickly as the test expects. This change makes the cooldown shorter in the test so that the node quickly reconnects.
(cherry picked from commit 5274f80de4 )
Co-authored-by: William Banfield <4561443+williambanfield@users.noreply.github.com >
Co-authored-by: Sam Kleinman <garen@tychoish.com >
2022-07-05 19:11:38 -04:00
mergify[bot]
49788adde5
p2p: use correct context error ( #8916 ) ( #8920 )
...
handshakeCtx is the internal context carrying the timeout. Its error should be used for the error return.
(cherry picked from commit 921530c352 )
Co-authored-by: William Banfield <4561443+williambanfield@users.noreply.github.com >
Co-authored-by: Sam Kleinman <garen@tychoish.com >
Co-authored-by: Callum Waters <cmwaters19@gmail.com >
2022-07-05 13:36:26 -04:00
tycho garen
91b32b93cd
fixup
2022-07-05 09:43:57 -04:00
Sam Kleinman
3940d64ba6
Merge branch 'v0.35.x' into blocksync-logging
2022-07-05 09:42:18 -04:00
dependabot[bot]
babae90f8f
build(deps): Bump github.com/libp2p/go-buffer-pool from 0.0.2 to 0.1.0 ( #8931 )
2022-07-05 09:40:48 -04:00
tycho garen
210e8a02f7
disable disabling blocksync
2022-07-05 09:40:48 -04:00
dependabot[bot]
e414d0a878
build(deps): Bump github.com/libp2p/go-buffer-pool from 0.0.2 to 0.1.0 ( #8931 )
2022-07-05 12:19:03 +02:00
tycho garen
e66d76f6e9
tweak teset
2022-07-01 14:50:40 -04:00
dependabot[bot]
fbcb965c75
build(deps): Bump github.com/vektra/mockery/v2 from 2.13.1 to 2.14.0 ( #8925 )
...
Bumps [github.com/vektra/mockery/v2](https://github.com/vektra/mockery ) from 2.13.1 to 2.14.0.
- [Release notes](https://github.com/vektra/mockery/releases )
- [Changelog](https://github.com/vektra/mockery/blob/master/.goreleaser.yml )
- [Commits](https://github.com/vektra/mockery/compare/v2.13.1...v2.14.0 )
---
updated-dependencies:
- dependency-name: github.com/vektra/mockery/v2
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-01 14:50:40 -04:00
dependabot[bot]
6a646f366e
build(deps): Bump github.com/vektra/mockery/v2 from 2.13.1 to 2.14.0 ( #8925 )
...
Bumps [github.com/vektra/mockery/v2](https://github.com/vektra/mockery ) from 2.13.1 to 2.14.0.
- [Release notes](https://github.com/vektra/mockery/releases )
- [Changelog](https://github.com/vektra/mockery/blob/master/.goreleaser.yml )
- [Commits](https://github.com/vektra/mockery/compare/v2.13.1...v2.14.0 )
---
updated-dependencies:
- dependency-name: github.com/vektra/mockery/v2
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-01 12:15:22 -04:00
Sam Kleinman
dc0e77f41e
Merge branch 'v0.35.x' into blocksync-logging
2022-06-30 20:32:21 -04:00
tycho garen
815e611c68
ugg
2022-06-30 19:51:07 -04:00
mergify[bot]
01984cb3b2
p2p: set outgoing connections to around 20% of total connections ( #8913 ) ( #8914 )
...
(cherry picked from commit 47cb30fc1d )
Co-authored-by: William Banfield <4561443+williambanfield@users.noreply.github.com >
2022-06-30 17:15:32 -04:00
Sam Kleinman
11456f9edf
Update node/setup.go
...
Co-authored-by: M. J. Fromberger <michael.j.fromberger@gmail.com >
2022-06-30 13:16:46 -04:00
Sam Kleinman
b5f92f5d2e
Update node/setup.go
...
Co-authored-by: William Banfield <4561443+williambanfield@users.noreply.github.com >
2022-06-30 13:05:23 -04:00
tycho garen
288cb31040
blocksync: log on disabled override
2022-06-30 12:53:56 -04:00
dependabot[bot]
e2d2c04aac
build(deps): Bump github.com/stretchr/testify from 1.7.2 to 1.8.0 ( #8908 )
...
Bumps [github.com/stretchr/testify](https://github.com/stretchr/testify ) from 1.7.2 to 1.8.0.
- [Release notes](https://github.com/stretchr/testify/releases )
- [Commits](https://github.com/stretchr/testify/compare/v1.7.2...v1.8.0 )
---
updated-dependencies:
- dependency-name: github.com/stretchr/testify
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-06-30 08:33:13 -07:00
Sam Kleinman
204281fa66
node: always start blocksync and avoid misconfiguration ( #8902 )
2022-06-29 22:12:36 -04:00
mergify[bot]
486370ac68
log: do not pre-process log results (backport #8895 ) ( #8896 )
...
(cherry picked from commit 37f9d59969 )
Co-authored-by: Sam Kleinman <garen@tychoish.com >
2022-06-29 11:26:28 -04:00
William Banfield
978f754ad3
p2p: set empty timeouts to configed values. (manual backport of #8847 ) ( #8869 )
...
* regenerate mocks using newer style
* p2p: set empty timeouts to small values. (#8847 )
These timeouts default to 'do not time out' if they are not set. This times up resources, potentially indefinitely. If node on the other side of the the handshake is up but unresponsive, the[ handshake call](https://github.com/tendermint/tendermint/blob/edec79448aa1d62b84683b1b22e12e145dbdda7c/internal/p2p/router.go#L720 ) will _never_ return.
* fix light client select statement
2022-06-28 16:07:15 -04:00
mergify[bot]
c4ef566071
p2p: remove dial sleep and provide disconnect cooldown (backport #8839 ) ( #8875 )
...
(cherry picked from commit 52b6dc19ba )
2022-06-27 10:49:51 -04:00
dependabot[bot]
f19e52e6f2
build(deps): Bump styfle/cancel-workflow-action from 0.9.1 to 0.10.0 ( #8882 )
...
Bumps [styfle/cancel-workflow-action](https://github.com/styfle/cancel-workflow-action ) from 0.9.1 to 0.10.0.
- [Release notes](https://github.com/styfle/cancel-workflow-action/releases )
- [Commits](https://github.com/styfle/cancel-workflow-action/compare/0.9.1...0.10.0 )
---
updated-dependencies:
- dependency-name: styfle/cancel-workflow-action
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-06-27 09:13:46 -04:00
mergify[bot]
19b98c7005
e2e: disable another network test ( #8862 ) ( #8873 )
...
Follow up on: https://github.com/tendermint/tendermint/pull/8849
(cherry picked from commit c4d24eed7d )
Co-authored-by: Callum Waters <cmwaters19@gmail.com >
2022-06-24 13:22:26 -04:00
mergify[bot]
826f224c2d
p2p: add eviction metrics and cleanup dialing error handling (backport #8819 ) ( #8820 )
2022-06-24 10:42:58 -04:00