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

flux_rpc_then() callbacks must consume message or infinite loop #216

Closed
garlick opened this issue Jun 5, 2015 · 2 comments
Closed

flux_rpc_then() callbacks must consume message or infinite loop #216

garlick opened this issue Jun 5, 2015 · 2 comments

Comments

@garlick
Copy link
Member

garlick commented Jun 5, 2015

In the new Flux RPC design, a continuation callback that never calls flux_rpc_get() will trigger an infinite loop. This may be asking for nasty bugs down the line. Other alternatives are to make the get call and pass the results to the callback, or to destroy unconsumed responses after each callback.

This needs another look before we finalize the public API.

@grondo
Copy link
Contributor

grondo commented Jun 5, 2015

If nothing else, perhaps some kind of watchdog you could enable to at least detect this condition and spit out a warning. (Embarrassing to say how many times I've had these bugs in poll() loop based software -- So though it is possible in all event loop architectures to hit this kind of bug, it would be pretty nice if we could at least provide a mechanism to detect it, i.e. something like kernel hung_task_timeout.)

@garlick
Copy link
Member Author

garlick commented Dec 28, 2016

This is no longer the case.

A continuation callback that doesn't call flux_rpc_get() simply misses that message.

@garlick garlick closed this as completed Dec 28, 2016
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