forked from TrueCloudLab/neoneo-go
0cd3493fa5
I think it should fix this issue mentioned in the #526: INFO[1456] blockchain persist completed blockHeight=63480 headerHeight=1810000 persistedBlocks=1 persistedKeys=4 took=740.7113ms fatal error: concurrent map read and map write goroutine 322 [running]: runtime.throw(0xc8a6dc, 0x21) /usr/local/go/src/runtime/panic.go:774 +0x72 fp=0xc003473958 sp=0xc003473928 pc=0x42e282 runtime.mapaccess2(0xb706a0, 0xc0001893b0, 0xc0034739c8, 0xc0028704e0, 0x3) /usr/local/go/src/runtime/map.go:470 +0x278 fp=0xc0034739a0 sp=0xc003473958 pc=0x40dc08 github.com/CityOfZion/neo-go/pkg/core.MemPool.ContainsKey(0xc0001d0d20, 0xc0001893b0, 0xc0001893e0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...) /neo-go/pkg/core/mem_pool.go:92 +0xcb fp=0xc003473a30 sp=0xc0034739a0 pc=0x9326db github.com/CityOfZion/neo-go/pkg/core.(*Blockchain).HasTransaction(0xc0001ca8c0, 0x49f0b45d430e441b, 0x553db79b7072821c, 0x28969518de11976, 0xba5100efddbe79d4, 0xc003473cd0) /neo-go/pkg/core/blockchain.go:803 +0xa1 fp=0xc003473b68 sp=0xc003473a30 pc=0x914b11 github.com/CityOfZion/neo-go/pkg/core.Blockchainer.HasTransaction-fm(0x49f0b45d430e441b, 0x553db79b7072821c, 0x28969518de11976, 0xba5100efddbe79d4, 0xc005a5d388) /neo-go/pkg/core/blockchainer.go:28 +0x46 fp=0xc003473ba8 sp=0xc003473b68 pc=0x997326 github.com/CityOfZion/neo-go/pkg/network.(*Server).handleInvCmd(0xc00018f680, 0xd9d980, 0xc00025e190, 0xc005a5d380, 0x0, 0x0) /neo-go/pkg/network/server.go:401 +0x3bb fp=0xc003473d38 sp=0xc003473ba8 pc=0x9924cb github.com/CityOfZion/neo-go/pkg/network.(*Server).handleMessage(0xc00018f680, 0xd9d980, 0xc00025e190, 0xc007a0d050, 0x0, 0x0) /neo-go/pkg/network/server.go:582 +0x1ae fp=0xc003473da0 sp=0xc003473d38 pc=0x993bbe github.com/CityOfZion/neo-go/pkg/network.(*TCPTransport).handleConn(0xc000228420, 0xd9b880, 0xc0001b6f00) /neo-go/pkg/network/tcp_transport.go:93 +0x202 fp=0xc003473fc8 sp=0xc003473da0 pc=0x996672 runtime.goexit() /usr/local/go/src/runtime/asm_amd64.s:1357 +0x1 fp=0xc003473fd0 sp=0xc003473fc8 pc=0x45b3e1 created by github.com/CityOfZion/neo-go/pkg/network.(*TCPTransport).Dial /neo-go/pkg/network/tcp_transport.go:36 +0xb4 The problem is that we're modifying `unsortedTxn` under a reader lock. |
||
---|---|---|
.. | ||
storage | ||
test_data | ||
transaction | ||
account_state.go | ||
account_state_test.go | ||
asset_state.go | ||
asset_state_test.go | ||
block.go | ||
block_base.go | ||
block_test.go | ||
blockchain.go | ||
blockchain_state.go | ||
blockchain_state_test.go | ||
blockchain_test.go | ||
blockchainer.go | ||
coin_state.go | ||
contract_state.go | ||
contract_state_test.go | ||
feer.go | ||
header.go | ||
header_hash_list.go | ||
header_test.go | ||
helper_test.go | ||
interop_neo.go | ||
interop_neo_test.go | ||
interop_system.go | ||
interops.go | ||
mem_pool.go | ||
mem_pool_test.go | ||
notification_event.go | ||
prometheus.go | ||
random_util_test.go | ||
spent_coin_state.go | ||
spent_coin_state_test.go | ||
storage_item.go | ||
storage_item_test.go | ||
unspent_coin_state.go | ||
unspent_coint_state_test.go | ||
util.go | ||
util_test.go | ||
validator_state.go | ||
validator_state_test.go |