Skip to content

Paniced on a Sanity Check: State mismatch for LastBlockHeight. Got 7, Expected 8 #409

@tglaeser

Description

@tglaeser

BUG REPORT

Tendermint version :: 0.8.0

ABCI app :: self-written, not publicly available

Essentially, this is a Java app similar to the Go Counter app. In the context of the error, what it does is the following:

  1. Stores the received hash value received in callback requestBeginBlock
  2. Stores the received height value received in callback requestEndBlock
  3. Returns those two stored values via callback requestInfo

Merkleeyes version :: n/a

Environment

  • OS :: Any
  • Install tools :: Tendermint from source

What happened

I'm running tendermint node. After killing the process and starting it again, I'm seeing the following error. I assume this is a defect as appHeight and storeHeight are identical.

NOTE[02-17|18:49:08] ABCI Handshake module=state appHeight=7 appHash=51FBECC7C1F24D2326CA74241C0374A7C132695D NOTE[02-17|18:49:08] ABCI Replay Blocks module=state appHeight=7 storeHeight=7 stateHeight=7 panic: Paniced on a Sanity Check: State mismatch for LastBlockHeight. Got 7, Expected 8

goroutine 1 [running]: panic(0x9b4320, 0xc042140cf0) C:/opt/go/src/runtime/panic.go:500 +0x1af github.com/tendermint/tendermint/vendor/github.com/tendermint/go-common.PanicSanity(0x9b4320, 0xc042140cd0) C:/home/projects/go/src/github.com/tendermint/tendermint/vendor/github.com/tendermint/go-common/errors.go:26 +0xe7 github.com/tendermint/tendermint/state.(*State).LoadIntermediate(0xc0420da0b0) C:/home/projects/go/src/github.com/tendermint/tendermint/state/state.go:100 +0xa33 github.com/tendermint/tendermint/state.(*Handshaker).ReplayBlocks(0xc04213cd20, 0xc042008860, 0x14, 0x14, 0x7, 0xeb2a80, 0xc04214bd40, 0x14, 0x14) C:/home/projects/go/src/github.com/tendermint/tendermint/state/execution.go:369 +0x127d github.com/tendermint/tendermint/state.(*Handshaker).Handshake(0xc04213cd20, 0xeb3dc0, 0xc0424fe3f0, 0x0, 0x0) C:/home/projects/go/src/github.com/tendermint/tendermint/state/execution.go:329 +0x48a github.com/tendermint/tendermint/proxy.(*multiAppConn).OnStart(0xc0424fe3f0, 0xc042151700, 0x15) C:/home/projects/go/src/github.com/tendermint/tendermint/proxy/multi_app_conn.go:100 +0x20d github.com/tendermint/tendermint/vendor/github.com/tendermint/go-common.(*BaseService).Start(0xc0424fe3f0, 0x0, 0x0, 0x0) C:/home/projects/go/src/github.com/tendermint/tendermint/vendor/github.com/tendermint/go-common/service.go:96 +0x54d github.com/tendermint/tendermint/node.NewNode(0xeb4940, 0xc042151820, 0xc0424bfae0, 0xea75a0, 0xc042177bf0, 0x0) C:/home/projects/go/src/github.com/tendermint/tendermint/node/node.go:68 +0x48a github.com/tendermint/tendermint/node.NewNodeDefault(0xeb4940, 0xc042151820, 0x1) C:/home/projects/go/src/github.com/tendermint/tendermint/node/node.go:51 +0xc1 github.com/tendermint/tendermint/node.RunNode(0xeb4940, 0xc042151820) C:/home/projects/go/src/github.com/tendermint/tendermint/node/node.go:350 +0x530 main.main() C:/home/projects/go/src/github.com/tendermint/tendermint/cmd/tendermint/main.go:42 +0x37a

What you expected to happen

Expecting value 8 for LastBlockHeight seems to be wrong considering the last block height is consistently 7. The 8th block was not even yet created, so why not simply building upon block 7.

How to reproduce it

I assume this could be easily reproduced with a test or the Go Counter example if the Info() function only would return values for properties "last_block_height" and "last_block_app_hash". I see the following reply for Tendermint / Go Counter client / server combination ...
$ curl http://localhost:46657/abci_info {"jsonrpc":"2.0","id":"","result":[113,{"data":"{\"hashes\":259,\"txs\":0}","version":"","last_block_height":0,"last_block_app_hash":""}],"error":""}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions