You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The log here is incomplete. Can you paste the whole log here?
My hunch is that there is a race condition between quitting the old graph syncer on peer disconnect and starting a new graph syncer. This is because, currently we are exiting the graph syncer by the following procedures.
tentacle tells network actor peer has disconnected.
Network actor tells graph syncer peer has disconnected.
Graph syncer confirms that peer disconnected, and sends a syncing status back to the network actor.
Network actor stops the graph syncer.
Step 2, 3, 4 can be running concurrently with a new peer connection. So we may start a new graph syncer with the same name to the older one, thus a panic.
In fact step 1 (tentacle notifies network actor a peer has disconnected) may run concurrently with the event that tentacle notifies the same peer is connecting. This is because tentacle does not guarantee anything about the order of different session.
I think we need to
Make the name of graph syncer unique even for the same peer.
Shorten the process of stopping graph syncer. We can just stop the graph syncer actor on peer disconnected.
When node 1 is connecting to node 2, there is a chance that node 1 will panic when node 2 stop.
The text was updated successfully, but these errors were encountered: