3
我有一个运行64位Debian Lenny的VPS,而且我正在部署几个Rails 3应用程序。即使在成功时Rake也总是出现segfaults和核心转储
我在本地没有问题,但是每当Rake从命令行(或capistrano)运行rake段错误和核心转储...即使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
编辑:核心转储分析得出:
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 ??()
像这样的命令来运行gdb的权利? 'sudo gdb /usr/local/rvm/rubies/ruby-1.9.2-p290/bin/ruby core.5654' '#0 rb_vm_get_sourceline(cfp =)vm.c:696 ' '#1 0x00002ba7e901697c在rb_bug(FMT = 0x1e4d0540 “\ 026 \ 036”)在error.c:246' '#2 0x00002ba7e90c8b8c在SIGSEGV(SIG = <值优化了>,信息= <值优化了>,CTX =)在signal.c <值优化了>:613' '#3 <信号称为处理器>' '#4 0x00002aaab7d3531d在?? ()from/lib/libselinux.so.1' '#5 0x00002aaab7d2857f in ?? ()from/lib/libselinux.so.1' '#6 0x0000000000000000 in ?? ()' –
(对不起,不知道如何获得评论中的代码块) 虽然你可以用这些信息做什么?它似乎没有说任何有意义的东西,除了指出错误发生在libselinux.so.1的某处? –
我编辑了问题并添加了堆栈跟踪。是的,这似乎是SELinux中的一个错误,并且与ruby没有多大关系。安装包含libselinux.so.1的调试符号的libselinux-dbg(或某些此类)软件包可能会提供更多线索。 –