Assertion mempool transaction missing input #2821

issue Krellan openend this issue on July 10, 2013
  1. Krellan commented at 6:40 pm on July 10, 2013: contributor

    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:

      0sending: addr (31 bytes)
      1sending: inv (37 bytes)
      2received: inv (37 bytes)
      3  got inventory: tx 0a740a5544620f9b89bb14abf077f8624835bbb5ee65e45f319f9c3e5f8ee6c8  have
      4received: addr (31 bytes)
      5sending: inv (37 bytes)
      6received: inv (37 bytes)
      7  got inventory: tx 0a740a5544620f9b89bb14abf077f8624835bbb5ee65e45f319f9c3e5f8ee6c8  have
      8received: inv (37 bytes)
      9  got inventory: tx 0a740a5544620f9b89bb14abf077f8624835bbb5ee65e45f319f9c3e5f8ee6c8  have
     10sending: inv (73 bytes)
     11received: inv (37 bytes)
     12  got inventory: block 000000000000001aa6707204b2d1887089a860eceaf8a893a7c2d08dfe6ac525  have
     13sending: getblocks (965 bytes)
     14received: inv (73 bytes)
     15  got inventory: tx 53b325cd548867df032b8879a18abd9c1b97638b3a3c380c38cd8546626d36c5  have
     16  got inventory: tx 0a740a5544620f9b89bb14abf077f8624835bbb5ee65e45f319f9c3e5f8ee6c8  have
     17received: inv (37 bytes)
     18  got inventory: tx 53b325cd548867df032b8879a18abd9c1b97638b3a3c380c38cd8546626d36c5  have
     19sending: addr (31 bytes)
     20sending: inv (73 bytes)
     21received: inv (37 bytes)
     22  got inventory: block 000000000000000dd0d039cf7c7e006d79a915b0ee76180bb300dc74ed3308a2  new
     23askfor block 000000000000000dd0d039cf7c7e006d79a915b0ee76180bb300dc74ed3308a2   1373479424000000 (18:03:44)
     24received: inv (37 bytes)
     25  got inventory: block 000000000000001aa6707204b2d1887089a860eceaf8a893a7c2d08dfe6ac525  have
     26sending: getblocks (965 bytes)
     27received: getblocks (965 bytes)
     28getblocks 194158 to 0000000000000000000000000000000000000000000000000000000000000000 limit 500
     29  getblocks stopping at limit 194657 00000000000000a13f6a1b564b6ef5bc06067da0374e181f4acf7f3c4d9caf37
     30sending: inv (18003 bytes)
     31received: inv (73 bytes)
     32  got inventory: block 000000000000001aa6707204b2d1887089a860eceaf8a893a7c2d08dfe6ac525  have
     33sending: getblocks (965 bytes)
     34  got inventory: tx 0a740a5544620f9b89bb14abf077f8624835bbb5ee65e45f319f9c3e5f8ee6c8  have
     35received: inv (37 bytes)
     36  got inventory: block 000000000000001aa6707204b2d1887089a860eceaf8a893a7c2d08dfe6ac525  have
     37sending: getblocks (965 bytes)
     38received: block (101786 bytes)
     39received block 000000000000000dd0d039cf7c7e006d79a915b0ee76180bb300dc74ed3308a2
     40REORGANIZE: Disconnect 1 blocks; 000000000000009fd60babdec39b4e49feb4ec17497c0b341e05beb7e692304a..
     41REORGANIZE: Connect 2 blocks; ..000000000000001aa6707204b2d1887089a860eceaf8a893a7c2d08dfe6ac525
     42Committing 2146 changed transactions to coin database...
     43ERROR: Non-canonical signature: R value negative
     44ERROR: CScriptCheck() : ac0bed4e30581eecf567e9a96ca7b97e5721532b097250c2eb2a5df2c625ad15 VerifySignature failed
     45ERROR: CTxMemPool::accept() : ConnectInputs failed ac0bed4e30581eecf567e9a96ca7b97e5721532b097250c2eb2a5df2c625ad15
     46ERROR: CTxMemPool::accept() : nonstandard transaction type
     47ERROR: Non-canonical signature: R value negative
     48ERROR: CScriptCheck() : 8a25c7ea809620294d5562026133e3a94f1a3ca429579f9280485e50853b5546 VerifySignature failed
     49ERROR: CTxMemPool::accept() : ConnectInputs failed 8a25c7ea809620294d5562026133e3a94f1a3ca429579f9280485e50853b5546
     50ERROR: Non-canonical signature: R value negative
     51ERROR: CScriptCheck() : 5d8bbdfa6f215f7b33bfcb9608e5e6dd739cc563daf0fc0c591edfd73a8d17ae VerifySignature failed
     52ERROR: CTxMemPool::accept() : ConnectInputs failed 5d8bbdfa6f215f7b33bfcb9608e5e6dd739cc563daf0fc0c591edfd73a8d17ae
     53ERROR: CTxMemPool::accept() : nonstandard transaction type
     54ERROR: CTxMemPool::accept() : nonstandard transaction type
     55ERROR: CTxMemPool::accept() : nonstandard transaction type
     56ERROR: CTxMemPool::accept() : inputs already spent
     57ERROR: CTxMemPool::accept() : inputs already spent
     58ERROR: CTxMemPool::accept() : inputs already spent
     59ERROR: CTxMemPool::accept() : inputs already spent
     60ERROR: CTxMemPool::accept() : nonstandard transaction type
     61ERROR: CTxMemPool::accept() : inputs already spent
     62ERROR: CTxMemPool::accept() : inputs already spent
     63ERROR: CTxMemPool::accept() : inputs already spent
     64ERROR: CTxMemPool::accept() : inputs already spent
     65ERROR: Non-canonical signature: S value negative
     66ERROR: CScriptCheck() : 3b33366cf854d9046678fffadde8dac3435431a33c217ee1a25826502a3ef569 VerifySignature failed
     67ERROR: CTxMemPool::accept() : ConnectInputs failed 3b33366cf854d9046678fffadde8dac3435431a33c217ee1a25826502a3ef569
     68CTxMemPool::accept() : accepted cc4668b4f417e12492b384d22e081843da52875ecb072f2c39efc982a9fa9a4e (poolsz 1304)
     69SetBestChain: new best=000000000000001aa6707204b2d1887089a860eceaf8a893a7c2d08dfe6ac525  height=245886  log2_work=70.667529  tx=20513801  date=2013-07-10 17:47:29 progress=0.999999
     70ProcessBlock: ACCEPTED
     71sending: inv (37 bytes)
     72sending: inv (37 bytes)
     73sending: inv (37 bytes)
     74received: inv (37 bytes)
     75  got inventory: tx 0a740a5544620f9b89bb14abf077f8624835bbb5ee65e45f319f9c3e5f8ee6c8  have
     76received: inv (37 bytes)
     77  got inventory: block 000000000000000dd0d039cf7c7e006d79a915b0ee76180bb300dc74ed3308a2  have
     78sending: getblocks (965 bytes)
     79force request: block 000000000000000dd0d039cf7c7e006d79a915b0ee76180bb300dc74ed3308a2
     80sending: inv (37 bytes)
     81sending: inv (73 bytes)
     82sending: inv (37 bytes)
     83sending: inv (37 bytes)
     84received: inv (37 bytes)
     85  got inventory: tx 0a740a5544620f9b89bb14abf077f8624835bbb5ee65e45f319f9c3e5f8ee6c8  have
     86sending getdata: tx 86a417868917ef04aa7762df4e9d8e8e2d289000e269ebd60787a92f1ab50b25
     87sending: getdata (37 bytes)
     88sending: inv (37 bytes)
     89sending: block (248889 bytes)
     90sending: block (98904 bytes)
     91sending: block (113210 bytes)
     92sending: block (77749 bytes)
     93sending: block (63716 bytes)
     94sending: inv (37 bytes)
     95sending: inv (37 bytes)
     96sending: inv (37 bytes)
     97sending: inv (37 bytes)
     98sending: inv (37 bytes)
     99sending: inv (37 bytes)
    100sending: inv (37 bytes)
    101received: inv (37 bytes)
    102  got inventory: tx 0a740a5544620f9b89bb14abf077f8624835bbb5ee65e45f319f9c3e5f8ee6c8  have
    103sending: inv (37 bytes)
    104received: inv (37 bytes)
    105  got inventory: block 000000000000000dd0d039cf7c7e006d79a915b0ee76180bb300dc74ed3308a2  have
    106sending: getblocks (965 bytes)
    107force request: block 000000000000000dd0d039cf7c7e006d79a915b0ee76180bb300dc74ed3308a2
    108ERROR: mempool transaction missing input
    109bitcoin-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

  2. laanwj added the label Bug on May 6, 2014
  3. ghost commented at 5:21 am on November 24, 2014: none

    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

  4. laanwj closed this on Feb 16, 2016

  5. Bushstar referenced this in commit a370bbfe3d on Apr 5, 2019
  6. DrahtBot locked this on Sep 8, 2021


Krellan ghost

Labels
Bug


github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2024-12-19 00:12 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me