Replies: 1 comment 3 replies
-
A possible explanation of this disconnection behavior is the following:
The PR mentioned earlier, would therefore actually keep the connection alive by reactivating it every 10 seconds. The problem is that it does not really solve the buffering problem from the server side. Having this keep alive system would add some unnecessary load on the infrastructure. Idea to exploreWe should limit the number of BTP messages currently processing between two chains at any point of time. So for example, if ICON <> PRA has limit of 10 BTP simultaneous messages between two specific BMC on the network, all extra attempt to send BTP messages should revert. Once one of the currently processing BTP messages has completed (both networks are in sync regarding the coin/token transfer status), a new BTP message request can be accepted. This of course has to be discussed and fine tuned, and we hope you guys can share some feedback. Thank you. |
Beta Was this translation helpful? Give feedback.
-
Hi everyone, I'm creating this discussion in relation to the following PR #61 by @canhlinh. Here is my understanding so far.
What is the issue?
When the relay spend to much time broadcasting transactions to the destination chain (_relay), the blocks monitoring websocket disconnects. This is maybe due to a buffer overflow in the websocket.
How did we come to this conclusion?
ICONDAO team provided this go test script.
In this script you can notice a
<-time.After(time.Millisecond * 300)
sleep between each received blocks.When running the script as is, after a couple of minutes (~15 minutes in my own test) the websocket connection is terminated unexpectedly. By removing the sleep code, the script runs for hours without any interruptions. Which is why we think it's a buffer overflow issue.
What are the possible fixes?
Feel free to share your thoughts about this issue and propose some workarounds. If you believe our root cause analysis is invalid, please let us know about yours.
Thank you.
Beta Was this translation helpful? Give feedback.
All reactions