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

Track dropped trade protocol messages #1174

Closed
cbeams opened this issue Jan 10, 2018 · 24 comments
Closed

Track dropped trade protocol messages #1174

cbeams opened this issue Jan 10, 2018 · 24 comments
Assignees

Comments

@cbeams
Copy link
Member

cbeams commented Jan 10, 2018

Per details in the description of #1172, this issue exists for tracking arbitration cases where we believe that trade protocol messages have been dropped due to P2P network stability / reliability issues.

The classic example here is that a buyer and seller are engaged in a trade, the buyer completes their payment to the seller per protocol, and clicks "Payment Started" in Bisq, but the seller's Bisq client never transitions to the state where the seller is "Waiting for payment to arrive", and the seller can therefore never click "Payment Received", even after they have in fact received the payment.

We hypothesize that the reason this happens is that message sent when the buyer clicks "Payment Started" never propagates to the seller's Bisq client. This could happen because the seller was offline when the buyer clicked the button, causing the buyer's Bisq client to send the message to a seed node to be stored as a mailbox message, and then when the seller comes back online, they for some reason do not retrieve that message, e.g. because of a (temporary) P2P network partitioning in which they cannot communicate with the seed node where the message was stored.

Again, the above is just a hypothesis. The most important thing right now is to track how frequently these issues are occurring. We believe they are still rather infrequent, but more prevalent recently than they have been in the past.

To make note of an incident, add a comment to this issue as soon as possible, mention the Trade ID, who the arbitrator is, and explain what happened as best as you can. Do not include identifying details about the trade or traders involved.

Note: this issue and the instructions are primarily intended for @bisq-network/arbitrators, but individual traders are also welcome to follow these instructions if they believe they're experiencing a dropped message problem during arbitration.

In any case, by keeping close track of how often this problem is happening, we'll be able to know when we've solved it.

This issue is closely related to, but distinct from #1173. Please do not confuse the two.

@cbeams
Copy link
Member Author

cbeams commented Jan 10, 2018

One of my arbitration cases today (ID VEJPOYIW) seems to have been due to this problem. The buyer confirmed with me that they did in fact click "Payment Started" after sending their payment to the seller, but the seller was never able to click "Payment Received" on their side, because the option to click it never became available. It seems that the "Payment Started" message simply never made it to the seller's client. I've asked the buyer to send me their bisq.log file for analysis.

@Yummis
Copy link

Yummis commented Jan 10, 2018

Oh yeah I'm the buyer you are talking about,
I'm using Bisq for more than 1 year already without any problems, but lately I've had this problem continually, I would really like this issue to be solved because in my eyes Bisq is the best way (in theory) to trade unanimously and securely between the Crypto world, I would really like to see at least 1000 users and I wanna see Bisq as the number one place where people go to trade Crypto, and for this to happen it has to be as simple and smooth as possible, and we need to do some marketing and advertising as well
Thanks for this amazing project

@cbeams
Copy link
Member Author

cbeams commented Jan 16, 2018

Trade QUC0H just showed up in my queue. The buyer sent payment per protocol, and the seller received it, but even though the buyer clicked "payment started" on their side when they made the payment, the seller was never able to click "payment received" on their side. This would appear to be because the payment started message never made it across the network from buyer to seller. I've asked the buyer to attach their bisq.log here for analysis.

@cbeams
Copy link
Member Author

cbeams commented Jan 17, 2018

Note that the buyer in QUC0H did upload their log, and it's available in my client. Can upload / analyze later.

@cbeams
Copy link
Member Author

cbeams commented Jan 21, 2018

Trade ID CSeRT may have been an incidence of this problem.

@cbeams
Copy link
Member Author

cbeams commented Jan 24, 2018

Trade ID o5BEc appears to be an incidence as well. Buyer clicked 'Payment Started' but it never took, making it impossible to progress through the trade process. We handled it in arbitration.

@cbeams
Copy link
Member Author

cbeams commented Jan 29, 2018

Trade ID XiRFr may have been an incidence. Buyer was unable to click 'Payment Started' button and got the popup following "failed trade" popup on restarting https://imgur.com/a/cDzhR. We handled the payout successfully in arbitration.

@cbeams
Copy link
Member Author

cbeams commented Jan 31, 2018

Trade ID zBfXyrw seems to have had this problem. Buyer clicked 'Payment Started', and saw it take effect on their side, but the seller was never able to click 'Payment Received' on theirs.

The buyer explained that trade ID 73886 may be having the same problem as well, but I am unable to confirm, as that trade has not yet shown up in my queue, nor do I know if I'm the assigned arbitrator. @keo-bisq, heads-up.

@jenechka1
Copy link

Both of these are mine, in addition to this one: AqPQiHw, which appears to be having the same issue, because the funds should have been received by the seller yesterday morning at the latest, but they still haven't confirmed. Is it just my luck or could I be doing something wrong?

