Closed TrezorHannes closed 6 months ago
We both have upgraded to the latest version, and the issue remains.
What PeerSwap commit are you running? The canceled swap seems to be a result of a stuck channel which PeerSwap checks for now, hence the probe which failed. But it seems the swap receiver hasn't canceled the swap for some reason.
Just built via the recent commit a few hours ago to doublecheck whether it resolves it
git branch -v
* master fb7d5f7 [skip ci]docs: transaction labels for on-chain transactions (#284)
I believe @jvxis runs the latest as well.
We do have usual LN routing activity running, whilst it's probably good context to know that the peering between our both nodes isn't 100%, since he's in SouthAmerica and my server's based in Germany. So we do have a connection drop every 10-12 hours for a few minutes
Same here: * master fb7d5f7 [skip ci]docs: transaction labels for on-chain transactions (#284)
What LND versions are you running?
What LND versions are you running?
Here is: LND 0.17.4-beta
What LND versions are you running?
admin@debian-nuc:~$ uname -a
Linux debian-nuc 6.1.0-16-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.67-1 (2023-12-12) x86_64 GNU/Linux
admin@debian-nuc:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 12 (bookworm)
Release: 12
Codename: bookworm
admin@debian-nuc:~$ lnd --version
lnd version 0.17.3-beta commit=v0.17.3-beta
It appears that the probe payment failed due to TemporaryChannelFailure
.
In that case, a cancel message is also sent to the other peer, but it seems to have failed for some reason.
May need to modify peerswap to resolve. It may be necessary to continue sending messages until the cancel message of the swap peer is successfully sent, or to add a "recover" process.
May need to modify peerswap to resolve. It may be necessary to continue sending messages until the cancel message of the swap peer is successfully sent, or to add a "recover" process.
Thanks for your response. How would we process your suggestion to send messages? And is the recover process implemented already, or is that a consideration to be added into the feature-set?
Both message sending and recovery cannot be manually operated. I assume that the peerswap codebase will need to be modified.
I think deleting the target swap as a workaround is an option.
The swaps are managed in BoltDB and I believe they exist as swaps
in peerswap datadir.
You can use tool such as boltbrowser to delete the target swap, and then you can run the next swap.
@YusukeShimizu It has worked! Thanks. Now I can do peerswaps again.
Excellent. Thank you @YusukeShimizu for helping us resolving it. Let us know if you think you need anything for the message sending approach at a future point. Will close this as resolved.
It appears that the probe payment failed due to
TemporaryChannelFailure
.
This was truly a temporary LND channel problem where the channel worked fine later? Should we perhaps try a few times instead of giving up immediately?
In that case, a cancel message is also sent to the other peer, but it seems to have failed for some reason.
The cancel message has no ACK? Should we add one and periodically repeat until we hear the ACK?
This was truly a temporary LND channel problem where the channel worked fine later? Should we perhaps try a few times instead of giving up immediately?
I think TemporaryChannelFailure
would be considered a temporary problem that is expected to be recovered.
I think there is a way to retry with Exponential Backoff, etc.
I created draft PR : https://github.com/ElementsProject/peerswap/pull/294
The cancel message has no ACK? Should we add one and periodically repeat until we hear the ACK?
With SendCancelAction
, the implementation does not guarantee sending the custom message because the state is set to State_SwapCanceled
after the process is complete, regardless of whether the message is sent or not.
It is possible to repeat the process until success, but I think that adding a recovery process on the receiving side to guarantee result consistency would be the solution.
I created draft PR : https://github.com/ElementsProject/peerswap/pull/293
Hello everyone,
Problem statement: we have had a failed ps-swapout attempt from my side which failed, and has a state-cancelled on my end. No neither of us can do another swap with each other.
My side has
"state": "State_SwapCanceled",
On the peer side from @jvxis, peerswapd still awaits my payment
and hence every single swap-in from their side, or swap-out from my side is blocked: My side
Any advice or idea how we can resolve the situation, eg canceling the pending payment?