davissp14 / etcdv3-ruby

Etcd v3 Ruby Client
MIT License
52 stars 17 forks source link

Timeouts Specs break in gRPC versions 1.8.0+ #114

Closed davissp14 closed 5 years ago

davissp14 commented 6 years ago

Timeout related specs appear to break due to gRPC changes in v1.8.0.

Branch to reproduce: https://github.com/davissp14/etcdv3-ruby/tree/grpc-update

Travis Build reference: https://travis-ci.org/davissp14/etcdv3-ruby/jobs/374700857

cc:// @mgates

mgates commented 6 years ago

This is fixed by https://github.com/davissp14/etcdv3-ruby/pull/115

davissp14 commented 6 years ago

@mgates That fixes the specs, but I'm actually a bit more interested in the underlining regression within gRPC's deadline functionality.

I opened an issue with them today:
https://github.com/grpc/grpc/issues/15314

If this is just an edge case with 0 based deadlines, then i'd be happy to merge that guy.

mgates commented 6 years ago

Yeah, our theory was that when another connection was already open, the request got to etcd fast enough to be within the deadline window, and when it wasn't open, it look long enough to open the connection that the deadline had passed. That's just gut though, we didn't run it to ground.

graywolf-at-work commented 5 years ago

Seems to be fixed by using GRPC::Core::TimeConsts.from_relative_time instead for Time.now.to_f + X. See #122 ( for example: https://github.com/davissp14/etcdv3-ruby/pull/122/files#diff-7e89c206323ba5960be7eee8448c0a35L124 )

graywolf-at-work commented 5 years ago

This can be closed imho as it should be fixed now.