Bug #7590

parallel test-all で test_settracefunc が cfp consistency error

Added by Masaya Tarui over 2 years ago. Updated over 2 years ago.

[ruby-dev:46766]
Status:Closed
Priority:Normal
Assignee:Koichi Sasada
ruby -v:ruby 2.0.0dev (2012-12-19 trunk 38464) [x86_64-linux] Backport:

Description

[Bug #7589]はr38464でなおったんですが今度は別のエラーが出るようになりました。
$ while (make TESTS='-qv -j1 ruby/test_settracefunc.rb' test-all >&t.log); do echo 1; done

[BUG] vm_call_cfunc - cfp consistency error
ruby 2.0.0dev (2012-12-19 trunk 38464) [x86_64-linux]

-- Control frame information -----------------------------------------------
c:0009 p:---- s:0050 e:000049 CFUNC :map
c:0008 p:0092 s:0047 e:000046 METHOD /home/tarui/svn/ruby/lib/minitest/unit.rb:912
c:0007 p:0109 s:0039 e:0009c8 METHOD /home/tarui/svn/ruby/lib/test/unit/parallel.rb:48
c:0006 p:0011 s:0024 e:000023 BLOCK /home/tarui/svn/ruby/lib/test/unit/parallel.rb:23 [FINISH]
c:0005 p:---- s:0021 e:000020 CFUNC :map
c:0004 p:0008 s:0018 e:000017 METHOD /home/tarui/svn/ruby/lib/test/unit/parallel.rb:22
c:0003 p:0276 s:0013 e:000012 METHOD /home/tarui/svn/ruby/lib/test/unit/parallel.rb:120
c:0002 p:0095 s:0004 e:001ff8 EVAL /home/tarui/svn/ruby/lib/test/unit/parallel.rb:181 [FINISH]
c:0001 p:0000 s:0002 e:0017d8 TOP [FINISH]

/home/tarui/svn/ruby/lib/test/unit/parallel.rb:181:in <main>'
/home/tarui/svn/ruby/lib/test/unit/parallel.rb:120:in
run'
/home/tarui/svn/ruby/lib/test/unit/parallel.rb:22:in _run_suites'
/home/tarui/svn/ruby/lib/test/unit/parallel.rb:22:in
map'
/home/tarui/svn/ruby/lib/test/unit/parallel.rb:23:in block in _run_suites'
/home/tarui/svn/ruby/lib/test/unit/parallel.rb:48:in
run_suite'
/home/tarui/svn/ruby/lib/minitest/unit.rb:912:in `_run
suite'
/home/tarui/svn/ruby/lib/minitest/unit.rb:912:in `map'

-- C level backtrace information -------------------------------------------
/home/tarui/svn/ruby/lib/minitest/unit.rb:912: [BUG] Segmentation fault
ruby 2.0.0dev (2012-12-19 trunk 38464) [x86_64-linux]

-- Control frame information -----------------------------------------------
c:0009 p:---- s:0050 e:000049 CFUNC :map
c:0008 p:0092 s:0047 e:000046 METHOD /home/tarui/svn/ruby/lib/minitest/unit.rb:912
c:0007 p:0109 s:0039 e:0009c8 METHOD /home/tarui/svn/ruby/lib/test/unit/parallel.rb:48
c:0006 p:0011 s:0024 e:000023 BLOCK /home/tarui/svn/ruby/lib/test/unit/parallel.rb:23 [FINISH]
c:0005 p:---- s:0021 e:000020 CFUNC :map
c:0004 p:0008 s:0018 e:000017 METHOD /home/tarui/svn/ruby/lib/test/unit/parallel.rb:22
c:0003 p:0276 s:0013 e:000012 METHOD /home/tarui/svn/ruby/lib/test/unit/parallel.rb:120
c:0002 p:0095 s:0004 e:001ff8 EVAL /home/tarui/svn/ruby/lib/test/unit/parallel.rb:181 [FINISH]
c:0001 p:0000 s:0002 e:0017d8 TOP [FINISH]

/home/tarui/svn/ruby/lib/test/unit/parallel.rb:181:in <main>'
/home/tarui/svn/ruby/lib/test/unit/parallel.rb:120:in
run'
/home/tarui/svn/ruby/lib/test/unit/parallel.rb:22:in _run_suites'
/home/tarui/svn/ruby/lib/test/unit/parallel.rb:22:in
map'
/home/tarui/svn/ruby/lib/test/unit/parallel.rb:23:in block in _run_suites'
/home/tarui/svn/ruby/lib/test/unit/parallel.rb:48:in
run_suite'
/home/tarui/svn/ruby/lib/minitest/unit.rb:912:in `_run
suite'
/home/tarui/svn/ruby/lib/minitest/unit.rb:912:in `map'

-- C level backtrace information -------------------------------------------

Some worker was crashed. It seems ruby interpreter's bug
or, a bug of test/unit/parallel.rb. try again without -j
option.


Related issues

Related to Ruby trunk - Bug #7589: parallel test-all で test_settracefunc が SEGV Closed 12/19/2012

History

#1 Updated by Motohiro KOSAKI over 2 years ago

うちのx86_64 linuxだと以下のように vm_call_cfunc - cfp consistency error でrb_bugして、その延長でsegv.
ところで、一般論としてcfp consistency errorが起きてる時に ruby level backtraceが採取できる可能性はないんじゃないですかね。

#0 0x00007f0bedb7fec3 in fill_lines (num_traces=23,
traces=0x7f0bede50060, syms=0x7f0bee141eb0, check_debuglink=1,
current_line=0x7f0bee1427a0, lines=0x7f0bee1427a0)
at ../addr2line.c:513
#1 0x00007f0bedb80219 in rb_dump_backtrace_with_lines (num_traces=23,
trace=0x7f0bede50060, syms=0x7f0bee141eb0) at ../addr2line.c:605
#2 0x00007f0bedb6b97f in rb_vm_bugreport () at ../vm_dump.c:648
#3 0x00007f0beda11f79 in report_bug (
file=0x7f0bee203fe0 "/home/kosaki/ruby/git/lib/minitest/unit.rb",
line=912, fmt=0x7f0bedba37ff "Segmentation fault",
args=0x7f0bee068880) at ../error.c:306
#4 0x00007f0beda120b7 in rb_bug (fmt=0x7f0bedba37ff "Segmentation fault")
at ../error.c:325
#5 0x00007f0bedae3c39 in sigsegv (sig=11, info=0x7f0bee068af0,
ctx=0x7f0bee0689c0) at ../signal.c:649
#6
#7 0x00007f0bedb7fec3 in fill_lines (num_traces=16,
traces=0x7f0bede50060, syms=0x7f0bee66ab00, check_debuglink=1,
current_line=0x7f0bee66b150, lines=0x7f0bee66b150)
at ../addr2line.c:513
#8 0x00007f0bedb80219 in rb_dump_backtrace_with_lines (num_traces=16,
trace=0x7f0bede50060, syms=0x7f0bee66ab00) at ../addr2line.c:605
#9 0x00007f0bedb6b97f in rb_vm_bugreport () at ../vm_dump.c:648
#10 0x00007f0beda11f79 in report_bug (
file=0x7f0bee203fe0 "/home/kosaki/ruby/git/lib/minitest/unit.rb",
line=912, fmt=0x7f0bedba9aa8 "vm_call_cfunc - cfp consistency error",
args=0x7fff16fcf500) at ../error.c:306
#11 0x00007f0beda120b7 in rb_bug (
fmt=0x7f0bedba9aa8 "vm_call_cfunc - cfp consistency error")
at ../error.c:325
#12 0x00007f0bedb53530 in vm_call_cfunc_with_frame (th=0x7f0bedffe5b0,
reg_cfp=0x7f0bed99eeb0, ci=0x7f0bee17b750) at ../vm_insnhelper.c:1422
#13 0x00007f0bedb537cc in vm_call_cfunc (th=0x7f0bedffe5b0,
reg_cfp=0x7f0bed99eeb0, ci=0x7f0bee17b750) at ../vm_insnhelper.c:1509
#14 0x00007f0bedb545b6 in vm_call_method (th=0x7f0bedffe5b0,
cfp=0x7f0bed99eeb0, ci=0x7f0bee17b750) at ../vm_insnhelper.c:1683
#15 0x00007f0bedb54d71 in vm_call_general (th=0x7f0bedffe5b0,
reg_cfp=0x7f0bed99eeb0, ci=0x7f0bee17b750) at ../vm_insnhelper.c:1832
#16 0x00007f0bedb58951 in vm_exec_core (th=0x7f0bedffe5b0, initial=0)
at ../insns.def:996
#17 0x00007f0bedb67785 in vm_exec (th=0x7f0bedffe5b0) at ../vm.c:1169
#18 0x00007f0bedb6879b in rb_iseq_eval_main (iseqval=139689214591600)
at ../vm.c:1417
#19 0x00007f0beda178c8 in ruby_exec_internal (n=0x7f0bee03c270)
at ../eval.c:250
#20 0x00007f0beda179db in ruby_exec_node (n=0x7f0bee03c270)
at ../eval.c:315
#21 0x00007f0beda179ae in ruby_run_node (n=0x7f0bee03c270)
at ../eval.c:307
#22 0x00007f0bed9d8ef9 in main (argc=6, argv=0x7fff16fd0898)
at ../main.c:36

#2 Updated by Motohiro KOSAKI over 2 years ago

  • Category set to core
  • Status changed from Open to Assigned
  • Assignee set to Koichi Sasada
  • Target version set to 2.0.0

CFPほげほげは全部強引にささださんに振っちゃう

#3 Updated by Koichi Sasada over 2 years ago

(2012/12/19 20:30), kosaki (Motohiro KOSAKI) wrote:

ところで、一般論としてcfp consistency errorが起きてる時に ruby level backtraceが採取できる可能性はないんじゃないですかね。

CFP consistency error は,期待している cfp とずれている,ということなの
で,だいたいあってる,という状態が取れます.スタックの破壊ではないので,
表示されている部分は,だいたい信じていいと思います.

うーん,しかしなんで -j で起きるんだろう.

--
// SASADA Koichi at atdot dot net

#4 Updated by Yui NARUSE over 2 years ago

  • Status changed from Assigned to Closed

Fixed at r38524

Also available in: Atom PDF