-
Notifications
You must be signed in to change notification settings - Fork 2.4k
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
Seg fault running job under Sidekiq #164
Comments
That's a crash in Ruby's Enumerable#zip method. I realize that Sidekiq may "seem" at fault but Sidekiq is pure Ruby: it can't cause a segfault. The only thing that can do that are native extensions or a bug in Ruby itself. |
Ugh. Yeah, it seems to shift locations. Running again yields this location:
I'm not even sure where to begin to debug this and/or report it to the appropriate project. |
As a followuop: as much as I love Sidekiq this was a show-stopper for me and I ended up having to migrate to Resque. The same job runs fine under Resque. :( I'd love to file this report in the appropriate project but its not clear where the issue is. |
It's quite possible that you have a native gem that does not behave well in a multithreaded system. I like to think that Ruby is getting better about this but there are still popular gems out there that are definitely not thread-safe. Could you share the set of gems you use which have native extensions? |
Of course. Here are all my gems with native extensions:
Thanks again. Sidekiq is awesome. You're doing great work. |
Anyhow, thanks for the list. |
@mperham im also having segmentation faults now. Mostly coming from pg_ext gem |
ok, im back on sidekiq 2.0.3 and celluloid 0.11.0 gem 'sidekiq', '2.0.3' no more segfaults, I think it was celluloid 0.11.1 causing it. |
@fred I would register a bug with pg_ext and ruby. Celluloid and Sidekiq are pure ruby - they should not be able to crash a VM. |
yes, I just submitted to pg-ruby, thanks. https://bitbucket.org/ged/ruby-pg/issue/135/segmentation-fault-on-postgresql_adapterrb |
Environment
Problem: running my job under Sidekiq results in a seg fault that appears to be outside of sidekiq. Running the same job multiple times results in a new seg fault but in a different place, so the fault location is not consistent.
Running the job inline in the console (just calling
perform
directly) results in the job running successfully. So this seg fault only happens under sidekiq.I realize that this seg fault appears to happen outside of sidekiq, but it does at least appear to be related to Celluloid.
Full gist with stacktrace here: https://gist.github.com/2513242
Sorry if this is not an issue with sidekiq and lies elsewhere. But like I said the code runs fine when not invoked via Sidekiq.
The text was updated successfully, but these errors were encountered: