diff --git a/docs/release-notes/release-notes-0.18.0.md b/docs/release-notes/release-notes-0.18.0.md index 098fbd585..f672c550f 100644 --- a/docs/release-notes/release-notes-0.18.0.md +++ b/docs/release-notes/release-notes-0.18.0.md @@ -49,7 +49,7 @@ same exclusive group](https://github.com/lightningnetwork/lnd/pull/7800). When using neutrino as a backend unconfirmed transactions have to be 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 remove unconfirmed transaction manually. @@ -61,6 +61,9 @@ 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 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 sessions](https://github.com/lightningnetwork/lnd/pull/8233) diff --git a/watchtower/wtclient/queue.go b/watchtower/wtclient/queue.go index 9e680c12a..8581ea888 100644 --- a/watchtower/wtclient/queue.go +++ b/watchtower/wtclient/queue.go @@ -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 { select { case q.memQueue <- task: