c4a1cfc | Anton Kaliaev | 07 December 2018, 08:28:02 UTC | don't ignore key when executing CONTAINS (#2924) Fixes #2912 | 07 December 2018, 08:28:02 UTC |
0f96bea | Ethan Buchman | 05 December 2018, 21:51:04 UTC | Merge pull request #2976 from tendermint/master Merge pull request #2975 from tendermint/release/v0.27.0 | 05 December 2018, 21:51:04 UTC |
9c236ff | Ethan Buchman | 05 December 2018, 21:50:36 UTC | Merge pull request #2975 from tendermint/release/v0.27.0 Release/v0.27.0 | 05 December 2018, 21:50:36 UTC |
9f8761d | Ethan Buchman | 05 December 2018, 20:19:30 UTC | update changelog and upgrading (#2974) | 05 December 2018, 20:19:30 UTC |
5413c11 | Anton Kaliaev | 05 December 2018, 19:21:46 UTC | kv indexer: add separator to start key when matching ranges (#2925) * kv indexer: add separator to start key when matching ranges to avoid including false positives Refs #2908 * refactor code * add a test case | 05 December 2018, 19:21:46 UTC |
a14fd8e | Ethan Buchman | 05 December 2018, 12:32:27 UTC | p2p: fix peer count mismatch #2332 (#2969) * p2p: test case for peer count mismatch #2332 * p2p: fix peer count mismatch #2332 * changelog * use httptest.Server to scrape Prometheus metrics | 05 December 2018, 12:32:27 UTC |
1bb7e31 | Ethan Buchman | 05 December 2018, 00:16:06 UTC | p2p: panic on transport error (#2968) * p2p: panic on transport error Addresses #2823. Currently, the acceptRoutine exits if the transport returns an error trying to accept a new connection. Once this happens, the node can't accept any new connections. So here, we panic instead. While we could potentially be more intelligent by rerunning the acceptRoutine, the error may indicate something more fundamental (eg. file desriptor limit) that requires a restart anyways. We can leave it to process managers to handle that restart, and notify operators about the panic. * changelog | 05 December 2018, 00:16:06 UTC |
222b897 | Ethan Buchman | 04 December 2018, 13:30:29 UTC | Minor log changes (#2959) * node: allow state and code to have diff block versions * node: pex is a log module | 04 December 2018, 13:30:29 UTC |
d9a1aad | Anton Kaliaev | 03 December 2018, 12:17:06 UTC | docs: add client#Start/Stop to examples in RPC docs (#2939) follow-up on https://github.com/tendermint/tendermint/pull/2936 | 03 December 2018, 12:17:06 UTC |
8ef0c26 | Anton Kaliaev | 03 December 2018, 12:15:36 UTC | check if deliverTxResCh is still open, return an err otherwise (#2947) deliverTxResCh, like any other eventBus (pubsub) channel, is closed when eventBus is stopped. We must check if the channel is still open. The alternative approach is to not close any channels, which seems a bit odd. Fixes #2408 | 03 December 2018, 12:15:36 UTC |
c4d93fd | Ismail Khoffi | 30 November 2018, 19:43:16 UTC | explicitly type MaxTotalVotingPower to int64 (#2953) | 30 November 2018, 19:43:16 UTC |
dc2a338 | Ethan Buchman | 30 November 2018, 19:05:16 UTC | Bucky/v0.27.0 (#2950) * update changelog * changelog, upgrading, version | 30 November 2018, 19:05:16 UTC |
725ed79 | Ismail Khoffi | 29 November 2018, 22:03:41 UTC | Add some ProposerPriority tests (#2946) * WIP: tests for #2785 * rebase onto develop * add Bucky's test without changing ValidatorSet.Update * make TestValidatorSetBasic fail * add ProposerPriority preserving fix to ValidatorSet.Update to fix TestValidatorSetBasic * fix randValidator_ to stay in bounds of MaxTotalVotingPower * check for expected proposer and remove some duplicate code * actually limit the voting power of random validator ... * fix test | 29 November 2018, 22:03:41 UTC |
44b769b | Ethan Buchman | 29 November 2018, 13:26:12 UTC | types: ValidatorSet.Update preserves Accum (#2941) * types: ValidatorSet.Update preserves ProposerPriority This solves the other issue discovered as part of #2718, where Accum (now called ProposerPriority) is reset to 0 every time a validator is updated. * update changelog * add test * update comment * Update types/validator_set_test.go Co-Authored-By: ebuchman <ethan@coinculture.info> | 29 November 2018, 13:26:12 UTC |
380afaa | Anton Kaliaev | 29 November 2018, 11:57:11 UTC | docs: update ecosystem.json: add Rust ABCI (#2945) | 29 November 2018, 11:57:11 UTC |
b30c34e | Ismail Khoffi | 28 November 2018, 20:35:09 UTC | rename Accum -> ProposerPriority: (#2932) - rename fields, methods, comments, tests | 28 November 2018, 20:35:09 UTC |
4039276 | Dev Ojha | 28 November 2018, 19:53:04 UTC | remove unnecessary "crypto" import alias (#2940) | 28 November 2018, 19:53:04 UTC |
3f987ad | Ismail Khoffi | 28 November 2018, 18:12:17 UTC | Set accum of freshly added validator -(total voting power) (#2785) * set the accum of a new validator to (-total voting power): - disincentivize validators to unbond, then rebon to reset their negative Accum to zero additional unrelated changes: - do not capitalize error msgs - fix typo * review comments: (re)capitalize errors & delete obsolete comments * More changes suggested by @melekes * WIP: do not batch clip (#2809) * substract avgAccum on each iteration - temporarily skip test * remove unused method safeMulClip / safeMul * always substract the avg accum - temp. skip another test * remove overflow / underflow tests & add tests for avgAccum: - add test for computeAvgAccum - as we substract the avgAccum now we will not trivially over/underflow * address @cwgoes' comments * shift by avg at the end of IncrementAccum * Add comment to MaxTotalVotingPower * Guard inputs to not exceed MaxTotalVotingPower * Address review comments: - do not fetch current validator from set again - update error message * Address a few review comments: - fix typo - extract variable * address more review comments: - clarify 1.125*totalVotingPower == totalVotingPower + (totalVotingPower >> 3) * review comments: panic instead of "clipping": - total voting power is guarded to not exceed MaxTotalVotingPower -> panic if this invariant is violated * fix failing test | 28 November 2018, 18:12:17 UTC |
b11788d | Ethan Buchman | 28 November 2018, 18:09:29 UTC | types: NewValidatorSet doesn't panic on empty valz list (#2938) * types: NewValidatorSet doesn't panic on empty valz list * changelog | 28 November 2018, 18:09:29 UTC |
9adcfe2 | Daniil Lashin | 28 November 2018, 16:55:18 UTC | docs: add client.Start() to RPC WS examples (#2936) | 28 November 2018, 16:55:18 UTC |
3d15579 | Zach | 28 November 2018, 16:29:26 UTC | docs: fix js-abci example (#2935) | 28 November 2018, 16:29:26 UTC |
4571f0f | Dev Ojha | 28 November 2018, 14:09:27 UTC | Enforce validators can only use the correct pubkey type (#2739) * Enforce validators can only use the correct pubkey type * adapt to variable renames * Address comments from #2636 * separate updating and validation logic * update spec * Add test case for TestStringSliceEqual, clarify slice copying code * Address @ebuchman's comments * Split up testing validator update execution, and its validation | 28 November 2018, 14:09:27 UTC |
8a73fea | Ethan Buchman | 28 November 2018, 13:56:39 UTC | Merge pull request #2934 from tendermint/master Merge pull request #2922 from tendermint/release/v0.26.4 | 28 November 2018, 13:56:39 UTC |
e291fbb | srmo | 28 November 2018, 13:52:35 UTC | 2871 remove proposalHeartbeat infrastructure (#2874) * 2871 remove proposalHeartbeat infrastructure * 2871 add preliminary changelog entry | 28 November 2018, 13:52:34 UTC |
416d143 | Jae Kwon | 28 November 2018, 13:49:24 UTC | R4R: Swap start/end in ReverseIterator (#2913) * Swap start/end in ReverseIterator * update CHANGELOG_PENDING * fixes from review | 28 November 2018, 13:49:24 UTC |
7213869 | Daniil Lashin | 28 November 2018, 13:32:16 UTC | Refactor updateState #2865 (#2929) * Refactor updateState #2865 * Apply suggestions from code review Co-Authored-By: danil-lashin <danil-lashin@yandex.ru> * Apply suggestions from code review | 28 November 2018, 13:32:16 UTC |
ef9902e | Anton Kaliaev | 28 November 2018, 13:25:23 UTC | docs: small improvements (#2933) * update docs - make install_c cmd (install) - explain node IDs (quick-start) - update UPGRADING section (using-tendermint) * use git clone with JS example JS devs may not have Go installed and we should not force them to. * rewrite sentence | 28 November 2018, 13:25:23 UTC |
b771798 | Ethan Buchman | 27 November 2018, 13:51:45 UTC | Merge pull request #2922 from tendermint/release/v0.26.4 Release/v0.26.4 | 27 November 2018, 13:51:45 UTC |
1abf34a | Ethan Buchman | 27 November 2018, 13:43:21 UTC | Prepare v0.26.4 changelog (#2921) * prepare changelog * linkify changelog * changelog and version * update changelog | 27 November 2018, 13:43:21 UTC |
92dc5fc | Anton Kaliaev | 27 November 2018, 13:12:28 UTC | don't return false positives when searching for a prefix of a tag value (#2919) Fixes #2908 | 27 November 2018, 13:12:28 UTC |
bef39f3 | nagarajmanjunath | 27 November 2018, 13:07:20 UTC | Updated Marshal and unmarshal methods to make compatible with protobuf (#2918) * upadtes in grpc Marshal and unmarshal * update comments | 27 November 2018, 13:07:20 UTC |
94e63be | Anton Kaliaev | 27 November 2018, 12:53:06 UTC | [indexer] order results by index if height is the same (#2900) Fixes #2775 | 27 November 2018, 12:53:06 UTC |
9570ac4 | Anton Kaliaev | 27 November 2018, 12:47:50 UTC | rpc: Fix tx.height range queries (#2899) Modify lookForHeight to return a height only there's a equal operator. Previously, it was returning a height even for range conditions: "height < 10000". Fixes #2759 | 27 November 2018, 12:47:50 UTC |
99b9c9b | Jernej Kos | 27 November 2018, 03:21:42 UTC | types: Emit tags from BeginBlock/EndBlock (#2747) This commit makes both EventNewBlock and EventNewBlockHeader emit tags on the event bus, so subscribers can use them in queries. | 27 November 2018, 03:21:42 UTC |
47a0669 | Ethan Buchman | 26 November 2018, 20:31:11 UTC | Fix fast sync stack with wrong block #2457 (#2731) * fix fastsync may stuck by a wrong block * fixes from updates * fixes from review * Align spec with the changes * fmt | 26 November 2018, 20:31:11 UTC |
fe3b97f | JamesRay | 26 November 2018, 13:03:08 UTC | It's better read from genDoc than from state.validators when appHeight==0 in replay (#2893) * optimize addProposalBlockPart * optimize addProposalBlockPart * if ProposalBlockParts and LockedBlockParts both exist,let LockedBlockParts overwrite ProposalBlockParts. * fix tryAddBlock * broadcast lockedBlockParts in higher priority * when appHeight==0, it's better fetch genDoc than state.validators. | 26 November 2018, 13:03:08 UTC |
56052c0 | Ismail Khoffi | 26 November 2018, 08:24:32 UTC | update encoding spec (#2903) Quick fix for #2902 | 26 November 2018, 08:24:32 UTC |
98e442a | Anton Kaliaev | 26 November 2018, 04:34:22 UTC | return back initially allowed level if we encounter allowed key (#2889) Fixes #2868 where module=main setting overrides all others | 26 November 2018, 04:34:22 UTC |
b12488b | Tomas Tauber | 26 November 2018, 04:33:40 UTC | Handling integer IDs in JSON-RPC requests -- fixes #2366 (#2811) * Fixed accepting integer IDs in requests for Tendermint RPC server (#2366) * added a wrapper interface `jsonrpcid` that represents both string and int IDs in JSON-RPC requests/responses + custom JSON unmarshallers * changed client-side code in RPC that uses it * added extra tests for integer IDs * updated CHANGELOG_PENDING, as suggested by PR instructions * addressed PR comments * added table driven tests for request type marshalling/unmarshalling * expanded handler test to check IDs * changed pending changelog note * changed json rpc request/response unmarshalling to use empty interfaces and type switches on ID * some cleanup | 26 November 2018, 04:33:40 UTC |
b487feb | Anton Kaliaev | 21 November 2018, 17:24:13 UTC | node: refactor privValidator ext client code & tests (#2895) * update ConsensusState#OnStop comment * consensus: set logger for WAL in tests * refactor privValidator client code and tests follow-up on https://github.com/tendermint/tendermint/pull/2866 | 21 November 2018, 17:24:13 UTC |
72f86b5 | Joe Bowman | 21 November 2018, 06:45:20 UTC | [pv] add ability to use ipc validator (#2866) Ref #2827 (I have since seen #2847 which is a fix for the same issue; this PR has tests and docs too ;) ) | 21 November 2018, 06:45:20 UTC |
42592d9 | Jae Kwon | 21 November 2018, 06:43:02 UTC | IncrementAccum upon RPC /validators; Sanity checks and comments (#2808) | 21 November 2018, 06:43:02 UTC |
1610a05 | Dev Ojha | 21 November 2018, 06:33:41 UTC | Remove counter from every mempoolTx (#2891) Within every tx in the mempool, we store a 64 bit counter, as an index for when it was inserted into the mempool. This counter doesn't really serve any purpose. It was likely added for debugging at one point, Removing the counter reclaims memory, which enables greater mempool sizes / mitigates resources at the same size. Closes #2835 | 21 November 2018, 06:33:41 UTC |
2d525bf | Anton Kaliaev | 19 November 2018, 12:22:17 UTC | mempool: add txs from Update to cache We should add txs that come in from mempool.Update to the mempool's cache, so that they never hit a potentially expensive check tx. Originally posted by @ValarDragon in #2846 https://github.com/tendermint/tendermint/issues/2846#issuecomment-439216656 Refs #2855 | 20 November 2018, 06:47:30 UTC |
e9efbfe | Anton Kaliaev | 19 November 2018, 12:16:33 UTC | refactor mempool.Update - rename filterTxs to removeTxs - move txsMap into removeTxs func - rename goodTxs to txsLeft | 20 November 2018, 06:47:30 UTC |
7b883a5 | Anton Kaliaev | 20 November 2018, 06:27:58 UTC | docs/install: prepend cp to /usr/local with sudo (#2885) Closes #2884 | 20 November 2018, 06:27:58 UTC |
fd8d1d6 | cong | 19 November 2018, 16:15:23 UTC | add BlockTimeIota to the config.toml (#2878) Refs #2877 | 19 November 2018, 16:15:23 UTC |
5abdd25 | Ethan Buchman | 17 November 2018, 23:25:46 UTC | Merge pull request #2875 from tendermint/master Merge pull request #2873 from tendermint/release/v0.26.3 | 17 November 2018, 23:25:46 UTC |
22dcc92 | Ethan Buchman | 17 November 2018, 23:25:12 UTC | Merge pull request #2873 from tendermint/release/v0.26.3 Release/v0.26.3 | 17 November 2018, 23:25:12 UTC |
ccf6b2b | Ethan Buchman | 17 November 2018, 21:04:05 UTC | Bucky/v0.26.3 (#2872) * update CONTRIBUTING with notes on CHANGELOG * update changelog * changelog and version | 17 November 2018, 21:04:05 UTC |
1466a2c | srmo | 17 November 2018, 20:23:39 UTC | #2815 do not broadcast heartbeat proposal when we are non-validator (#2819) * #2815 do not broadcast heartbeat proposal when we are non-validator * #2815 adding preliminary changelog entry * #2815 cosmetics and added test * #2815 missed a little detail - it's enough to call getAddress() once here * #2815 remove debug logging from tests * #2815 OK. I seem to be doing something fundamentally wrong here * #2815 next iteration of proposalHeartbeat tests - try and use "ensure" pattern in common_test * 2815 incorporate review comments | 17 November 2018, 20:23:39 UTC |
6168b40 | Ethan Buchman | 17 November 2018, 08:16:49 UTC | p2p: NewMultiplexTransport takes an MConnConfig (#2869) * p2p: NewMultiplexTransport takes an MConnConfig * changelog * move test func to test file | 17 November 2018, 08:16:49 UTC |
e6fc10f | Zaki Manian | 17 November 2018, 08:10:22 UTC | R4R: Add timeouts to http servers (#2780) * Replaces our current http servers where connections stay open forever with ones with timeouts to prevent file descriptor exhaustion * Use the correct handler * Put in go routines * fix err * changelog * rpc: export Read/WriteTimeout The `broadcast_tx_commit` endpoint has it's own timeout. If this is longer than the http server's WriteTimeout, the user will receive an error. Here, we export the WriteTimeout and set the broadcast_tx_commit timeout to be less than it. In the future, we should use a config struct for the timeouts to avoid the need to export. The broadcast_tx_commit timeout may also become configurable, but we must check that it's less than the server's WriteTimeout. | 17 November 2018, 08:10:22 UTC |
60018d6 | Anton Kaliaev | 16 November 2018, 23:17:07 UTC | comment out until someone decides to tackle #2285 (#2760) current code results in panic and we certainly don't want that. https://github.com/tendermint/tendermint/pull/2286#issuecomment-418281846 | 16 November 2018, 23:17:07 UTC |
0d5e0d2 | Ethan Buchman | 16 November 2018, 22:44:19 UTC | p2p/conn: FlushStop. Use in pex. Closes #2092 (#2802) * p2p/conn: FlushStop. Use in pex. Closes #2092 In seed mode, we call StopPeer immediately after Send. Since flushing msgs to the peer happens in the background, the peer connection is often closed before the messages are actually sent out. The new FlushStop method allows all msgs to first be written and flushed out on the conn before it is closed. * fix dummy peer * typo * fixes from review * more comments * ensure pex doesn't call FlushStop more than once FlushStop is not safe to call more than once, but we call it from Receive in a go-routine so Receive doesn't block. To ensure we only call it once, we use the lastReceivedRequests map - if an entry already exists, then FlushStop should already have been called and we can return. | 16 November 2018, 22:44:19 UTC |
2cfdef6 | Daniil Lashin | 16 November 2018, 22:38:22 UTC | Make "Update to validators" msg value pretty (#2848) * Make "Update to validators" msg value pretty #2765 * New format for logging validator updates * Refactor logging validator updates * Fix changelog item * fix merge conflict | 16 November 2018, 22:38:22 UTC |
b90e06a | krhubert | 16 November 2018, 22:36:42 UTC | More verbose error log (#2864) | 16 November 2018, 22:36:42 UTC |
e6a0d09 | Anton Kaliaev | 16 November 2018, 17:58:30 UTC | small fixes to spec & http_server & Vagrantfile (#2859) * Vagrantfile: install dev_tools Follow-up on https://github.com/tendermint/tendermint/pull/2824 * update consensus params spec * fix test name * rpc_test: panic if failed to start listener also - remove http_server#MustListen - align StartHTTPServer and StartHTTPAndTLSServer functions * dep: allow minor releases for grpc | 16 November 2018, 17:58:30 UTC |
d8ab850 | Ethan Buchman | 16 November 2018, 07:37:58 UTC | p2p: log 'Send failed' on Debug (#2857) | 16 November 2018, 07:37:58 UTC |
85bba82 | Ethan Buchman | 15 November 2018, 23:42:47 UTC | Merge pull request #2858 from tendermint/master Merge pull request #2851 from tendermint/release/v0.26.2 | 15 November 2018, 23:42:47 UTC |
d5a05ec | Ethan Buchman | 15 November 2018, 23:41:54 UTC | Merge pull request #2851 from tendermint/release/v0.26.2 Release/v0.26.2 | 15 November 2018, 23:41:54 UTC |
a676c71 | kevlubkcm | 15 November 2018, 23:40:42 UTC | [R4R] Add proposer to NewRound event and proposal info to CompleteProposal event (#2767) * add proposer info to EventCompleteProposal * create separate EventData structure for CompleteProposal * cant us rs.Proposal to get BlockID because it is not guaranteed to be set yet * copying RoundState isnt helping us here * add Step back to make compatible with original RoundState event. update changelog * add NewRound event * fix test * remove unneeded RoundState * put height round step into a struct * pull out ValidatorInfo struct. add ensureProposal assert * remove height-round-state sub-struct refactor * minor fixes from review | 15 November 2018, 23:40:42 UTC |
c033975 | Zach | 15 November 2018, 23:08:24 UTC | docs ADR (#2828) * wip * use same ADR template as SDK * finish docs adr * lil fixes | 15 November 2018, 23:08:24 UTC |
06225e3 | Anton Kaliaev | 15 November 2018, 23:05:06 UTC | Config option for JSON output formatter (#2843) * Introduce a structured logging option * rename StructuredLog to LogFormat * add changelog entry * move log_format under log_level | 15 November 2018, 23:05:06 UTC |
b646437 | Alessio Treglia | 15 November 2018, 20:33:04 UTC | Decouple StartHTTP{,AndTLS}Server from Listen() (#2791) * Decouple StartHTTP{,AndTLS}Server from Listen() This should help solve cosmos/cosmos-sdk#2715 * Fix small mistake * Update StartGRPCServer * s/rpc/rpcserver/ * Start grpccore.StartGRPCServer in a goroutine * Reinstate l.Close() * Fix rpc/lib/test/main.go * Update code comment * update changelog and comments * fix tm-monitor. more comments | 15 November 2018, 20:33:04 UTC |
be8c2d5 | Zach | 15 November 2018, 19:41:40 UTC | use a github link (#2849) | 15 November 2018, 19:41:40 UTC |
e93b492 | Anton Kaliaev | 15 November 2018, 19:40:18 UTC | do not pin deps to exact versions (#2844) because - they are locked in .lock file already - individual dependencies can be updated with `dep ensure -update XXX` - review process (and ^^^) should help us prevent accidental updates Closes #2798 | 15 November 2018, 19:40:18 UTC |
9973dec | Ethan Buchman | 15 November 2018, 17:16:24 UTC | changelog, versionbump (#2850) | 15 November 2018, 17:16:24 UTC |
a041235 | Ethan Buchman | 15 November 2018, 17:04:47 UTC | update some top-level markdown files (#2841) * update some top-level markdown files * Update README.md Co-Authored-By: ebuchman <ethan@coinculture.info> | 15 November 2018, 17:04:47 UTC |
a70a532 | Zeyu Zhu | 15 November 2018, 15:57:13 UTC | Optimize: using parameters in func (#2845) Signed-off-by: Zeyu Zhu <zhuzeyu0409@gmail.com> | 15 November 2018, 15:57:13 UTC |
1ce24a6 | zramsay | 14 November 2018, 20:48:55 UTC | docs: update config: ref #2800 & #2837 | 15 November 2018, 06:23:00 UTC |
814a88a | zramsay | 14 November 2018, 20:41:14 UTC | more maintainable/useful install scripts | 15 November 2018, 06:23:00 UTC |
6353862 | Hleb Albau | 14 November 2018, 12:47:41 UTC | 2582 Enable CORS on RPC API (#2800) | 14 November 2018, 12:47:41 UTC |
3af11c4 | Zach | 14 November 2018, 10:52:01 UTC | cleanup ecosystem docs (#2829) | 14 November 2018, 10:52:01 UTC |
27fcf96 | Zach | 14 November 2018, 10:34:10 UTC | update genesis docs, closes #2814 (#2831) | 14 November 2018, 10:34:10 UTC |
bb0e17d | Zach | 14 November 2018, 10:17:07 UTC | arm: add install script, fix Makefile (#2824) * be like the SDK makefile * arm: add install script, fix Makefile * ... | 14 November 2018, 10:17:07 UTC |
5a6822c | Anton Kaliaev | 13 November 2018, 16:32:51 UTC | abci: localClient improvements & bugfixes & pubsub Unsubscribe issues (#2748) * use READ lock/unlock in ConsensusState#GetLastHeight Refs #2721 * do not use defers when there's no need * fix peer formatting (output its address instead of the pointer) ``` [54310]: E[11-02|11:59:39.851] Connection failed @ sendRoutine module=p2p peer=0xb78f00 conn=MConn{74.207.236.148:26656} err="pong timeout" ``` https://github.com/tendermint/tendermint/issues/2721#issuecomment-435326581 * panic if peer has no state https://github.com/tendermint/tendermint/issues/2721#issuecomment-435347165 It's confusing that sometimes we check if peer has a state, but most of the times we expect it to be there 1. https://github.com/tendermint/tendermint/blob/add79700b5fe84417538202b6c927c8cc5383672/mempool/reactor.go#L138 2. https://github.com/tendermint/tendermint/blob/add79700b5fe84417538202b6c927c8cc5383672/rpc/core/consensus.go#L196 (edited) I will change everything to always assume peer has a state and panic otherwise that should help identify issues earlier * abci/localclient: extend lock on app callback App callback should be protected by lock as well (note this was already done for InitChainAsync, why not for others???). Otherwise, when we execute the block, tx might come in and call the callback in the same time we're updating it in execBlockOnProxyApp => DATA RACE Fixes #2721 Consensus state is locked ``` goroutine 113333 [semacquire, 309 minutes]: sync.runtime_SemacquireMutex(0xc00180009c, 0xc0000c7e00) /usr/local/go/src/runtime/sema.go:71 +0x3d sync.(*RWMutex).RLock(0xc001800090) /usr/local/go/src/sync/rwmutex.go:50 +0x4e github.com/MinterTeam/minter-go-node/vendor/github.com/tendermint/tendermint/consensus.(*ConsensusState).GetRoundState(0xc001800000, 0x0) /root/go/src/github.com/MinterTeam/minter-go-node/vendor/github.com/tendermint/tendermint/consensus/state.go:218 +0x46 github.com/MinterTeam/minter-go-node/vendor/github.com/tendermint/tendermint/consensus.(*ConsensusReactor).queryMaj23Routine(0xc0017def80, 0x11104a0, 0xc0072488f0, 0xc007248 9c0) /root/go/src/github.com/MinterTeam/minter-go-node/vendor/github.com/tendermint/tendermint/consensus/reactor.go:735 +0x16d created by github.com/MinterTeam/minter-go-node/vendor/github.com/tendermint/tendermint/consensus.(*ConsensusReactor).AddPeer /root/go/src/github.com/MinterTeam/minter-go-node/vendor/github.com/tendermint/tendermint/consensus/reactor.go:172 +0x236 ``` because localClient is locked ``` goroutine 1899 [semacquire, 309 minutes]: sync.runtime_SemacquireMutex(0xc00003363c, 0xc0000cb500) /usr/local/go/src/runtime/sema.go:71 +0x3d sync.(*Mutex).Lock(0xc000033638) /usr/local/go/src/sync/mutex.go:134 +0xff github.com/MinterTeam/minter-go-node/vendor/github.com/tendermint/tendermint/abci/client.(*localClient).SetResponseCallback(0xc0001fb560, 0xc007868540) /root/go/src/github.com/MinterTeam/minter-go-node/vendor/github.com/tendermint/tendermint/abci/client/local_client.go:32 +0x33 github.com/MinterTeam/minter-go-node/vendor/github.com/tendermint/tendermint/proxy.(*appConnConsensus).SetResponseCallback(0xc00002f750, 0xc007868540) /root/go/src/github.com/MinterTeam/minter-go-node/vendor/github.com/tendermint/tendermint/proxy/app_conn.go:57 +0x40 github.com/MinterTeam/minter-go-node/vendor/github.com/tendermint/tendermint/state.execBlockOnProxyApp(0x1104e20, 0xc002ca0ba0, 0x11092a0, 0xc00002f750, 0xc0001fe960, 0xc000bfc660, 0x110cfe0, 0xc000090330, 0xc9d12, 0xc000d9d5a0, ...) /root/go/src/github.com/MinterTeam/minter-go-node/vendor/github.com/tendermint/tendermint/state/execution.go:230 +0x1fd github.com/MinterTeam/minter-go-node/vendor/github.com/tendermint/tendermint/state.(*BlockExecutor).ApplyBlock(0xc002c2a230, 0x7, 0x0, 0xc000eae880, 0x6, 0xc002e52c60, 0x16, 0x1f927, 0xc9d12, 0xc000d9d5a0, ...) /root/go/src/github.com/MinterTeam/minter-go-node/vendor/github.com/tendermint/tendermint/state/execution.go:96 +0x142 github.com/MinterTeam/minter-go-node/vendor/github.com/tendermint/tendermint/consensus.(*ConsensusState).finalizeCommit(0xc001800000, 0x1f928) /root/go/src/github.com/MinterTeam/minter-go-node/vendor/github.com/tendermint/tendermint/consensus/state.go:1339 +0xa3e github.com/MinterTeam/minter-go-node/vendor/github.com/tendermint/tendermint/consensus.(*ConsensusState).tryFinalizeCommit(0xc001800000, 0x1f928) /root/go/src/github.com/MinterTeam/minter-go-node/vendor/github.com/tendermint/tendermint/consensus/state.go:1270 +0x451 github.com/MinterTeam/minter-go-node/vendor/github.com/tendermint/tendermint/consensus.(*ConsensusState).enterCommit.func1(0xc001800000, 0x0, 0x1f928) /root/go/src/github.com/MinterTeam/minter-go-node/vendor/github.com/tendermint/tendermint/consensus/state.go:1218 +0x90 github.com/MinterTeam/minter-go-node/vendor/github.com/tendermint/tendermint/consensus.(*ConsensusState).enterCommit(0xc001800000, 0x1f928, 0x0) /root/go/src/github.com/MinterTeam/minter-go-node/vendor/github.com/tendermint/tendermint/consensus/state.go:1247 +0x6b8 github.com/MinterTeam/minter-go-node/vendor/github.com/tendermint/tendermint/consensus.(*ConsensusState).addVote(0xc001800000, 0xc003d8dea0, 0xc000cf4cc0, 0x28, 0xf1, 0xc003bc7ad0, 0xc003bc7b10) /root/go/src/github.com/MinterTeam/minter-go-node/vendor/github.com/tendermint/tendermint/consensus/state.go:1659 +0xbad github.com/MinterTeam/minter-go-node/vendor/github.com/tendermint/tendermint/consensus.(*ConsensusState).tryAddVote(0xc001800000, 0xc003d8dea0, 0xc000cf4cc0, 0x28, 0xf1, 0xf1, 0xf1) /root/go/src/github.com/MinterTeam/minter-go-node/vendor/github.com/tendermint/tendermint/consensus/state.go:1517 +0x59 github.com/MinterTeam/minter-go-node/vendor/github.com/tendermint/tendermint/consensus.(*ConsensusState).handleMsg(0xc001800000, 0xd98200, 0xc0070dbed0, 0xc000cf4cc0, 0x28) /root/go/src/github.com/MinterTeam/minter-go-node/vendor/github.com/tendermint/tendermint/consensus/state.go:660 +0x64b github.com/MinterTeam/minter-go-node/vendor/github.com/tendermint/tendermint/consensus.(*ConsensusState).receiveRoutine(0xc001800000, 0x0) /root/go/src/github.com/MinterTeam/minter-go-node/vendor/github.com/tendermint/tendermint/consensus/state.go:617 +0x670 created by github.com/MinterTeam/minter-go-node/vendor/github.com/tendermint/tendermint/consensus.(*ConsensusState).OnStart /root/go/src/github.com/MinterTeam/minter-go-node/vendor/github.com/tendermint/tendermint/consensus/state.go:311 +0x132 ``` tx comes in and CheckTx is executed right when we execute the block ``` goroutine 111044 [semacquire, 309 minutes]: sync.runtime_SemacquireMutex(0xc00003363c, 0x0) /usr/local/go/src/runtime/sema.go:71 +0x3d sync.(*Mutex).Lock(0xc000033638) /usr/local/go/src/sync/mutex.go:134 +0xff github.com/MinterTeam/minter-go-node/vendor/github.com/tendermint/tendermint/abci/client.(*localClient).CheckTxAsync(0xc0001fb0e0, 0xc002d94500, 0x13f, 0x280, 0x0) /root/go/src/github.com/MinterTeam/minter-go-node/vendor/github.com/tendermint/tendermint/abci/client/local_client.go:85 +0x47 github.com/MinterTeam/minter-go-node/vendor/github.com/tendermint/tendermint/proxy.(*appConnMempool).CheckTxAsync(0xc00002f720, 0xc002d94500, 0x13f, 0x280, 0x1) /root/go/src/github.com/MinterTeam/minter-go-node/vendor/github.com/tendermint/tendermint/proxy/app_conn.go:114 +0x51 github.com/MinterTeam/minter-go-node/vendor/github.com/tendermint/tendermint/mempool.(*Mempool).CheckTx(0xc002d3a320, 0xc002d94500, 0x13f, 0x280, 0xc0072355f0, 0x0, 0x0) /root/go/src/github.com/MinterTeam/minter-go-node/vendor/github.com/tendermint/tendermint/mempool/mempool.go:316 +0x17b github.com/MinterTeam/minter-go-node/vendor/github.com/tendermint/tendermint/rpc/core.BroadcastTxSync(0xc002d94500, 0x13f, 0x280, 0x0, 0x0, 0x0) /root/go/src/github.com/MinterTeam/minter-go-node/vendor/github.com/tendermint/tendermint/rpc/core/mempool.go:93 +0xb8 reflect.Value.call(0xd85560, 0x10326c0, 0x13, 0xec7b8b, 0x4, 0xc00663f180, 0x1, 0x1, 0xc00663f180, 0xc00663f188, ...) /usr/local/go/src/reflect/value.go:447 +0x449 reflect.Value.Call(0xd85560, 0x10326c0, 0x13, 0xc00663f180, 0x1, 0x1, 0x0, 0x0, 0xc005cc9344) /usr/local/go/src/reflect/value.go:308 +0xa4 github.com/MinterTeam/minter-go-node/vendor/github.com/tendermint/tendermint/rpc/lib/server.makeHTTPHandler.func2(0x1102060, 0xc00663f100, 0xc0082d7900) /root/go/src/github.com/MinterTeam/minter-go-node/vendor/github.com/tendermint/tendermint/rpc/lib/server/handlers.go:269 +0x188 net/http.HandlerFunc.ServeHTTP(0xc002c81f20, 0x1102060, 0xc00663f100, 0xc0082d7900) /usr/local/go/src/net/http/server.go:1964 +0x44 net/http.(*ServeMux).ServeHTTP(0xc002c81b60, 0x1102060, 0xc00663f100, 0xc0082d7900) /usr/local/go/src/net/http/server.go:2361 +0x127 github.com/MinterTeam/minter-go-node/vendor/github.com/tendermint/tendermint/rpc/lib/server.maxBytesHandler.ServeHTTP(0x10f8a40, 0xc002c81b60, 0xf4240, 0x1102060, 0xc00663f100, 0xc0082d7900) /root/go/src/github.com/MinterTeam/minter-go-node/vendor/github.com/tendermint/tendermint/rpc/lib/server/http_server.go:219 +0xcf github.com/MinterTeam/minter-go-node/vendor/github.com/tendermint/tendermint/rpc/lib/server.RecoverAndLogHandler.func1(0x1103220, 0xc00121e620, 0xc0082d7900) /root/go/src/github.com/MinterTeam/minter-go-node/vendor/github.com/tendermint/tendermint/rpc/lib/server/http_server.go:192 +0x394 net/http.HandlerFunc.ServeHTTP(0xc002c06ea0, 0x1103220, 0xc00121e620, 0xc0082d7900) /usr/local/go/src/net/http/server.go:1964 +0x44 net/http.serverHandler.ServeHTTP(0xc001a1aa90, 0x1103220, 0xc00121e620, 0xc0082d7900) /usr/local/go/src/net/http/server.go:2741 +0xab net/http.(*conn).serve(0xc00785a3c0, 0x11041a0, 0xc000f844c0) /usr/local/go/src/net/http/server.go:1847 +0x646 created by net/http.(*Server).Serve /usr/local/go/src/net/http/server.go:2851 +0x2f5 ``` * consensus: use read lock in Receive#VoteMessage * use defer to unlock mutex because application might panic * use defer in every method of the localClient * add a changelog entry * drain channels before Unsubscribe(All) Read https://github.com/tendermint/tendermint/blob/55362ed76630f3e1ebec159a598f6a9fb5892cb1/libs/pubsub/pubsub.go#L13 for the detailed explanation of the issue. We'll need to fix it someday. Make sure to keep an eye on https://github.com/tendermint/tendermint/blob/master/docs/architecture/adr-033-pubsub.md * retry instead of panic when peer has no state in reactors other than consensus in /dump_consensus_state RPC endpoint, skip a peer with no state * rpc/core/mempool: simplify error messages * rpc/core/mempool: use time.After instead of timer also, do not log DeliverTx result (to be consistent with other memthods) * unlock before calling the callback in reqRes#SetCallback | 13 November 2018, 16:32:51 UTC |
fb10209 | Zach | 13 November 2018, 07:54:43 UTC | update to amino 0.14.1 (#2822) | 13 November 2018, 07:54:43 UTC |
0f793a5 | Ethan Buchman | 12 November 2018, 13:05:12 UTC | Merge pull request #2813 from tendermint/master Merge pull request #2807 from tendermint/release/v0.26.1 | 12 November 2018, 13:05:12 UTC |
80d0a36 | Ethan Buchman | 12 November 2018, 13:04:27 UTC | Merge pull request #2807 from tendermint/release/v0.26.1 Release/v0.26.1 | 12 November 2018, 13:04:27 UTC |
e116990 | yutianwu | 11 November 2018, 19:47:34 UTC | [R4R] Add adr-034: PrivValidator file structure (#2751) * add adr-034 * update changelog * minor changes * do some refactor | 11 November 2018, 19:47:34 UTC |
533b3cf | Ethan Buchman | 11 November 2018, 17:08:28 UTC | Release/v0.26.1 (#2803) * changelog and version * fix changelog | 11 November 2018, 17:08:28 UTC |
3ff820b | Ismail Khoffi | 11 November 2018, 15:09:33 UTC | fix amino overhead computation for Tx (#2792) * fix amino overhead computation for Tx: - also count the fieldnum / typ3 - add method to compute overhead per Tx - slightly clarify comment on MaxAminoOverheadForBlock - add tests * fix TestReapMaxBytesMaxGas according to amino overhead * fix TestMempoolFilters according to amino overhead * address review comments: - add a note about fieldNum = 1 - add forgotten godoc comment * fix and use sm.TxPreCheck * fix test * remove print statement | 11 November 2018, 15:09:33 UTC |
905abf1 | Mehmet Gurevin | 11 November 2018, 13:14:52 UTC | p2p: re-check after sleeps (#2664) * p2p: re-check after sleeps * use NodeInfo as an interface * Revert "use NodeInfo as an interface" This reverts commit 5f7d055e6c745ac8c8e5a9a7f0bd5ea5bc3d448c. * Revert "p2p: re-check after sleeps" This reverts commit 7f41070da070eadd3312efce1cc821aaf3e23771. * preserve dial to itself * ignore ensured connections while re-connecting * re-check after sleep * keep protocol definition on net addresses * decrease log level * Revert "preserve dial to itself" This reverts commit 0c6e0fc58da78c378c32bb9ded2dd04ad5e754a9. * correct func comment according to modification Co-Authored-By: mgurevin <mehmet@gurevin.net> | 11 November 2018, 13:14:52 UTC |
7a4b62d | Ismail Khoffi | 11 November 2018, 12:57:08 UTC | check the result of `ps.peer.Send` before calling `ps.setHasVote` (#2787) - actually call `ps.SetHasVote` instead to avoid carrying around `votes.Height()`, `votes.Round()`, `types.SignedMsgType(votes.Type())` | 11 November 2018, 12:57:08 UTC |
5b19fcf | Jae Kwon | 11 November 2018, 11:50:25 UTC | p2p: AddressBook requires addresses to have IDs; Do not close conn immediately after sending pex addrs in seed mode (#2797) * Require addressbook to only store addresses with valid ID * Do not shut down peer immediately after sending pex addrs in SeedMode * p2p: fix #2773 * seed mode: use go-routine to sleep before stopping peer | 11 November 2018, 11:50:25 UTC |
1944d85 | Anton Kaliaev | 06 November 2018, 14:54:04 UTC | test AutoFile#Size (happy path) | 09 November 2018, 15:29:43 UTC |
13badc1 | Anton Kaliaev | 06 November 2018, 12:14:47 UTC | [autofile/group] do not panic when checking size It's OK if the head will grow a little bit bigger, but we'll avoid panic. Refs #2703 | 09 November 2018, 15:29:43 UTC |
091d2c3 | Anton Kaliaev | 06 November 2018, 12:12:42 UTC | openFile creates a file if not exist => ErrNotExist is not possible | 09 November 2018, 15:29:43 UTC |
d178ea9 | Anton Kaliaev | 06 November 2018, 12:12:12 UTC | use our logger in autofile/group | 09 November 2018, 15:29:43 UTC |
46d32af | Catalin Pirvu | 09 November 2018, 14:59:04 UTC | Add tests for ValidateBasic methods (#2754) Fixes #2740 | 09 November 2018, 14:59:04 UTC |
8b77328 | Zach | 09 November 2018, 14:11:06 UTC | [docs] improve organization of ABCI docs & fix links (#2749) * dedup with spec/abci/client-server * fixup abci/readme * link to getting started in abci/README * https * spec/abci: some deduplication * docs: remove extraneous comment | 09 November 2018, 14:11:06 UTC |
6e9aee5 | Ethan Buchman | 07 November 2018, 05:12:46 UTC | p2p: peer-id -> peer_id (#2771) * p2p: peer-id -> peer_id * update changelog | 07 November 2018, 05:12:46 UTC |
d460df1 | Anton Kaliaev | 07 November 2018, 04:23:44 UTC | mempool: print postCheck error (#2762) This is a follow-up from https://github.com/tendermint/tendermint/pull/2724 Closes #2761 | 07 November 2018, 04:23:44 UTC |
03e42d2 | Jae Kwon | 06 November 2018, 06:53:44 UTC | Fix crypto/merkle ProofOperators.Verify to check bounds on keypath pa… (#2756) * Fix crypto/merkle ProofOperators.Verify to check bounds on keypath parts. * Update PENDING | 06 November 2018, 06:53:44 UTC |
b8a9b0b | Anton Kaliaev | 06 November 2018, 06:39:05 UTC | Mempool WAL is still created by default in home directory, leads to permission errors (#2758) * only invoke InitWAL/CloseWAL if WalPath is not empty Closes #2717 * panic if WAL is not initialized when calling CloseWAL * add a changelog entry | 06 November 2018, 06:39:05 UTC |
7246ffc | Ethan Buchman | 06 November 2018, 06:32:52 UTC | mempool: ErrPreCheck and more log info (#2724) * mempool: ErrPreCheck and more log info * change Pre/PostCheckFunc to return errors also, continue execution when checking txs in mempool_test if err=PreCheckErr | 06 November 2018, 06:32:52 UTC |
071ebdd | Ethan Buchman | 06 November 2018, 06:32:15 UTC | Merge pull request #2704 from tendermint/2702-proposal-pol-round-validation if some process locks a block in round 0, then 0 is valid proposal.PO… | 06 November 2018, 06:32:15 UTC |
8760c5b | Ethan Buchman | 06 November 2018, 04:53:05 UTC | Merge branch 'develop' into 2702-proposal-pol-round-validation | 06 November 2018, 04:53:05 UTC |
59b75d3 | Ethan Buchman | 03 November 2018, 19:46:55 UTC | Merge pull request #2753 from tendermint/master Merge pull request #2750 from tendermint/release/v0.26.0 | 03 November 2018, 19:46:55 UTC |