Skip to content

Conversation

@bboreham
Copy link
Contributor

@bboreham bboreham commented Jan 28, 2018

Remove code that appears to set a timeout but actually does nothing, set a timeout on each call to Push() in the distributor, and set a timeout on entire rule-group evaluation in the ruler.

This is a plausible fix for #672, but see also #679

grpc.WithTimeout() is documented to only do anything if
grpc.WithBlock() also supplied, and we do not supply that. Even then,
it puts a timeout on the Dial() operation, which is not what we want.
Copy link
Contributor

@jml jml left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice, thanks. This will make the code easier to follow.

@tomwilkie
Copy link
Contributor

The Dial can block for a long time, and its a bad place to block. Can we use grpc.DialContext?

@bboreham
Copy link
Contributor Author

bboreham commented Feb 7, 2018

@tomwilkie I don't understand your point. This Dial is async. And the calls which will cause a real Dial are now under a timeout.

@tomwilkie
Copy link
Contributor

Has gRPC changed since we wrote this code? Its used to be the case that would block. IIRC that would happen when it couldn't resolve the targets.

@tomwilkie
Copy link
Contributor

@bboreham bboreham merged commit dac838b into master Feb 7, 2018
@awh awh deleted the ingester-timeouts branch February 19, 2018 10:17
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 this pull request may close these issues.

4 participants