Also, may I suggest adding a button / function to check if the message(s) generated by the client have been consumed by the intended recipient, and to resubmit the messages that have not.

@jenechka1
Copy link

Now that I can't get into the app (see #60 (comment) I won't even know if any of these other trades went to arbitration and what, if anything, is going on with them.

@jenechka1
Copy link

Can someone please look at the three transactions mentioned above: AqPQiHw, 73886, zBfXyrw, and let me know if they have completed or if there are outstanding issues? I have paid for these, but since I can't get into the app, there is no way for me to see if they have come to a successful completion or if there is anything that requires my attention.

@cbeams
Copy link
Member Author

cbeams commented Feb 3, 2018

@jenechka1, I was your arbitrator for trade zBfXyrw, and it was closed out with you receiving the BTC trading amount, as per the chat we had about it in-app. The other trades have not shown up in my queue, meaning they either have not yet gone to arbitration, or that @keo-bisq has them in their arbitration queue.

@jenechka1
Copy link

You are right about the zBfXyrw. How would I go about finding out about the other two? Can I contact @keo-bisq directly?

@cbeams
Copy link
Member Author

cbeams commented Feb 4, 2018

@jenechka1, @keo-bisq will receive that message directly, because you @mentioned them.

@cbeams
Copy link
Member Author

cbeams commented Feb 4, 2018

Trade ID LG3n2u6 just exhibited dropped trade protocol message behavior. From the seller's opening arbitration message to me:

Hello! I have received full fiat payment for this trade, however, I am unable to confirm payment in Bisq because on my end it shows that the buyer still had not marked the payment as sent. I have been messaging with the buyer, and he sent me a screenshot indicating that he did indeed mark the payment as sent in Bisq. This is a technical glitch that I have run into a few times. Please mark as paid and close this transaction. Thanks!

@cbeams
Copy link
Member Author

cbeams commented Feb 10, 2018

Trade 14929177 appears to have dropped its payment sent message (or perhaps not dropped but otherwise was just unable to send), and then had the strange behavior of giving the user this error message.

image

In actual fact, the trade was not a failed trade at all. Bitcoin transactions related to the trade were all in good order, and the trade made it into arbitration, and has now been closed out from arbitration. I'm not sure what triggered the "failed trade" message, but the user explained that they saw this pop up many times, and that restarting Bisq made no difference.

In any case, this is the first time we (or I anyway) have seen this particular behavior. It's an isolated incident, but it's documented here, so we'll keep an eye out for it.

Here is the affected traders log, truncated such that the messages related to the failed "payment sent" message are at the top:

i.e. you'll see these messages right at the top:

Feb-09 01:02:46.818 [JavaFX Application Thread] WARN  i.b.c.t.p.TradeProtocol: cleanupTradableOnFault tradeState=BUYER_SEND_FAILED_FIAT_PAYMENT_INITIATED_MSG 
Feb-09 01:02:46.818 [JavaFX Application Thread] WARN  i.b.g.m.MainViewModel: You have locked up funds from a failed trade.

truncated_bisq_log.log

@jenechka1
Copy link

jenechka1 commented Feb 10, 2018 via email

@jenechka1
Copy link

jenechka1 commented Feb 10, 2018 via email

@cbeams
Copy link
Member Author

cbeams commented Feb 12, 2018

Trade vNYbeG appears to have dropped its 'payment started' message; I got screenshot proof that the buyer clicked the button, but the seller said they were unable to click 'payment received'.

NOTE: I accidentally added the above as a comment at #1173 (comment) several days ago. I meant to add it here, on this issue, not on that one.

@cbeams
Copy link
Member Author

cbeams commented Mar 9, 2018

Trade 74918309 appears to have dropped its 'payment started' message, causing the trade to go to arbitration unnecessarily.

@cbeams
Copy link
Member Author

cbeams commented Mar 11, 2018

Trade KEHENQM may have dropped the "Payment Started" message on the buyer's side, such that the seller never knew to check for payment.

@cbeams
Copy link
Member Author

cbeams commented Mar 17, 2018

Trade SQ48RPHA looks like another incident. Seller received payment, but was unable to indicate that they did because the buyer never clicked "Payment started", or did click it but the message never made it through. I'm confirming with the buyer what happened now.

I wonder if there's any reason we couldn't allow seller's to click "Payment Received" even if the buyer never clicked "Payment Started". I see no game theoretical reason not to allow this. Not sure whether there might be a technical / protocol reason that would prohibit it or make it unduly difficult.

@cbeams
Copy link
Member Author

cbeams commented Mar 17, 2018

Confirmed: trade SQ48RPHA was a dropped protocol message on the buyer's side. They did click the "Payment started" button, but it never reached the buyer's client.

@cbeams
Copy link
Member Author

cbeams commented Mar 17, 2018

Issue moved to bisq-network/support #84 via ZenHub

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

4 participants