[ruby-trunk - Bug #7590][Open] parallel test-all で test settracefunc が cfp consistency error

Issue #7590 has been reported by tarui (Masaya T.).


Bug #7590: parallel test-all で test_settracefunc が cfp consistency error

Author: tarui (Masaya T.)
Status: Open
Priority: Normal
Assignee:
Category:
Target version:
ruby -v: ruby 2.0.0dev (2012-12-19 trunk 38464) [x86_64-linux]

[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.

Issue #7590 has been updated by kosaki (Motohiro KOSAKI).

Category set to core
Status changed from Open to Assigned
Assignee set to ko1 (Koichi Sasada)
Target version set to 2.0.0

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

Bug #7590: parallel test-all で test_settracefunc が cfp consistency error

Author: tarui (Masaya T.)
Status: Assigned
Priority: Normal
Assignee: ko1 (Koichi Sasada)
Category: core
Target version: 2.0.0
ruby -v: ruby 2.0.0dev (2012-12-19 trunk 38464) [x86_64-linux]

[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.

Issue #7590 has been updated by kosaki (Motohiro KOSAKI).

うちの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

Bug #7590: parallel test-all で test_settracefunc が cfp consistency error

Author: tarui (Masaya T.)
Status: Open
Priority: Normal
Assignee:
Category:
Target version:
ruby -v: ruby 2.0.0dev (2012-12-19 trunk 38464) [x86_64-linux]

[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.

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

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

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

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

Issue #7590 has been updated by naruse (Yui NARUSE).

Status changed from Assigned to Closed

Fixed at r38524-38527

Bug #7590: parallel test-all で test_settracefunc が cfp consistency error

Author: tarui (Masaya T.)
Status: Closed
Priority: Normal
Assignee: ko1 (Koichi Sasada)
Category: core
Target version: 2.0.0
ruby -v: ruby 2.0.0dev (2012-12-19 trunk 38464) [x86_64-linux]

[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.