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

Timeout mechanism doesn't work for command which is queued but not blocked upon #514

Closed
mattrjacobs opened this issue Jan 16, 2015 · 1 comment · Fixed by #579
Closed
Milestone

Comments

@mattrjacobs
Copy link
Contributor

Found this during investigation of #509. I will create an independent PR for this issue.

The gist of it is that a user may invoke HystrixCommand.queue() to produce a Future. If the user calls .get() on the Future, then the timeout mechanism works properly. If the user does other work on the calling thread and lets the command complete naturally, the timeout never fires.

From a cursory code review, that seems possible, as all of the timeout setup occurs on the path in which .get() or ```.get(int, TimeUnit) is invoked

@mattrjacobs
Copy link
Contributor Author

I've got a local branch that removes the blocking timeout and performBlockingGetWithTimeout path. It uses the HystrixTimer nonblocking timeout approach for all timeouts. This addresses the issue above, but I still need to performance test it.

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.

1 participant