[bisq-network/bisq] Startup problem on slow/degraded networks (the "3/4" problem) (#2547)

agb19 notifications at github.com
Sun Mar 17 00:47:02 UTC 2019

Possibly related to: #2474, #2327. Uses #2278.

This is a slightly edited re-post of the issue reported at:

On slow/congested networks, Bisq never progresses past step 3/4 of the startup sequence, due to a timeout occurring in the initial handshake to seed nodes.

One of the compulsory steps in the Bisq client startup sequence is a special handshake with a seed node, consisting in an exchange of large data packets in the 1.5 MB size range (PreliminaryGetDataRequest in the debug log). On slow networks, specifically when the network *output* channel is degraded, this handshake fails systematically with a timeout error, resulting in an inability to start up (the "3/4" problem). 

Bisq versions tested: 0.8.1, 0.9.3, 0.9.4, 0.9.5
Test platform: Tails 3.10, 3.11, 3.12 (Debian 9); Compatibility workarounds from #2278 

To reproduce the bug, use a working Bisq installation and limit the network output bandwidth to a small value (100 kbps in my example) using the Linux TBF qdisc. 

**Steps to reproduce**:
- start with a correctly installed and tested operational copy of Bisq
- close the application
- in a terminal, execute (replace eth0 with name of default route interface):
`sudo tc qdisc add dev eth0 root tbf rate 100kbit burst 1540 latency 50ms`
- start the application as usual

**Expected result**:
Bisq should complete the startup sequence and operate (with some lag due to network bandwidth limitation). 

**Actual result**:
Bisq never progresses past step 3/4 of startup sequence, resulting in complete no-op.

**Log fragment**
Feb-26 12:16:38.651 [JavaFX Application Thread] INFO b.n.p.p.g.RequestDataHandler: We send a PreliminaryGetDataRequest to peer fl3mmribyxgrv63c.onion:8000.
Feb-26 12:17:38.555 [JavaFX Application Thread] WARN b.n.p.p.g.RequestDataManager: We have started already a requestDataHandshake to peer. nodeAddress=fl3mmribyxgrv63c.onion:8000
Feb-26 12:17:38.652 [JavaFX Application Thread] INFO b.n.p.p.g.RequestDataHandler: A timeout occurred at sending getDataRequest:PreliminaryGetDataRequest(supportedCapabilities=[0, 1, 2, 7]) on nodeAddress:fl3mmribyxgrv63c.onion:8000
Feb-26 12:18:44.754 [InputHandler-fl3mmribyxgrv63c.onion:8000] INFO b.n.p.n.Connection$SharedModel: Shut down caused by exception java.net.SocketTimeoutException: Read timed out on connection=Connection{peerAddress=Optional[fl3mmribyxgrv63c.onion:8000], peerType=SEED_NODE, uid=‘1c112047-32de-4631-93e9-5c6a175a30ee’}
Feb-26 12:18:44.774 [JavaFX Application Thread] INFO b.n.p.p.PeerManager: onDisconnect called: nodeAddress=Optional[fl3mmribyxgrv63c.onion:8000], closeConnectionReason=CloseConnectionReason{sendCloseMessage=false, isIntended=false} SOCKET_TIMEOUT
Feb-26 12:18:44.822 [JavaFX Application Thread] INFO b.n.p.p.p.PeerExchangeManager: onDisconnect closeConnectionReason=CloseConnectionReason{sendCloseMessage=false, isIntended=false} SOCKET_TIMEOUT, nodeAddressOpt=Optional[fl3mmribyxgrv63c.onion:8000]

You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.bisq.network/pipermail/bisq-github/attachments/20190316/2a9d112c/attachment.html>

More information about the bisq-github mailing list