-
Notifications
You must be signed in to change notification settings - Fork 354
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
Load Testing randomly throws UnsupportedOperationException #717
Comments
Hello, @pckeyan! Thanks for opening the issue! So far, the given stacktrace is useless cuz it does not provide the cause of it and the source you have provided does not explain how you configure RSocket Server/Client. Regards, |
Hello @OlegDokuka, I am using RSocket 1.0.0-RC5. I have updated the question with Sample Client and Server Code along with a bash script to load test. Please let me know if you need any. Just fyi, I added below code to all my rsocket client connections, I am not seeing this issue. I ran few tests till 1 million.
But if I change the client call to server from
Regards |
All I can achieve is blocking calls, Can you please advise how I can do non-blocking to achieve high throughput? |
@pckeyan looking into your case |
@pckeyan was not able to reproduce the issue locally. Here is the project under the test - https://github.com/OlegDokuka/rsocket-issue-717. Feel free to share more insights. Also, a little bit on the LoadBalance RSocket behavior: Once you try to select an RSoceket for a call, there is a chance that the slowest rsocket will be closed and recreated again (see https://github.com/rsocket/rsocket-java/blob/develop/rsocket-load-balancer/src/main/java/io/rsocket/client/LoadBalancedRSocketMono.java#L108 and https://github.com/rsocket/rsocket-java/blob/develop/rsocket-load-balancer/src/main/java/io/rsocket/client/LoadBalancedRSocketMono.java#L252) in order to keep the latency stable, which means that there is another high chance that if there is a call being in process in that particular RSocket, then this call may end up with an error. So, in order to avoid that, I added retry logic, which ensures the call has happened |
@OlegDokuka Thanks and Appreciate your time. I configured my application like your sample. I use the TLS - two way SSL. If I make even the count to 2, it fails. It works only for one call. I am getting the below error. Please advise.
|
Oh yeah) That was not mentioned in the issue) @pckeyan, can you please share the SSL setup you have? Regards, |
@OlegDokuka My apologies, I think I found the problem, One of my connections is using a block() which I removed seems to be working. Let me test for large numbers and will update you. |
@OlegDokuka When I bump up to 5000 with or without SSL, I am getting the https://github.com/pckeyan/rsocket-model.git |
@pckeyan, Feel free to tune params using the following method https://github.com/rsocket/rsocket-java/blob/develop/rsocket-load-balancer/src/main/java/io/rsocket/client/LoadBalancedRSocketMono.java#L173 in order to avoid RSocket being closed under the high load |
@pckeyan Fill free to reopen it once you observe any related issues Regards, |
@OlegDokuka Can you please let me know what are the lower and upper bound values and how it is used for me to configure? I am not able to find any documentation except code level doc. Please advise for my scenario. |
@OlegDokuka After adding Two Way SSL to the sample you provided https://github.com/OlegDokuka/rsocket-issue-717. Calls failed in block(). I changed the client as below:
Now I get response back only if the |
@pckeyan let me check that quickly |
@OlegDokuka Seems like non-blocking calls is having the issue of establishing the SSL handshake. For my use case it is a blocker. Can we reopen this issue? |
I am performing a load test on a LoadBalancer with two server nodes. Randomly I am finding the below exception: Please let me know if I am performing anything wrong here.
Sample Client Code:
Server Code below:
I call the Client using GNU Parallel utility tool:
The text was updated successfully, but these errors were encountered: