3

64 비트 데비안 레니를 실행하는 VPS가 있고, 몇 가지 레일즈 3 앱을 배포하고 있습니다. 레이크 대부분의 경우 성공적으로을 완료하는 것 같다 ... 비록레이크가 성공적 일 때도 레이크는 항상 segfaults 및 코어 덤프가됩니다.

나는 로컬 아무 문제가 없지만, 때마다 레이크 명령 행 (또는 카피 스트라 노) 세그먼테이션 폴트 (segfault) 레이크에서 실행되며, 코어 덤프!

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 ??() 

답변

1

나는 코어 덤프에서 의미있는 정보를 얻는 방법 확실 해요 ...

당신이 를 시도 표준 코어 덤프에서 정보를 얻는 방법은 무엇입니까?

gdb /path/to/executable /path/to/core 
(gdb) where 
+0

gdb를 올바르게 실행하려면 다음 명령을 사용하십시오. 'sudo gdb /usr/local/rvm/rubies/ruby-1.9.2-p290/bin/ruby core.5654' 'vm.c : 696의 # 0 rb_vm_get_sourceline (cfp = ) 'rb_bug에 '# 1 0x00002ba7e901697c (FMT 0x1e4d0540 = \ "026 036 \")에서 error.c : 246' '# 2가 SIGSEGV 0x00002ba7e90c8b8c SIG (= <값 밖에 최적화> 정보 = CTX는 =) signal.c에서 <값 밖으로 최적화>, <값 밖에 최적화> ' '# 4에 0x00002aaab7d3531d 613' '# 3 <호출 신호 처리기>?() from/lib/libselinux.so.1' '# 5 0x00002aaab7d2857f in ??() from/lib/libselinux.so.1' '# 6 0x0000000000000000 in ??()' –

+0

(댓글에 코드 블록을 가져 오는 방법을 모르겠다.) 이 정보로 무엇을 할 수 있습니까? libselinux.so.1 어딘가에서 에러가 발생했다는 것을 나타내는 것 외에는 아무런 의미가없는 것 같지 않습니까? –

+0

질문을 편집하고 스택 추적을 추가했습니다. 예, 문제는 SELinux의 버그이며, 루비와 관련이 거의없는 것처럼 보입니다. libselinux.so.1에 대한 디버그 기호가 들어있는 libselinux-dbg (또는 일부 패키지)를 설치하면 추가 단서가 생길 수 있습니다. –

관련 문제