-
Notifications
You must be signed in to change notification settings - Fork 25
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
Fix partial header receive by WatsonTCP. Fixes #75 #110
Conversation
Hmm... WatsonTcp Version=6.0.6 passes all unit tests. Looks like it's due to these changes:
Not sure how it can happen given that UPD. OK, looks like it means that the DataReceiver task is awaiting on something |
By the way, WatsonTcp 6.0.8 freezes as well on before-async versions. Any ideas? :) |
Looks like commit fedfd5d introduced a deadlock 🤔 WatsonTcpClient.Disconnect waits for the DataReceive task to stop running. I'm going to try reverting that commit. @sancheolz could you please remember what issue it should have fixed? |
…aReceive task is waiting for the OnMessage event handler to complete).
@yallie If remote object implements remote method for proxy service like this: public void CloseSession()
{
RemotingSession.Current.Close();
} RPC for CloseSession() may be executed without exceptions, with Disconnect event after. Or sometimes this RPC will interrupted with exception. It happens when processing of "session_closed" occurs before "rpc_result". So we need to synchronized processing of messages in OnMessage for predictable behavior. Test should try to cause this unpredictability, but I don't know how to do it yet. |
Ok, now I see! Will look into this case.
It was failing pretty consistently on Github actions, so I couldn't make tests pass even once, see screenshot. |
@sancheolz, please have a look at #113
|
Looks good to me. Thanks. |
No description provided.