Skip to content
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

consensus halt with no empty blocks #3199

Closed
ebuchman opened this issue Jan 24, 2019 · 1 comment
Closed

consensus halt with no empty blocks #3199

ebuchman opened this issue Jan 24, 2019 · 1 comment
Labels
C:consensus Component: Consensus T:bug Type Bug (Confirmed)
Milestone

Comments

@ebuchman
Copy link
Contributor

With create_empty_blocks = false, after some number of hours under load, tendermint was found to halt.

The consensus state at this point indicated that all precommits were received for the round, but progress was not being made.

This suggested that perhaps the triggeredTimeoutCommit was not being reset properly, and was preventing the timeoutPrecommit from being scheduled.

Turns out, when the mempool notifies the consensus that txs are available, its possible that the consensus would not have already entered the new round, and the enterNewRound method actually gets skipped, going right to the proposal instead:

cs.enterPropose(cs.Height, 0)

Since enterNewRound is where triggeredTimeoutPrecommit is reset, this explains the halt.

@ebuchman ebuchman added T:bug Type Bug (Confirmed) C:consensus Component: Consensus labels Jan 24, 2019
@ebuchman ebuchman added this to the v0.30.0 milestone Jan 24, 2019
@milosevic milosevic mentioned this issue Jan 24, 2019
4 tasks
@ebuchman
Copy link
Contributor Author

Should be fixed in #3197

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C:consensus Component: Consensus T:bug Type Bug (Confirmed)
Projects
None yet
Development

No branches or pull requests

1 participant