Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unreliable network delivery causing trading issues. #5526

Closed
ghost opened this issue May 25, 2021 · 8 comments
Closed

Unreliable network delivery causing trading issues. #5526

ghost opened this issue May 25, 2021 · 8 comments

Comments

@ghost
Copy link

ghost commented May 25, 2021

Opening this to give the problem more visibility and hoping that more eyes can lead to a fix.

This is an attempt to describe a long-standing issue with messaging in Bisq. Rare, but frequent enough to be an almost daily occurrence in the network. Some messages supposedly arrive, but don't get seen by the recipient Bisq application layer. Causing such problems as failed trades and miscommunication between users.

[Update - just noticed #1172 from 2018 describes the same problem. Seems that many people investigated but it was never resolved. Looks like a problem with TOR.]


Bisq uses TCP for networking which is a "reliable" protocol. However, what this actually means is:

TCP is reliable in the sense that messages sent will either be received as they were sent (same order, same contents); assuming that the built-in checksum does not happen to fail, which it may, since it is only 16 bits OR not be received at all

The small percentage of messages not received at all are causing these issues.


Example 1:

  • Mediator sends a chat message to Trader, status=Message arrival confirmed by receiver. All good.
    image
  • Trader sends a chat message to Mediator, status=Message arrived at receiver.
    image
  • Looks good from the sender's side, however, Mediator never actually received the message.

Example 2:

  • Alice clicks "Payment started". (status=Message arrived at receiver)
  • No ack message is received back so Alice is prompted again to click "Payment started".
  • And again and again until they ask in support why the button is not working.
  • Bob never receives the Payment started message.

This used to be known as Seller cannot confirm (#4748) since they did not receive Payment started, however since #5401 the burden is shifted to the buyer who is told to try again. Its still causing a problem but at least there's an option to retry now, whereas before the only option was mediation. What can be learned from this is that retrying the send message, and even rebooting the sender does not help. Perhaps rebooting the recipent side would help, but no one has come forth to report that as successful yet.


@leo816 has experienced it multiple times and reported both examples above.

Seller-cannot-confirm is a high cause of mediation tickets, e.g.

[...] biggest issue we faced was the bug that had to do with the seller not being able to confirm that he had received the payment, even though the buyer had clicked on "payment made" correctly.

bisq-network/roles#83 (comment) from 18 months ago


Example 3:

Trader opens dispute but the OpenNewDisputeMessage is not received by mediator, leading to trades which cannot be mediated. This has been reported a number of times, do we have logs for this @huey735?


Example 4:

Payment info is not delivered to the open trade. Reported by @leo816, waiting for logs to confirm but presumably could be the same issue of unreliable network delivery.

@ripcurlx
Copy link
Contributor

Do we have logs from the party that didn't send the ACK message? To see why it is received, but not processed properly to send the corresponding ACK message.

@ghost
Copy link
Author

ghost commented May 25, 2021

I concluded that the messages don't get seen at the recipient Bisq application layer. But lets double-check the logs again to make sure.

@ghost
Copy link
Author

ghost commented Jun 2, 2021

Confirmed with logs from @leo816 that in these cases, messages are not seen by the receiver. That is why no ACK is sent back. Creating a PR for Chat messages to expect an ACK and indicate the problem if not received.

@stale
Copy link

stale bot commented Apr 16, 2022

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale bot added the was:dropped label Apr 16, 2022
@ghost
Copy link
Author

ghost commented Apr 16, 2022

Not stale, please re-activate.

@stale stale bot removed the was:dropped label Apr 16, 2022
@ghost ghost mentioned this issue Jul 26, 2023
@ghost
Copy link
Author

ghost commented Jul 26, 2023

Looks like a problem with TOR.

Seems this was an easy but incorrect conclusion on my behalf.
Now I'm convinced the issue is within the Bisq message handling code. #6785

@github-actions
Copy link

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@github-actions
Copy link

This issue has been automatically closed because of inactivity. Feel free to reopen it if you think it is still relevant.

@github-actions github-actions bot closed this as not planned Won't fix, can't repro, duplicate, stale Oct 31, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants