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

Assertion mempool transaction missing input #2821

Closed
Krellan opened this issue Jul 10, 2013 · 1 comment
Closed

Assertion mempool transaction missing input #2821

Krellan opened this issue Jul 10, 2013 · 1 comment
Labels

Comments

@Krellan
Copy link
Contributor

Krellan commented Jul 10, 2013

This seems similar to Issue #2570 even though that is closed. Interestingly, it still happens in the bitcoin-qt 0.8.3 client, v0.8.3.0-g40809ae-beta version.

This was a clean compile from source, running on Gentoo Linux (64-bit). I compiled this independently of the Gentoo system, so no unusual compiler options or anything like that should have been used.

I believe it also happens during a block reorganization. Here is the debug log:

sending: addr (31 bytes)
sending: inv (37 bytes)
received: inv (37 bytes)
  got inventory: tx 0a740a5544620f9b89bb14abf077f8624835bbb5ee65e45f319f9c3e5f8ee6c8  have
received: addr (31 bytes)
sending: inv (37 bytes)
received: inv (37 bytes)
  got inventory: tx 0a740a5544620f9b89bb14abf077f8624835bbb5ee65e45f319f9c3e5f8ee6c8  have
received: inv (37 bytes)
  got inventory: tx 0a740a5544620f9b89bb14abf077f8624835bbb5ee65e45f319f9c3e5f8ee6c8  have
sending: inv (73 bytes)
received: inv (37 bytes)
  got inventory: block 000000000000001aa6707204b2d1887089a860eceaf8a893a7c2d08dfe6ac525  have
sending: getblocks (965 bytes)
received: inv (73 bytes)
  got inventory: tx 53b325cd548867df032b8879a18abd9c1b97638b3a3c380c38cd8546626d36c5  have
  got inventory: tx 0a740a5544620f9b89bb14abf077f8624835bbb5ee65e45f319f9c3e5f8ee6c8  have
received: inv (37 bytes)
  got inventory: tx 53b325cd548867df032b8879a18abd9c1b97638b3a3c380c38cd8546626d36c5  have
sending: addr (31 bytes)
sending: inv (73 bytes)
received: inv (37 bytes)
  got inventory: block 000000000000000dd0d039cf7c7e006d79a915b0ee76180bb300dc74ed3308a2  new
askfor block 000000000000000dd0d039cf7c7e006d79a915b0ee76180bb300dc74ed3308a2   1373479424000000 (18:03:44)
received: inv (37 bytes)
  got inventory: block 000000000000001aa6707204b2d1887089a860eceaf8a893a7c2d08dfe6ac525  have
sending: getblocks (965 bytes)
received: getblocks (965 bytes)
getblocks 194158 to 0000000000000000000000000000000000000000000000000000000000000000 limit 500
  getblocks stopping at limit 194657 00000000000000a13f6a1b564b6ef5bc06067da0374e181f4acf7f3c4d9caf37
sending: inv (18003 bytes)
received: inv (73 bytes)
  got inventory: block 000000000000001aa6707204b2d1887089a860eceaf8a893a7c2d08dfe6ac525  have
sending: getblocks (965 bytes)
  got inventory: tx 0a740a5544620f9b89bb14abf077f8624835bbb5ee65e45f319f9c3e5f8ee6c8  have
received: inv (37 bytes)
  got inventory: block 000000000000001aa6707204b2d1887089a860eceaf8a893a7c2d08dfe6ac525  have
sending: getblocks (965 bytes)
received: block (101786 bytes)
received block 000000000000000dd0d039cf7c7e006d79a915b0ee76180bb300dc74ed3308a2
REORGANIZE: Disconnect 1 blocks; 000000000000009fd60babdec39b4e49feb4ec17497c0b341e05beb7e692304a..
REORGANIZE: Connect 2 blocks; ..000000000000001aa6707204b2d1887089a860eceaf8a893a7c2d08dfe6ac525
Committing 2146 changed transactions to coin database...
ERROR: Non-canonical signature: R value negative
ERROR: CScriptCheck() : ac0bed4e30581eecf567e9a96ca7b97e5721532b097250c2eb2a5df2c625ad15 VerifySignature failed
ERROR: CTxMemPool::accept() : ConnectInputs failed ac0bed4e30581eecf567e9a96ca7b97e5721532b097250c2eb2a5df2c625ad15
ERROR: CTxMemPool::accept() : nonstandard transaction type
ERROR: Non-canonical signature: R value negative
ERROR: CScriptCheck() : 8a25c7ea809620294d5562026133e3a94f1a3ca429579f9280485e50853b5546 VerifySignature failed
ERROR: CTxMemPool::accept() : ConnectInputs failed 8a25c7ea809620294d5562026133e3a94f1a3ca429579f9280485e50853b5546
ERROR: Non-canonical signature: R value negative
ERROR: CScriptCheck() : 5d8bbdfa6f215f7b33bfcb9608e5e6dd739cc563daf0fc0c591edfd73a8d17ae VerifySignature failed
ERROR: CTxMemPool::accept() : ConnectInputs failed 5d8bbdfa6f215f7b33bfcb9608e5e6dd739cc563daf0fc0c591edfd73a8d17ae
ERROR: CTxMemPool::accept() : nonstandard transaction type
ERROR: CTxMemPool::accept() : nonstandard transaction type
ERROR: CTxMemPool::accept() : nonstandard transaction type
ERROR: CTxMemPool::accept() : inputs already spent
ERROR: CTxMemPool::accept() : inputs already spent
ERROR: CTxMemPool::accept() : inputs already spent
ERROR: CTxMemPool::accept() : inputs already spent
ERROR: CTxMemPool::accept() : nonstandard transaction type
ERROR: CTxMemPool::accept() : inputs already spent
ERROR: CTxMemPool::accept() : inputs already spent
ERROR: CTxMemPool::accept() : inputs already spent
ERROR: CTxMemPool::accept() : inputs already spent
ERROR: Non-canonical signature: S value negative
ERROR: CScriptCheck() : 3b33366cf854d9046678fffadde8dac3435431a33c217ee1a25826502a3ef569 VerifySignature failed
ERROR: CTxMemPool::accept() : ConnectInputs failed 3b33366cf854d9046678fffadde8dac3435431a33c217ee1a25826502a3ef569
CTxMemPool::accept() : accepted cc4668b4f417e12492b384d22e081843da52875ecb072f2c39efc982a9fa9a4e (poolsz 1304)
SetBestChain: new best=000000000000001aa6707204b2d1887089a860eceaf8a893a7c2d08dfe6ac525  height=245886  log2_work=70.667529  tx=20513801  date=2013-07-10 17:47:29 progress=0.999999
ProcessBlock: ACCEPTED
sending: inv (37 bytes)
sending: inv (37 bytes)
sending: inv (37 bytes)
received: inv (37 bytes)
  got inventory: tx 0a740a5544620f9b89bb14abf077f8624835bbb5ee65e45f319f9c3e5f8ee6c8  have
received: inv (37 bytes)
  got inventory: block 000000000000000dd0d039cf7c7e006d79a915b0ee76180bb300dc74ed3308a2  have
sending: getblocks (965 bytes)
force request: block 000000000000000dd0d039cf7c7e006d79a915b0ee76180bb300dc74ed3308a2
sending: inv (37 bytes)
sending: inv (73 bytes)
sending: inv (37 bytes)
sending: inv (37 bytes)
received: inv (37 bytes)
  got inventory: tx 0a740a5544620f9b89bb14abf077f8624835bbb5ee65e45f319f9c3e5f8ee6c8  have
sending getdata: tx 86a417868917ef04aa7762df4e9d8e8e2d289000e269ebd60787a92f1ab50b25
sending: getdata (37 bytes)
sending: inv (37 bytes)
sending: block (248889 bytes)
sending: block (98904 bytes)
sending: block (113210 bytes)
sending: block (77749 bytes)
sending: block (63716 bytes)
sending: inv (37 bytes)
sending: inv (37 bytes)
sending: inv (37 bytes)
sending: inv (37 bytes)
sending: inv (37 bytes)
sending: inv (37 bytes)
sending: inv (37 bytes)
received: inv (37 bytes)
  got inventory: tx 0a740a5544620f9b89bb14abf077f8624835bbb5ee65e45f319f9c3e5f8ee6c8  have
sending: inv (37 bytes)
received: inv (37 bytes)
  got inventory: block 000000000000000dd0d039cf7c7e006d79a915b0ee76180bb300dc74ed3308a2  have
sending: getblocks (965 bytes)
force request: block 000000000000000dd0d039cf7c7e006d79a915b0ee76180bb300dc74ed3308a2
ERROR: mempool transaction missing input
bitcoin-qt: src/main.cpp:4251: CBlockTemplate* CreateNewBlock(CReserveKey&): Assertion `"mempool transaction missing input" == 0' failed.

After this, I restarted the client again, and it came right back up and running without incident.

Josh

@ghost
Copy link

ghost commented Nov 24, 2014

The mempool can and will contain transactions with missing inputs (orphans) due to various reasons such as reorganization caused by downloading the blockchain while a miner thread is running as you've shown. This is due to the fact that reorganization does nothing with spent coinbase transactions. The assert is useless since the problem is not really a problem but rather a symptom something larger.

Refer to #5267

@laanwj laanwj closed this as completed Feb 16, 2016
Bushstar pushed a commit to Bushstar/omnicore that referenced this issue Apr 5, 2019
…c7d2dbfe2f9) (bitcoin#2821)

* Update immer library to current master (0a718d2d76bab6ebdcf43de943bd6c7d2dbfe2f9)

* Temporary fix for alignof(std::max_align_t) on MinGW 32bit builds

See arximboldi/immer#78
@bitcoin bitcoin locked as resolved and limited conversation to collaborators Sep 8, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

2 participants