-
Notifications
You must be signed in to change notification settings - Fork 117
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
RpcBuffer message timeouts #52
Comments
Have not had a chance to look at this in detail yet, but can you try with a bigger node count/buffer size? |
I did, and it's still the same. It's sort of random when it fails. |
@deviousasti were you able to resolve this? We're seeing a similar issue. |
Sorry Daniel, I tried several things, but eventually gave up. I switched to streamjsonrpc from the VS team, and it works fine. The RPC interface is similar enough. You can use named pipes instead of mmap. |
Thanks Asti, such a pity as this is an otherwise great implementation and I love the fact that it hardly has any dependencies. Unfortunately I wasn't able to track down the problem and we're going to move over to the MS RPC option you suggest. A huge thank you to @spazzarama for providing this library. It was enormously helpful to us as part of a large architectural change in our platform. |
@DanielChilcott @deviousasti sorry for the late reply. I wonder if this is caused by timing out waiting for slot in full buffer? Could perhaps have used infinite timeout to workaround? |
@DanielChilcott @deviousasti I think this is actually a performance related issue, if you leave the timeoutMs at the default (30s) they all succeed. |
Thank you for continued investigations.IIRC, I did try various values of timeout but messages were still missing. The situation might have changed now though.
|
Shall I close this issue? |
I might keep it open a little longer, the performance was not what I expected, and even without a 100ms delay there was some weirdness. |
Hello, thank you for this super-useful library! The very first time i send a burst of messages the buffer fills up quickly and starts to give timeout, if i sent like 500 messages i get the first ones then some of the others delayed (not related to the timeout value, they arrive at 1 second frequency). Without digging in the code, it "feels" like it is an initialization problem. UPDATE: it seems if I send a message first and wait "a little", then everything will be smooth after even if i send at high frequency. |
@mightypanda thanks for that information. That is an interesting behaviour, so clearly something is going on. |
I think this is probably related to ThreadPool exhaustion / starvation |
@deviousasti I know you found another solution, however I believe this has been fixed on the following branch: https://github.com/spazzarama/SharedMemory/tree/non-async-benchmarks Any chance you can retest? @mightypanda if you could also test that would be really helpful. |
This is the updated example - with no failures:
|
I have a very simple implementation using
RpcBuffer
in F#.But it keeps missing messages.
If I send messages between host and client in a loop, about a tenth of the time responses time-out.
I'm not sure exactly how to replicate the failures, they seem like heisenbugs.
This isn't an accurate repro, but it has the ratio of timeouts I'm seeing.
The text was updated successfully, but these errors were encountered: