Грабли всегда segfaults и дампы ядра, даже если успешно - PullRequest
3 голосов
/ 21 августа 2011

У меня VPS под управлением 64-битного Debian Lenny, и я развертываю пару приложений Rails 3.

У меня нет проблем локально, но всякий раз, когда Rake запускается из командной строки (или capistrano), происходит ошибка Rake segfaults и дампы ядра ... хотя Rake, похоже, в большинстве случаев успешно завершает

Я потратил несколько недель, пытаясь это исправить, пытался установить REE, 1.8.7, 1.9.2-p180 и 1.9.2-p290 ... Все они терпят неудачу.

Я не уверен, как получить какую-либо значимую информацию из дампов ядра ... и все мои поиски в Google были бесплодными.

Какие есть варианты, чтобы предотвратить это? И есть ли способ, чтобы дампы ядра не занимали все мое дисковое пространство?!

[BUG] Segmentation fault
ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-linux]

-- control frame ----------
---------------------------

-- C level backtrace information -------------------------------------------
/usr/local/rvm/rubies/ruby-1.9.2-p290/lib/libruby.so.1.9(rb_vm_bugreport+0x5f)[0x2afdf1ff2b7f]
/usr/local/rvm/rubies/ruby-1.9.2-p290/lib/libruby.so.1.9 [0x2afdf1ecf81c]
/usr/local/rvm/rubies/ruby-1.9.2-p290/lib/libruby.so.1.9(rb_bug+0xb3) [0x2afdf1ecf993]
/usr/local/rvm/rubies/ruby-1.9.2-p290/lib/libruby.so.1.9 [0x2afdf1f81b8c]
/lib/libpthread.so.0 [0x2afdf22aba80]
/lib/libselinux.so.1 [0x2aaab7d3531d]
/lib/libselinux.so.1 [0x2aaab7d2857f]

[NOTE]
You may have encountered a bug in the Ruby interpreter or extension libraries.
Bug reports are welcome.
For details: http://www.ruby-lang.org/bugreport.html

Aborted (core dumped)

Exiting via interrupt: 2

РЕДАКТИРОВАТЬ: Coredump анализ выходов:

sudo gdb /usr/local/rvm/rubies/ruby-1.9.2-p290/bin/ruby core.5654
#0 rb_vm_get_sourceline (cfp=<value optimized out>) at vm.c:696
#1 0x00002ba7e901697c in rb_bug (fmt=0x1e4d0540 "�\026�\036") at error.c:246
#2 0x00002ba7e90c8b8c in sigsegv (sig=<value optimized out>, info=<value optimized out>, ctx=<value optimized out>) at signal.c:613
#3 <signal handler called> #4 0x00002aaab7d3531d in ?? () from /lib/libselinux.so.1
#5 0x00002aaab7d2857f in ?? () from /lib/libselinux.so.1
#6 0x0000000000000000 in ?? ()

1 Ответ

1 голос
/ 22 августа 2011

Я не уверен, как получить какую-либо значимую информацию из дампов ядра ...

Вы пробовали стандартный способ получения информации из дампов ядра?

gdb /path/to/executable /path/to/core
(gdb) where
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...