Skip to content

[bug]: listunspent shows spent outputs #8786

@kallerosenbaum

Description

@kallerosenbaum

Background

This might be a duplicate of #5959, but not sure so I'll open a new ticket.

We have two LND nodes of the same version 0.17.2 (but later they got upgraded to 0.17.5). We call them lnd-main and lnd-routing.

Both these nodes recently reported and still report outputs they don't have. I'm focusing on lnd-routing here (leaving out all correct outputs):

# date; lncli listunspent 1|grep outpoint                                                                                                                 
Tue May 28 10:01:04 UTC 2024                                                                                                                                             
                        "outpoint": "a4c248d5344ea4aa1ac9800e46aad117a77aa27b8e6501c1f84c6c52765e392e:0",
                        "outpoint": "685fdb1818fce6fe2d4fac960044e490ed6ab6965a45e454570e2424577fca82:0",
                        "outpoint": "4e8e54a38f11576cf9b0599c6eee2e2321532f40eea584aa410e16cfefd1dee9:0",
                        "outpoint": "9e83457fc8fe53b537330dcd32d99d62588d61fc3ea7b6b2ec392fd3c7b842b5:0",
                        "outpoint": "a592d2a1ef610e084d44e102fcb844a966cbe97557ec7b92a6b555c3ea294ac5:0",
                        "outpoint": "1254868d20ad31359144b684a483a64e44afb100bab3d7402897667228305d91:0",
                        "outpoint": "575faeb98596d4ff9064323924bf90b1672a36f1737405b70a800be908fc3fb1:0",
                        "outpoint": "fbb02dfcecf7c5ca7d2afe60d5b35b884151a58cf21dace1e63aab3217853ed1:0",
                        "outpoint": "68e7ecf111f1570078547d4d38de0034c806687e7e46391f87e08c3983e78e0d:0",
                        "outpoint": "6d138e3729973d1dd9078e6ff15cc10c40707be1a390c110a6ed0ea1cb01fec4:0",

These are already spent by tx 61f8f4b41196b01a3acb3eee16a81f890540d3b624ed2b0efa730520947f272f, which was broadcast 2024-04-09 and confirmed on 2024-05-15.

Your environment

  • LND 0.17.2 when issue appeared, 0.17.5 when we discovered it.,
  • Linux lnd-main-0 6.2.0-1017-aws # 17~22.04.1-Ubuntu SMP Fri Nov 17 21:07:13 UTC 2023 x86_64 Linux
  • bitcoin core 26 when issue appeared, 27 when we discovered the issue
  • running in kubernetes

Steps to reproduce

When searching through the logs I found this line right after a restart on 2024-05-21:

2024-05-21 12:10:16.516 [INF] LNWL: 61f8f4b41196b01a3acb3eee16a81f890540d3b624ed2b0efa730520947f272f: broadcast failed because of: double spend: -25: bad-txns-inputs-missingorspent
2024-05-21 12:10:16.519 [INF] LNWL: Removed invalid transaction: (*wire.MsgTx)(0xc002faae10)({
Version: (int32) 2,
TxIn: ([]*wire.TxIn) (len=10 cap=10) {
(*wire.TxIn)(0xc003992000)({
PreviousOutPoint: (wire.OutPoint) 1254868d20ad31359144b684a483a64e44afb100bab3d7402897667228305d91:0,
SignatureScript: ([]uint8) {
},
Witness: (wire.TxWitness) (len=1 cap=1) {
([]uint8) (len=64 cap=64) {
00000000  a3 fb b2 d9 44 03 50 9b  ab 3c cd 88 b5 07 c9 e6  |....D.P..<......|
00000010  b2 bf 64 2d 46 f5 7f f9  cb 82 6f f0 7b bb 4f 63  |..d-F.....o.{.Oc|
00000020  b1 fd cd d5 28 33 0c 87  5a ea 0d d0 cd b7 4d 93  |....(3..Z.....M.|
00000030  e5 22 27 bd da ab 15 1f  54 d7 3b 50 9b b2 22 e8  |."'.....T.;P..".|
}
},
Sequence: (uint32) 4294967293
}),
(*wire.TxIn)(0xc003992060)({
PreviousOutPoint: (wire.OutPoint) 4e8e54a38f11576cf9b0599c6eee2e2321532f40eea584aa410e16cfefd1dee9:0,
SignatureScript: ([]uint8) {
},
Witness: (wire.TxWitness) (len=1 cap=1) {
([]uint8) (len=64 cap=64) {
00000000  0f d1 41 fe 8e 7a c2 19  ec 20 95 62 37 6f 0a d4  |..A..z... .b7o..|
00000010  53 00 c4 cd 18 b8 06 64  31 5c 48 96 bb 68 30 5f  |S......d1\H..h0_|
00000020  12 e1 ae 95 7c 2e 13 3c  b2 e3 87 20 80 05 87 ea  |....|..<... ....|
00000030  b6 76 d6 46 61 bd 64 f4  01 7c 90 53 fc 53 1a 9f  |.v.Fa.d..|.S.S..|
}
},
Sequence: (uint32) 4294967293
}),
(*wire.TxIn)(0xc0039920c0)({
PreviousOutPoint: (wire.OutPoint) 575faeb98596d4ff9064323924bf90b1672a36f1737405b70a800be908fc3fb1:0,
SignatureScript: ([]uint8) {
},
Witness: (wire.TxWitness) (len=1 cap=1) {
([]uint8) (len=64 cap=64) {
00000000  48 67 77 34 27 b2 a0 e2  f3 93 0d a9 44 1a 6b 67  |Hgw4'.......D.kg|
00000010  2a dc 04 a3 e5 2b da 47  43 a9 b4 b5 5b 6d c1 08  |*....+.GC...[m..|
00000020  b5 21 7e 3e d9 dd 63 e7  30 a9 65 d3 d4 4f 76 ea  |.!~>..c.0.e..Ov.|
00000030  af 2b d7 b8 26 bc ac ff  03 d7 bf 44 9f 9c 34 b8  |.+..&......D..4.|
}
},
Sequence: (uint32) 4294967293
}),
(*wire.TxIn)(0xc003992120)({
PreviousOutPoint: (wire.OutPoint) 685fdb1818fce6fe2d4fac960044e490ed6ab6965a45e454570e2424577fca82:0,
SignatureScript: ([]uint8) {
},
Witness: (wire.TxWitness) (len=1 cap=1) {
([]uint8) (len=64 cap=64) {
00000000  6a 90 cb ea ba 6a 57 55  e6 e9 45 fb c0 16 d2 00  |j....jWU..E.....|
00000010  4a 6a f1 23 f1 93 f2 b4  e4 3d b9 b5 7f 17 a8 5d  |Jj.#.....=.....]|
00000020  66 ff 45 d2 59 49 12 04  48 a0 0e cb cb 73 52 b5  |f.E.YI..H....sR.|
00000030  75 c7 9b 08 97 c5 03 51  0d 1a ef 19 89 08 05 c1  |u......Q........|
}
},
Sequence: (uint32) 4294967293
}),
(*wire.TxIn)(0xc003992180)({
PreviousOutPoint: (wire.OutPoint) 68e7ecf111f1570078547d4d38de0034c806687e7e46391f87e08c3983e78e0d:0,
SignatureScript: ([]uint8) {
},
Witness: (wire.TxWitness) (len=1 cap=1) {
([]uint8) (len=64 cap=64) {
00000000  5e df 1a cf 05 1d e4 12  5b 63 5a 62 c2 95 c8 72  |^.......[cZb...r|
00000010  e9 25 a1 c7 64 85 d9 9c  30 81 59 cb 64 00 55 dc  |.%..d...0.Y.d.U.|
00000020  99 da 6f b5 d4 b7 6b 3d  7a 1e df 37 56 12 fd 7c  |..o...k=z..7V..||
00000030  a1 da d0 0b 65 4b cd 88  77 f0 cc ea f3 30 a9 c0  |....eK..w....0..|
}
},
Sequence: (uint32) 4294967293
}),
(*wire.TxIn)(0xc0039921e0)({
PreviousOutPoint: (wire.OutPoint) 6d138e3729973d1dd9078e6ff15cc10c40707be1a390c110a6ed0ea1cb01fec4:0,
SignatureScript: ([]uint8) {
},
Witness: (wire.TxWitness) (len=1 cap=1) {
([]uint8) (len=64 cap=64) {
00000000  29 3e d1 77 60 29 21 22  21 33 34 0a 74 f6 9e 5f  |)>.w`)!"!34.t.._|
00000010  2d 1d 6b 36 12 8a 98 ba  2a 10 da 30 09 85 c2 4e  |-.k6....*..0...N|
00000020  e0 d0 c9 0a 70 f7 5d 1c  ac 93 b3 c4 83 a8 cc a3  |....p.].........|
00000030  75 59 74 4e 34 b9 eb 88  b4 ce ca 65 af 48 3c d2  |uYtN4......e.H<.|
}
},
Sequence: (uint32) 4294967293
}),
(*wire.TxIn)(0xc003992240)({
PreviousOutPoint: (wire.OutPoint) 9e83457fc8fe53b537330dcd32d99d62588d61fc3ea7b6b2ec392fd3c7b842b5:0,
SignatureScript: ([]uint8) {
},
Witness: (wire.TxWitness) (len=1 cap=1) {
([]uint8) (len=64 cap=64) {
00000000  20 f1 4e 7d ac ee 8d 3e  59 05 8c a6 fc fe 9e 08  | .N}...>Y.......|
00000010  b2 54 99 7d c9 5b 38 20  c9 d0 33 b9 3c f0 a4 71  |.T.}.[8 ..3.<..q|
00000020  89 3d 28 5a de 9b 7c b6  b2 c9 a7 86 e3 19 f2 7d  |.=(Z..|........}|
00000030  bf f1 9c bd 1c bf 3d 37  48 a5 a3 a3 35 60 7b 81  |......=7H...5`{.|
}
},
Sequence: (uint32) 4294967293
}),
(*wire.TxIn)(0xc0039922a0)({
PreviousOutPoint: (wire.OutPoint) a4c248d5344ea4aa1ac9800e46aad117a77aa27b8e6501c1f84c6c52765e392e:0,
SignatureScript: ([]uint8) {
},
Witness: (wire.TxWitness) (len=1 cap=1) {
([]uint8) (len=64 cap=64) {
00000000  64 58 99 13 57 72 36 20  9c f6 ca c0 93 6e 73 30  |dX..Wr6 .....ns0|
00000010  d3 3f 7c e3 32 b7 f1 dc  04 c3 40 cc 15 e0 5c 8e  |.?|.2.....@...\.|
00000020  6f b0 18 a1 64 85 4a bb  b7 ec 75 99 3f 1d 7b 8f  |o...d.J...u.?.{.|
00000030  f0 61 81 b0 31 ef 3c b3  71 bd 31 11 e7 68 78 56  |.a..1.<.q.1..hxV|
}
},
Sequence: (uint32) 4294967293
}),
(*wire.TxIn)(0xc003992300)({
PreviousOutPoint: (wire.OutPoint) a592d2a1ef610e084d44e102fcb844a966cbe97557ec7b92a6b555c3ea294ac5:0,
SignatureScript: ([]uint8) {
},
Witness: (wire.TxWitness) (len=1 cap=1) {
([]uint8) (len=64 cap=64) {
00000000  16 8a 55 46 39 54 2a eb  22 61 99 cf 2c 6b 12 49  |..UF9T*."a..,k.I|
00000010  c0 95 91 eb 52 e0 34 5c  47 d7 20 35 43 7d 73 eb  |....R.4\G. 5C}s.|
00000020  71 55 41 e9 2a 1b a6 3f  65 d5 97 69 f7 88 5d 2c  |qUA.*..?e..i..],|
00000030  d6 50 c3 64 2b fb 96 95  6e 45 f2 f5 8d f8 87 98  |.P.d+...nE......|
}
},
Sequence: (uint32) 4294967293
}),
(*wire.TxIn)(0xc003992360)({
PreviousOutPoint: (wire.OutPoint) fbb02dfcecf7c5ca7d2afe60d5b35b884151a58cf21dace1e63aab3217853ed1:0,
SignatureScript: ([]uint8) {
},
Witness: (wire.TxWitness) (len=1 cap=1) {
([]uint8) (len=64 cap=64) {
00000000  4b ed 3e 24 fe b2 0e 12  b5 ab 8b a9 73 a2 33 36  |K.>$........s.36|
00000010  b2 43 a2 de 55 a8 11 b1  21 77 a6 58 e6 20 db 1f  |.C..U...!w.X. ..|
00000020  be fa 27 a4 b0 15 0e af  29 bc fd b3 8c 94 ce 0a  |..'.....).......|
00000030  70 c5 c0 d6 21 f9 11 f2  8c 65 cd ac 47 15 1b 14  |p...!....e..G...|
}
},
Sequence: (uint32) 4294967293
})
},
TxOut: ([]*wire.TxOut) (len=1 cap=1) {
(*wire.TxOut)(0xc0013e8b80)({
Value: (int64) 407085,
PkScript: ([]uint8) (len=22 cap=22) {
00000000  00 14 43 29 c6 53 f3 8c  b9 ed 83 28 6c 7e cb 12  |..C).S.....(l~..|
00000010  cf 73 45 ff 58 36                                 |.sE.X6|
}
})
},
LockTime: (uint32) 0
})

2024-05-21 12:10:16.520 [INF] LNWL: Removed invalid transaction: 0200000000010a915d30287266972840d7b3ba00b1af444ea683a484b644913531ad208d8654120000000000fdffffffe9ded1efcf160e41aa84a5ee402f5321232eee6e9c59b0f96c57118fa3548e4e0000000000fdffffffb13ffc08e90b800ab7057473f1362a67b190bf2439326490ffd49685b9ae5f570000000000fdffffff82ca7f5724240e5754e4455a96b66aed90e4440096ac4f2dfee6fc1818db5f680000000000fdffffff0d8ee783398ce0871f39467e7e6806c83400de384d7d54780057f111f1ece7680000000000fdffffffc4fe01cba10eeda610c190a3e17b70400cc15cf16f8e07d91d3d9729378e136d0000000000fdffffffb542b8c7d32f39ecb2b6a73efc618d58629dd932cd0d3337b553fec87f45839e0000000000fdffffff2e395e76526c4cf8c101658e7ba27aa717d1aa460e80c91aaaa44e34d548c2a40000000000fdffffffc54a29eac355b5a6927bec5775e9cb66a944b8fc02e1444d080e61efa1d292a50000000000fdffffffd13e851732ab3ae6e1ac1df28ca55141885bb3d560fe2a7dcac5f7ecfc2db0fb0000000000fdffffff012d360600000000001600144329c653f38cb9ed83286c7ecb12cf7345ff58360140a3fbb2d94403509bab3ccd88b507c9e6b2bf642d46f57ff9cb826ff07bbb4f63b1fdcdd528330c875aea0dd0cdb74d93e52227bddaab151f54d73b509bb222e801400fd141fe8e7ac219ec209562376f0ad45300c4cd18b80664315c4896bb68305f12e1ae957c2e133cb2e38720800587eab676d64661bd64f4017c9053fc531a9f01404867773427b2a0e2f3930da9441a6b672adc04a3e52bda4743a9b4b55b6dc108b5217e3ed9dd63e730a965d3d44f76eaaf2bd7b826bcacff03d7bf449f9c34b801406a90cbeaba6a5755e6e945fbc016d2004a6af123f193f2b4e43db9b57f17a85d66ff45d25949120448a00ecbcb7352b575c79b0897c503510d1aef19890805c101405edf1acf051de4125b635a62c295c872e925a1c76485d99c308159cb640055dc99da6fb5d4b76b3d7a1edf375612fd7ca1dad00b654bcd8877f0cceaf330a9c00140293ed177602921222133340a74f69e5f2d1d6b36128a98ba2a10da300985c24ee0d0c90a70f75d1cac93b3c483a8cca37559744e34b9eb88b4ceca65af483cd2014020f14e7dacee8d3e59058ca6fcfe9e08b254997dc95b3820c9d033b93cf0a471893d285ade9b7cb6b2c9a786e319f27dbff19cbd1cbf3d3748a5a3a335607b81014064589913577236209cf6cac0936e7330d33f7ce332b7f1dc04c340cc15e05c8e6fb018a164854abbb7ec75993f1d7b8ff06181b031ef3cb371bd3111e76878560140168a554639542aeb226199cf2c6b1249c09591eb52e0345c47d72035437d73eb715541e92a1ba63f65d59769f7885d2cd650c3642bfb96956e45f2f58df8879801404bed3e24feb20e12b5ab8ba973a23336b243a2de55a811b12177a658e620db1fbefa27a4b0150eaf29bcfdb38c94ce0a70c5c0d621f911f28c65cdac47151b1400000000

This transaction is 61f8f4b41196b01a3acb3eee16a81f890540d3b624ed2b0efa730520947f272f.

The same happened on lnd-main too when it restarted about 30 minutes prior to lnd-routing, but I won't list the details about that issue here. I'll provide whatever you need upon request.

Before we discovered this we upgraded both nodes to 0.17.5 on May 23.

I'm hesitant to restart with --reset-wallet-transactions because I don't know the consequences. The wallet is very old and I'm not sure how long the rescanning would take and what limitations apply on the node while doing it.

Metadata

Metadata

Assignees

Labels

P2should be fixed if one has timebugUnintended code behaviour

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions