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

Clients stop when receiving unmatched RPC response #17

Closed
tilsche opened this issue Feb 3, 2021 · 3 comments · Fixed by #26
Closed

Clients stop when receiving unmatched RPC response #17

tilsche opened this issue Feb 3, 2021 · 3 comments · Fixed by #26

Comments

@tilsche
Copy link
Contributor

tilsche commented Feb 3, 2021

If a client receive an RPC response to its former self, it will throw an RPCError and log "error in rpc: no function but also no response callback". That seems sensible, but apparantly this can happen and cause a restart loop.

@phijor
Copy link
Contributor

phijor commented Feb 6, 2021

Shouldn't we simply discard such a reply as invalid? Anyoneme, stupidly can issue invalid RPCs and clients really shouldn't crash because of that. Log a warning and proceed as normal.

@bmario
Copy link
Member

bmario commented Feb 8, 2021

Probably, the problem is that the manager has a backlog of unprocessed RPC messages. In the meantime, the client disconnects for some reason and reconnects under the same token later. Therefore, a new RPC queue with the same name is created. Once the manager processed the old RPC, the recipient is already gone, but there is a new one under the same name.

Maybe we should think about adding UUIDs to RPC queues or tokens like a session id.

@bmario
Copy link
Member

bmario commented Mar 23, 2021

One more data point for adding UUID's to RPC queues: metricq/metricq-python#25

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

Successfully merging a pull request may close this issue.

3 participants