Skip to content
This repository has been archived by the owner on Jun 17, 2024. It is now read-only.

Should I be worried about messages such as Cannot deliver class..., client not found for correlationId #80

Open
samidalouche opened this issue Mar 14, 2017 · 9 comments

Comments

@samidalouche
Copy link

Cannot deliver class eventstore.ReadStreamEventsCompleted, client not found for correlationId

What does this mean exactly?

Thanks

@t3hnar
Copy link
Contributor

t3hnar commented Mar 14, 2017

Most probably it means that operation triggered this action already expired and replied with OperationTimeoutException, Then response came in and got logged

@t3hnar
Copy link
Contributor

t3hnar commented Mar 14, 2017

Other possible variant that client which is actually ActorRef died for some reason.

@samidalouche
Copy link
Author

Thanks.

Is it possible that using the stream API, some events are simply skipped when these messages appear? Or all errors would be properly forwarded as stream errors?

@t3hnar
Copy link
Contributor

t3hnar commented Mar 14, 2017

afaik first error forwarded and stream gets closed

@samidalouche
Copy link
Author

Another question: Does the JVMClient built-in retry mechanism would retry on these errors? So, If I don't see any error on the stream, could it mean that JVMClient already retried the operation?

@t3hnar
Copy link
Contributor

t3hnar commented Mar 14, 2017

yep, there is RetryableOperation.scala which does the job

@samidalouche
Copy link
Author

Is there any config I can activate to know more about this specific problem?

Since I suspect that this issue might be related to some memory leaks I am seeing, I am trying to reproduce the problem in a sandbox, outside of my application logic, but of course, I can't seem to figure out how to trigger the same error messages. Even when I try to reproduce the same access patterns, I don't get the cannot deliver ReadStreamEventsCompleted messages.

So anything that could help me figure out the cause of these messages is welcome.

The part of the code that seems to trigger these messages basically reads a stream, and for each element of the stream, reads all the elements of the stream until that element. But of course, in isolation, I can't get those messages, so can't profile the memory usage to see if anything strange appears.

@samidalouche
Copy link
Author

So far, I have been able to reproduce the message using something along the lines of

readStream()
   .take(50) 

This doesn't seem to reproduce the memory leak I am looking for, but I am curious why take(N) would trigger such a message?

@t3hnar
Copy link
Contributor

t3hnar commented Mar 20, 2017

Could you please post a complete example to reproduce your issue ?

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants