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

interrupted system call when process is signaled #117

Closed
erickt opened this issue May 26, 2012 · 3 comments
Closed

interrupted system call when process is signaled #117

erickt opened this issue May 26, 2012 · 3 comments

Comments

@erickt
Copy link

erickt commented May 26, 2012

I'm using curb inside of a unicorn app, and I found that whenever I use unicorn's signal-based restarting mechanism, I inevitably get a lot of these errors:

RuntimeError - select(): Interrupted system call:
 /shared/bundle/ruby/1.9.1/gems/curb-0.7.17/lib/curl/easy.rb:39:in `perform'
 /shared/bundle/ruby/1.9.1/gems/curb-0.7.17/lib/curl/easy.rb:39:in `perform'
 /shared/bundle/ruby/1.9.1/gems/tire-0.4.2/lib/tire/http/clients/curb.rb:23:in `http_post'
 /shared/bundle/ruby/1.9.1/gems/tire-0.4.2/lib/tire/http/clients/curb.rb:23:in `get'
 /shared/bundle/ruby/1.9.1/gems/tire-0.4.2/lib/tire/search/multiget.rb:45:in `perform'
 /shared/bundle/ruby/1.9.1/gems/tire-0.4.2/lib/tire/search/multiget.rb:23:in `results'
...

I've reduced this bug to somewhere between v0.7.16 and v0.7.17. I'm guessing it's commit 1c8ec56, which added a curb_select call that uses select. I think the proper way to handle this that when curb_select is interrupted, it should adjust the tv and retry the select. See Ruby's thread.c for one way of handling this.

@stayhero
Copy link

Having the same probs with running curb from a delayed job.

@dcerri
Copy link

dcerri commented Dec 8, 2012

i get the same in

vendor/bundle/ruby/1.9.1/gems/rpm_contrib-2.1.6/lib/rpm_contrib/instrumentation/curb.rb:44:in `perform'
vendor/bundle/ruby/1.9.1/gems/rpm_contrib-2.1.6/lib/rpm_contrib/instrumentation/curb.rb:44:in `block in perform_with_newrelic_trace'
vendor/bundle/ruby/1.9.1/gems/newrelic_rpm-3.5.2.17/lib/new_relic/agent/method_tracer.rb:242:in `trace_execution_scoped'
vendor/bundle/ruby/1.9.1/gems/rpm_contrib-2.1.6/lib/rpm_contrib/instrumentation/curb.rb:43:in `perform_with_newrelic_trace'
vendor/bundle/ruby/1.9.1/gems/curb-0.8.1/lib/curl/easy.rb:56:in `perform'

@taf2
Copy link
Owner

taf2 commented Mar 15, 2022

c.nosignal = true # maybe fixes this issue?

@taf2 taf2 closed this as completed Mar 15, 2022
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

No branches or pull requests

4 participants