Closed simonmorley closed 7 years ago
Thanks for the issue. Might be related to #691
blaalarrr not puma again :(
@simonmorley I have a branch that switches gcloud-ruby to use grpc 0.15.0. Can you set your rails app to reference this branch and let me know if this resolves the grpc_completion_queue_pluck
error?
https://github.com/blowmage/gcloud-ruby/tree/grpc-0.15
/cc @murgatroid99
I just forced 0.15 in another way. That one is just building. After that, I'll do the same with this yours.
I have a couple of my servers in production running 0.15 without issue. Not from your branch though, do you want me to test with that also?
No errors but latency having a party.
@murgatroid99 Any thoughts on the added latency?
@simonmorley How did you force 0.15.0? I don't know if my branch will be any different. Depends on what exactly you did.
As a reference, until 11pm, we were publishing the messages into rabbitmq. That was the only change.
I just installed via the gemfile ~> 0.15
gcloud (0.6.3)
beefcake (~> 1.0)
digest-crc (~> 0.4)
google-api-client (~> 0.8.3)
mime-types (~> 2.4)
zonefile (~> 1.04)
google-api-client (0.8.6)
activesupport (>= 3.2)
addressable (~> 2.3)
autoparse (~> 0.3)
extlib (~> 0.9)
faraday (~> 0.9)
googleauth (~> 0.3)
launchy (~> 2.4)
multi_json (~> 1.10)
retriable (~> 1.4)
signet (~> 0.6)
google-protobuf (3.0.0.alpha.5.0.5.1)
googleauth (0.5.1)
faraday (~> 0.9)
jwt (~> 1.4)
logging (~> 2.0)
memoist (~> 0.12)
multi_json (~> 1.11)
os (~> 0.9)
signet (~> 0.7)
grpc (0.15.0)
google-protobuf (~> 3.0.0.alpha.5.0.3)
googleauth (~> 0.5.1)
@simonmorley gcloud-ruby version 0.6.3 used the REST API for Pub/Sub, not the gRPC API. So the latency you see might be due to that. I'd try using my branch and see how that works for you.
It looks like grpc 0.15 doesn't have the issues that 0.14 had, which is super encouraging.
In the issue description you say:
We happen to have tried without the Ruby client but suffered from horrific latency.
I'm having trouble parsing that. Can you clarify that statement? What clients have you used? Are you using something other than the Google Cloud Pub/Sub service?
That might explain it. Let me rebuild.
And your comment about the REST API basically resolves my vagueness. We had tried using the google-api-client since we already had that. That's what first gave us high latencies. We swapped to the gcloud gem to test not realising the both used http.
That will also explain the photo I was just about to send:
Confused why there's a get and post in each request.
Confused why there's a get and post in each request.
Depends on what your code is doing! :)
Lol. Ok, you can have that. Should just be a publish, nothing else. Honest guvnor.
Your branch installed, things are looking normal. No crashes/
Woo! God to see latency drop!
I think that went pretty well on the whole, thank you for the help.
Just seen this though. Ooops. Will request a quota increase, although there's no way we're at the limit.
Gcloud::ResourceExhaustedError (8:Request throttled due to project QPS limit being reached.):
Actually, having re-read the docs. It's now clear that the following also retrieves a topic:
topic = pubsub.topic 'my-topic'
That'll be why there's a get request in there and probably why we're over limit.
I'll move into a global variable and use that way instead.
You can also use Gcloud::Pubsub::Project#publish
to avoid the lookup request.
Or you can create the topic object without the lookup call:
topic = pubsub.topic 'my-topic', skip_lookup: true
Thanks, this is great. Was surprised that was missing. Clearly reading the wrong docs.
Cheers for the help, things are looking rosy again.
Closing this issue. If this is still an issue for grpc 1.1.2 please open a new issue.
Seems to be identical to https://github.com/grpc/grpc/issues/6045.
Under high load, the publisher throws a GRPC::Core::OutOfTime error. We happen to have tried without the Ruby client but suffered from horrific latency.
We're using this in Rails 4.2 project with Ruby 2.3
Am just about to test with grpc 0.15.0