You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Dec 7, 2018. It is now read-only.
We've been experimenting with using the HTTP gem with Celluloid::IO to make API calls to SendGrid. In testing this out with different pool sizes of HttpFetcher (taken from https://github.com/tarcieri/http/blob/master/examples/parallel_requests_with_celluloid.rb) and making a few hundred requests, getting future.value would hang occasionally, requiring a force kill of the program. We debugged this down to be the DNSResolver hanging, and were able to reproduce it with a simple example. The repro case is very sporadic, though, so it may take a few dozen times to run this code to get it to hang but we've been able to do it with this code.
Using MRI Ruby 2.1.2, Celluloid 0.15.2, Celluloid-IO 0.15.0
classFooincludeCelluloid::IOdeftestCelluloid::IO::DNSResolver.new.resolve("api.sendgrid.com")endendf=Foo.pool(:size=>400)futures=[]1000.timesdo |i|
futures << f.future.testend# Occasionally this will hang on one of the iterations.1000.timesdo |i|
puts(i)futures[i].valueend
The text was updated successfully, but these errors were encountered:
We were being affected by sidekiq/sidekiq#1929 and couldn't get our Sidekiq workers to shut down / restart. I didn't notice the other 2 that Mike talks about, but we caught that first one in staging the day we updated so we reverted quickly.
Hi,
We've been experimenting with using the
HTTP
gem withCelluloid::IO
to make API calls to SendGrid. In testing this out with different pool sizes ofHttpFetcher
(taken from https://github.com/tarcieri/http/blob/master/examples/parallel_requests_with_celluloid.rb) and making a few hundred requests, gettingfuture.value
would hang occasionally, requiring a force kill of the program. We debugged this down to be theDNSResolver
hanging, and were able to reproduce it with a simple example. The repro case is very sporadic, though, so it may take a few dozen times to run this code to get it to hang but we've been able to do it with this code.Using MRI Ruby 2.1.2, Celluloid 0.15.2, Celluloid-IO 0.15.0
The text was updated successfully, but these errors were encountered: