lightning-kmp icon indicating copy to clipboard operation
lightning-kmp copied to clipboard

Purge `PleaseOpenChannel` upon disconnection

Open pm47 opened this issue 1 year ago • 0 comments

If a disconnection happens right after having sent PleaseOpenChannel, swap-in utxos will not be unlocked. It's a different issue from #564, with similar effects.

We may be able to clean up the channelRequests table here, but I'm not sure about side effects:

https://github.com/ACINQ/lightning-kmp/blob/1409cc1ed1ce499e01ba42b759f79b63de24a263/src/commonMain/kotlin/fr/acinq/lightning/io/Peer.kt#L1147-L1161

Logs:

2023-12-13 12:31:43.084  7946-7946  f.a.l.i.Peer            fr.acinq.phoenix.testnet             I   - swap-in wallet: requesting channel using 1 utxos with balance=200000 sat
                                                                                                        remoteNodeId: 03933884aaf1d6b108397e5efe5c86bcf2d8ca8d2f700eda99db9214fc2712b134
2023-12-13 12:31:43.085  7946-7946  f.a.l.i.Peer            fr.acinq.phoenix.testnet             I   - sending please_open_channel with 1 utxos (amount = 200000 sat)
                                                                                                        remoteNodeId: 03933884aaf1d6b108397e5efe5c86bcf2d8ca8d2f700eda99db9214fc2712b134
                                                                                                        connectionId: 1702465030475
2023-12-13 12:31:43.087  7946-7946  f.a.l.i.Peer            fr.acinq.phoenix.testnet             I   - sending PleaseOpenChannel(chainHash=43497fd7f826957108f4a30fd9cec3aeba79972084e90ead01ea330900000000, requestId=a3e7dd3176d000dfc80ce658735a988b4a0caf38088b00e5c326f6494a6ed1b7, localFundingAmount=200000 sat, localInputsCount=1, localInputsWeight=392, tlvs=TlvStream(records=[GrandParents(outpoints=[d9b771ae775b7b4a8546f809596ee09106e95ac38a39097c60b9d7285f15e032:1])], unknown=[]))
                                                                                                        remoteNodeId: 03933884aaf1d6b108397e5efe5c86bcf2d8ca8d2f700eda99db9214fc2712b134
                                                                                                        connectionId: 1702465030475
2023-12-13 12:31:43.087  7946-7946  f.a.p.m.PeerManager     fr.acinq.phoenix.testnet             D   - collecting node_event=Requested
2023-12-13 12:31:43.093  7946-7946  f.a.p.t.Navigation      fr.acinq.phoenix.testnet             D   - init app view composition
2023-12-13 12:31:43.123  7946-7995  EGL_emulation           fr.acinq.phoenix.testnet             D  app_time_stats: avg=533347.44ms min=1.71ms max=2132772.25ms count=4
2023-12-13 12:31:56.125  7946-7946  f.a.l.b.e....trumClient fr.acinq.phoenix.testnet             W   - electrum connection error: fr.acinq.lightning.io.TcpSocket$IOException$ConnectionClosed: Connection closed
                                                                                                    	at fr.acinq.lightning.io.JvmTcpSocket.receiveAvailable(JvmTcpSocket.kt:72)
                                                                                                    	at fr.acinq.lightning.io.JvmTcpSocket$receiveAvailable$1.invokeSuspend(Unknown Source:16)
                                                                                                    	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
                                                                                                    	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108)
                                                                                                    	at android.os.Handler.handleCallback(Handler.java:942)
                                                                                                    	at android.os.Handler.dispatchMessage(Handler.java:99)
                                                                                                    	at android.os.Looper.loopOnce(Looper.java:201)
                                                                                                    	at android.os.Looper.loop(Looper.java:288)
                                                                                                    	at android.app.ActivityThread.main(ActivityThread.java:7872)
                                                                                                    	at java.lang.reflect.Method.invoke(Native Method)
                                                                                                    	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
                                                                                                    	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936)
2023-12-13 12:31:56.173  7946-7946  f.a.p.m.Ap...ionsDaemon fr.acinq.phoenix.testnet             I   - next Electrum connection attempt #0 in 100ms
2023-12-13 12:31:56.333  7946-7946  f.a.p.m.Ap...ionsDaemon fr.acinq.phoenix.testnet             I   - calling ElectrumClient.connect to server=ServerAddress(host=testnet.qtornado.com, port=51002, tls=PINNED_PUBLIC_KEY(pubKey=MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAwkLgqNkkTbwpV3gMdgDA...}) with handshake_timeout=4s
2023-12-13 12:31:56.400  7946-7946  f.a.l.b.e....trumClient fr.acinq.phoenix.testnet             I   - attempting connection to electrumx instance [host=testnet.qtornado.com, port=51002, tls=PINNED_PUBLIC_KEY(pubKey=MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAwkLgqNkkTbwpV3gMdgDA...}]
2023-12-13 12:31:56.442  7946-7946  f.a.l.i.Peer            fr.acinq.phoenix.testnet             W   - TCP receive: Connection closed
                                                                                                        remoteNodeId: 03933884aaf1d6b108397e5efe5c86bcf2d8ca8d2f700eda99db9214fc2712b134
                                                                                                        connectionId: 1702465030475
2023-12-13 12:31:56.462  7946-7946  f.a.l.i.Peer            fr.acinq.phoenix.testnet             W   - closing TCP socket: Connection closed
                                                                                                        remoteNodeId: 03933884aaf1d6b108397e5efe5c86bcf2d8ca8d2f700eda99db9214fc2712b134
                                                                                                        connectionId: 1702465030475
2023-12-13 12:31:56.513  7946-7946  f.a.l.i.Peer            fr.acinq.phoenix.testnet             I   - connection state changed: CLOSED
                                                                                                        remoteNodeId: 03933884aaf1d6b108397e5efe5c86bcf2d8ca8d2f700eda99db9214fc2712b134

pm47 avatar Dec 13 '23 12:12 pm47