Skip to content
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

Router: No matching caller for invocation #114

Closed
johannwagner opened this issue Jun 23, 2018 · 3 comments
Closed

Router: No matching caller for invocation #114

johannwagner opened this issue Jun 23, 2018 · 3 comments

Comments

@johannwagner
Copy link
Contributor

johannwagner commented Jun 23, 2018

Hey,

I just ran into a bug, where the invocation of a function does not work in the first time, but works fine afterwards.

Nexus logs: 2018/06/23 14:31:51 !!! No matching caller for invocation from YIELD: 16
Entire Logfile

I thought it is maybe an error, because the client dies, but the client seems fine. I use wampy.js as my client lib.

If you have additional questions, don't be afraid to ask.

Best Regards, Johann

@gammazero
Copy link
Owner

I want to fix any bug ASAP. Do you have a test to reproduce, or can you modify any of the existing test in aat/, maybe aat/rpc_test.go to show the problem?

@gammazero
Copy link
Owner

gammazero commented Jun 24, 2018

I think I see the problem: There are two CALL messages each submitted with the same Request ID (3 in the log). The first YIELD received deletes the mapping from Request ID to pending call:
https://github.com/gammazero/nexus/blob/master/router/dealer.go#L752-L753

The the second YIELD no longer has a mapping for Request ID 3. This look like a bug in the client, as the Request ID should be different for each request.
https://wamp-proto.org/static/rfc/draft-oberstet-hybi-crossbar-wamp.html#call-1

"Request is a random, ephemeral ID chosen by the Caller and used to correlate the Dealer's response with the request."

In your case the YIELD to the second CALL is received first, which is why it looks like the first CALL fails.

@johannwagner
Copy link
Contributor Author

Thanks a lot for the quick fix. Works like a charm!

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

No branches or pull requests

2 participants