Merge pull request #8377 from ellemouton/towerTestFlakeFix

wtclient: ensure correct disk mode for overflow queue
This commit is contained in:
Oliver Gugger authored and GitHub committed 2024-01-23 09:47:27 -06:00
commit d7796b464e
2 files changed
+11 -1

No files matched your search

+4 -1
View File
@@ -49,7 +49,7 @@
same exclusive group](https://github.com/lightningnetwork/lnd/pull/7800). same exclusive group](https://github.com/lightningnetwork/lnd/pull/7800).
When using neutrino as a backend unconfirmed transactions have to be When using neutrino as a backend unconfirmed transactions have to be
removed from the wallet when a conflicting tx is confirmed. For other backends removed from the wallet when a conflicting tx is confirmed. For other backends
these unconfirmed transactions are already removed. In addition a new these unconfirmed transactions are already removed. In addition, a new
walletrpc endpoint `RemoveTransaction` is introduced which let one easily walletrpc endpoint `RemoveTransaction` is introduced which let one easily
remove unconfirmed transaction manually. remove unconfirmed transaction manually.
@@ -61,6 +61,9 @@
this buffer which can be used to increase the commitment fee and it also this buffer which can be used to increase the commitment fee and it also
protects against the case where htlcs are added asynchronously resulting in protects against the case where htlcs are added asynchronously resulting in
stuck channels. stuck channels.
* [Fixed](https://github.com/lightningnetwork/lnd/pull/8377) a watchtower client
test flake that prevented new tasks from overflowing to disk.
* [Properly handle un-acked updates for exhausted watchtower * [Properly handle un-acked updates for exhausted watchtower
sessions](https://github.com/lightningnetwork/lnd/pull/8233) sessions](https://github.com/lightningnetwork/lnd/pull/8233)
+7
View File
@@ -476,6 +476,13 @@ func (q *DiskOverflowQueue[T]) feedMemQueue() {
} }
} }
// If we did manage to fetch a task from disk, we make
// sure to set the toDisk mode to true since we may
// block indefinitely while trying to push the tasks to
// the memQueue in which case we want the drainInputList
// goroutine to write any new tasks to disk.
q.toDisk.Store(true)
for i, task := range tasks { for i, task := range tasks {
select { select {
case q.memQueue <- task: case q.memQueue <- task: