[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: Segfault in ruby tests

From: Hyrum K. Wright <hyrum_wright_at_mail.utexas.edu>
Date: Mon, 09 Feb 2009 07:39:23 -0600

Hyrum K. Wright wrote:
> Joe, Kou,
> The ruby bindings tests are segfaulting on the buildbot. I can reproduce locally:
>
> [[[
> hwright_at_orac:~/dev/svn-trunk$ make check-swig-rb
> cd /home/hwright/dev/svn-trunk/subversion/bindings/swig/ruby; \
> /usr/bin/ruby -I /home/hwright/dev/svn-trunk/subversion/bindings/swig/ruby \
> /home/hwright/dev/svn-trunk/subversion/bindings/swig/ruby/test/run-test.rb \
> --verbose=normal
> Loaded suite .
> Started
> .................................................................................................................../home/hwright/dev/svn-trunk/subversion/bindings/swig/ruby/svn/util.rb:86:
> [BUG] Segmentation fault
> ruby 1.8.7 (2008-08-11 patchlevel 72) [x86_64-linux]
>
> /bin/bash: line 3: 17077 Aborted /usr/bin/ruby -I
> /home/hwright/dev/svn-trunk/subversion/bindings/swig/ruby
> /home/hwright/dev/svn-trunk/subversion/bindings/swig/ruby/test/run-test.rb
> --verbose=normal
> make: *** [check-swig-rb] Error 134
> hwright_at_orac:~/dev/svn-trunk$
> ]]]
>
> This is, of course, a blocker for branching 1.6.x.

I finally managed to get a debug version of the ruby libraries installed, which
yielded this backtrace:

test_apply(SvnDeltaTest):
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7f3b836296e0 (LWP 20657)]
0x00007f3b825536b0 in strlen () from /lib/libc.so.6
(gdb) backtrace#0 0x00007f3b825536b0 in strlen () from /lib/libc.so.6#1
0x00007f3b831c21ce in rb_str_new2 (
     ptr=0x7b81f0e0 <Address 0x7b81f0e0 out of bounds>) at string.c:115
#2 0x00007f3b7d5c0c2e in _wrap_svn_txdelta_send_stream (
     argc=<value optimized out>, argv=<value optimized out>,
     self=<value optimized out>) at subversion/bindings/swig/ruby/svn_delta.c:3650
#3 0x00007f3b8315ec40 in rb_call0 (klass=139893488074720, recv=139893488078240,
     id=47169, oid=47169, argc=3, argv=0x7fff8b621da0, body=0x7f3b7da9b0b8,
     flags=<value optimized out>) at eval.c:5904
#4 0x00007f3b8315edfa in rb_call (klass=139893488074720, recv=139893488078240,
     mid=47169, argc=3, argv=0x7fff8b621da0, scope=0, self=139893488060480)
     at eval.c:6151
#5 0x00007f3b83158cf0 in rb_eval (self=139893488060480, n=<value optimized out>)
     at eval.c:3492
#6 0x00007f3b83169914 in block_pass (self=139893488060480, node=0x7f3b7da7a390)
     at eval.c:9138
#7 0x00007f3b8315a830 in rb_eval (self=139893488060480, n=<value optimized out>)
     at eval.c:3208
#8 0x00007f3b8315eb43 in rb_call0 (klass=139893488043440, recv=139893488060480,
     id=45985, oid=45985, argc=3, argv=0x7fff8b623bc0, body=0x7f3b7da7a4a8,
     flags=<value optimized out>) at eval.c:6055
#9 0x00007f3b8315edfa in rb_call (klass=139893488043440, recv=139893488060480,
     mid=45985, argc=3, argv=0x7fff8b623bc0, scope=0, self=139893476150240)
     at eval.c:6151
#10 0x00007f3b83158cf0 in rb_eval (self=139893476150240, n=<value optimized out>)
     at eval.c:3492
#11 0x00007f3b8315eb43 in rb_call0 (klass=139893488077400, recv=139893476150240,
     id=4225, oid=4225, argc=0, argv=0x7fff8b624b30, body=0x7f3b7dab4b80,
     flags=<value optimized out>) at eval.c:6055
#12 0x00007f3b8315edfa in rb_call (klass=139893488077400, recv=139893476150240,
     mid=4225, argc=1, argv=0x7fff8b624b30, scope=0, self=139893475698120)
     at eval.c:6151
#13 0x00007f3b83158cf0 in rb_eval (self=139893475698120, n=<value optimized out>)
     at eval.c:3492
#14 0x00007f3b8315eb43 in rb_call0 (klass=139893475820160, recv=139893475698120,
     id=63729, oid=63729, argc=0, argv=0x7fff8b626138, body=0x7f3b7cf0bef0,
     flags=<value optimized out>) at eval.c:6055
#15 0x00007f3b8315edfa in rb_call (klass=139893475820160, recv=139893475698120,
     mid=63729, argc=0, argv=0x7fff8b626138, scope=1, self=6) at eval.c:6151
#16 0x00007f3b8315f649 in rb_f_send (argc=1, argv=0x7fff8b626130,
     recv=139893475698120) at eval.c:6199
#17 0x00007f3b8315ec40 in rb_call0 (klass=139893584070960, recv=139893475698120,
     id=4073, oid=4073, argc=1, argv=0x7fff8b626130, body=0x7f3b83624358,
     flags=<value optimized out>) at eval.c:5904
#18 0x00007f3b8315edfa in rb_call (klass=139893584070960, recv=139893475698120,
     mid=4073, argc=1, argv=0x7fff8b626130, scope=1, self=139893475698120)
     at eval.c:6151
#19 0x00007f3b83158e22 in rb_eval (self=139893475698120, n=<value optimized out>)
     at eval.c:3507
#20 0x00007f3b8315be1e in rb_eval (self=139893475698120, n=<value optimized out>)
     at eval.c:3308
#21 0x00007f3b8315bfce in rb_eval (self=139893475698120, n=<value optimized out>)
     at eval.c:3356
#22 0x00007f3b8315eb43 in rb_call0 (klass=139893583708840, recv=139893475698120,
     id=17489, oid=5393, argc=0, argv=0x7fff8b6283a0, body=0x7f3b835fba20,
     flags=<value optimized out>) at eval.c:6055
#23 0x00007f3b8315edfa in rb_call (klass=139893583708840, recv=139893475698120,
     mid=17489, argc=1, argv=0x7fff8b6283a0, scope=1, self=139893475698120)
---Type <return> to continue, or q <return> to quit---
     at eval.c:6151
#24 0x00007f3b83158e22 in rb_eval (self=139893475698120, n=<value optimized out>)
     at eval.c:3507
#25 0x00007f3b83169914 in block_pass (self=139893475698120, node=0x7f3b822be3b8)
     at eval.c:9138
#26 0x00007f3b8315a830 in rb_eval (self=139893475698120, n=<value optimized out>)
     at eval.c:3208
#27 0x00007f3b8315bfce in rb_eval (self=139893475698120, n=<value optimized out>)
     at eval.c:3356
#28 0x00007f3b8315eb43 in rb_call0 (klass=139893583708840, recv=139893475698120,
     id=5393, oid=5393, argc=0, argv=0x7fff8b62ab30, body=0x7f3b822be480,
     flags=<value optimized out>) at eval.c:6055
#29 0x00007f3b8315edfa in rb_call (klass=139893583708840, recv=139893475698120,
     mid=5393, argc=1, argv=0x7fff8b62ab30, scope=0, self=139893475699200)
     at eval.c:6151
#30 0x00007f3b83158cf0 in rb_eval (self=139893475699200, n=<value optimized out>)
     at eval.c:3492
#31 0x00007f3b83169914 in block_pass (self=139893475699200, node=0x7f3b835d2a30)
     at eval.c:9138
#32 0x00007f3b8315a830 in rb_eval (self=139893475699200, n=<value optimized out>)
     at eval.c:3208
#33 0x00007f3b8315cf0b in rb_yield_0 (val=139893475698120, self=139893475699200,
     klass=0, flags=<value optimized out>, avalue=0) at eval.c:5077
#34 0x00007f3b8313aeb1 in rb_ary_each (ary=139893475698280) at array.c:1261
#35 0x00007f3b8315ec40 in rb_call0 (klass=139893584006200, recv=139893475698280,
     id=4001, oid=4001, argc=0, argv=0x0, body=0x7f3b836183f0,
     flags=<value optimized out>) at eval.c:5904
#36 0x00007f3b8315edfa in rb_call (klass=139893584006200, recv=139893475698280,
     mid=4001, argc=0, argv=0x0, scope=0, self=139893475699200) at eval.c:6151
#37 0x00007f3b83158cf0 in rb_eval (self=139893475699200, n=<value optimized out>)
     at eval.c:3492
#38 0x00007f3b8315c4d0 in rb_eval (self=139893475699200, n=<value optimized out>)
     at eval.c:3222
#39 0x00007f3b8315eb43 in rb_call0 (klass=139893583711360, recv=139893475699200,
     id=17489, oid=5393, argc=0, argv=0x7fff8b62eac0, body=0x7f3b835d2d28,
     flags=<value optimized out>) at eval.c:6055
#40 0x00007f3b8315edfa in rb_call (klass=139893583711360, recv=139893475699200,
     mid=17489, argc=1, argv=0x7fff8b62eac0, scope=1, self=139893475699200)
     at eval.c:6151
#41 0x00007f3b83158e22 in rb_eval (self=139893475699200, n=<value optimized out>)
     at eval.c:3507
#42 0x00007f3b83169914 in block_pass (self=139893475699200, node=0x7f3b822bbde8)
     at eval.c:9138
#43 0x00007f3b8315a830 in rb_eval (self=139893475699200, n=<value optimized out>)
     at eval.c:3208
#44 0x00007f3b8315bfce in rb_eval (self=139893475699200, n=<value optimized out>)
     at eval.c:3356
#45 0x00007f3b8315eb43 in rb_call0 (klass=139893583711360, recv=139893475699200,
     id=5393, oid=5393, argc=1, argv=0x7fff8b631250, body=0x7f3b822bc1a8,
     flags=<value optimized out>) at eval.c:6055
#46 0x00007f3b8315edfa in rb_call (klass=139893583711360, recv=139893475699200,
     mid=5393, argc=1, argv=0x7fff8b631250, scope=0, self=139893475099920)
     at eval.c:6151
#47 0x00007f3b83158cf0 in rb_eval (self=139893475099920, n=<value optimized out>)
     at eval.c:3492
#48 0x00007f3b83169914 in block_pass (self=139893475099920, node=0x7f3b835d2a30)
     at eval.c:9138
#49 0x00007f3b8315a830 in rb_eval (self=139893475099920, n=<value optimized out>)
---Type <return> to continue, or q <return> to quit---
     at eval.c:3208
#50 0x00007f3b8315cf0b in rb_yield_0 (val=139893475699200, self=139893475099920,
     klass=0, flags=<value optimized out>, avalue=0) at eval.c:5077
#51 0x00007f3b8313aeb1 in rb_ary_each (ary=139893475112960) at array.c:1261
#52 0x00007f3b8315ec40 in rb_call0 (klass=139893584006200, recv=139893475112960,
     id=4001, oid=4001, argc=0, argv=0x0, body=0x7f3b836183f0,
     flags=<value optimized out>) at eval.c:5904
#53 0x00007f3b8315edfa in rb_call (klass=139893584006200, recv=139893475112960,
     mid=4001, argc=0, argv=0x0, scope=0, self=139893475099920) at eval.c:6151
#54 0x00007f3b83158cf0 in rb_eval (self=139893475099920, n=<value optimized out>)
     at eval.c:3492
#55 0x00007f3b8315c4d0 in rb_eval (self=139893475099920, n=<value optimized out>)
     at eval.c:3222
#56 0x00007f3b8315eb43 in rb_call0 (klass=139893583711360, recv=139893475099920,
     id=17489, oid=5393, argc=0, argv=0x7fff8b6351e0, body=0x7f3b835d2d28,
     flags=<value optimized out>) at eval.c:6055
#57 0x00007f3b8315edfa in rb_call (klass=139893583711360, recv=139893475099920,
     mid=17489, argc=1, argv=0x7fff8b6351e0, scope=1, self=139893475099920)
     at eval.c:6151
#58 0x00007f3b83158e22 in rb_eval (self=139893475099920, n=<value optimized out>)
     at eval.c:3507
#59 0x00007f3b83169914 in block_pass (self=139893475099920, node=0x7f3b822bbde8)
     at eval.c:9138
#60 0x00007f3b8315a830 in rb_eval (self=139893475099920, n=<value optimized out>)
     at eval.c:3208
#61 0x00007f3b8315bfce in rb_eval (self=139893475099920, n=<value optimized out>)
     at eval.c:3356
#62 0x00007f3b8315eb43 in rb_call0 (klass=139893583711360, recv=139893475099920,
     id=5393, oid=5393, argc=1, argv=0x7fff8b637970, body=0x7f3b822bc1a8,
     flags=<value optimized out>) at eval.c:6055
#63 0x00007f3b8315edfa in rb_call (klass=139893583711360, recv=139893475099920,
     mid=5393, argc=1, argv=0x7fff8b637970, scope=0, self=139893474599640)
     at eval.c:6151
#64 0x00007f3b83158cf0 in rb_eval (self=139893474599640, n=<value optimized out>)
     at eval.c:3492
#65 0x00007f3b8315c4d0 in rb_eval (self=139893474599640, n=<value optimized out>)
     at eval.c:3222
#66 0x00007f3b8315eb43 in rb_call0 (klass=139893563732960, recv=139893474599640,
     id=17025, oid=17033, argc=0, argv=0x0, body=0x7f3b835d4588,
     flags=<value optimized out>) at eval.c:6055
#67 0x00007f3b8315edfa in rb_call (klass=139893563732960, recv=139893474599640,
     mid=17025, argc=0, argv=0x0, scope=2, self=139893474599640) at eval.c:6151
#68 0x00007f3b83158e68 in rb_eval (self=139893474599640, n=<value optimized out>)
     at eval.c:3513
#69 0x00007f3b8315be1e in rb_eval (self=139893474599640, n=<value optimized out>)
     at eval.c:3308
#70 0x00007f3b8315eb43 in rb_call0 (klass=139893563732960, recv=139893474599640,
     id=17033, oid=17033, argc=0, argv=0x0, body=0x7f3b835ddbd8,
     flags=<value optimized out>) at eval.c:6055
#71 0x00007f3b8315edfa in rb_call (klass=139893563732960, recv=139893474599640,
     mid=17033, argc=0, argv=0x0, scope=0, self=139893474601440) at eval.c:6151
#72 0x00007f3b83158cf0 in rb_eval (self=139893474601440, n=<value optimized out>)
     at eval.c:3492
#73 0x00007f3b83159094 in rb_eval (self=139893474601440, n=<value optimized out>)
     at eval.c:3436
#74 0x00007f3b8315eb43 in rb_call0 (klass=139893474601120, recv=139893474601440,
     id=66953, oid=66953, argc=0, argv=0x0, body=0x7f3b7cdc65b8,
     flags=<value optimized out>) at eval.c:6055
---Type <return> to continue, or q <return> to quit---
#75 0x00007f3b8315edfa in rb_call (klass=139893474601120, recv=139893474601440,
     mid=66953, argc=0, argv=0x0, scope=2, self=139893474601440) at eval.c:6151
#76 0x00007f3b83158e68 in rb_eval (self=139893474601440, n=<value optimized out>)
     at eval.c:3513
#77 0x00007f3b83159094 in rb_eval (self=139893474601440, n=<value optimized out>)
     at eval.c:3436
#78 0x00007f3b8315eb43 in rb_call0 (klass=139893474601120, recv=139893474601440,
     id=5313, oid=5313, argc=0, argv=0x0, body=0x7f3b7cdc7fd0,
     flags=<value optimized out>) at eval.c:6055
#79 0x00007f3b8315edfa in rb_call (klass=139893474601120, recv=139893474601440,
     mid=5313, argc=0, argv=0x0, scope=0, self=139893474601120) at eval.c:6151
#80 0x00007f3b83158cf0 in rb_eval (self=139893474601120, n=<value optimized out>)
     at eval.c:3492
#81 0x00007f3b83159094 in rb_eval (self=139893474601120, n=<value optimized out>)
     at eval.c:3436
#82 0x00007f3b8315eb43 in rb_call0 (klass=139893474600920, recv=139893474601120,
     id=5393, oid=5393, argc=0, argv=0x7fff8b63f5a0, body=0x7f3b835c0510,
     flags=<value optimized out>) at eval.c:6055
#83 0x00007f3b8315edfa in rb_call (klass=139893474600920, recv=139893474601120,
     mid=5393, argc=2, argv=0x7fff8b63f5a0, scope=0, self=139893487291840)
     at eval.c:6151
#84 0x00007f3b83158cf0 in rb_eval (self=139893487291840, n=<value optimized out>)
     at eval.c:3492
#85 0x00007f3b83158c0e in rb_eval (self=139893487291840, n=<value optimized out>)
     at eval.c:3486
#86 0x00007f3b8315eb43 in rb_call0 (klass=139893583306240, recv=139893487291840,
     id=5393, oid=5393, argc=0, argv=0x0, body=0x7f3b835c1c08,
     flags=<value optimized out>) at eval.c:6055
#87 0x00007f3b8315edfa in rb_call (klass=139893583306240, recv=139893487291840,
     mid=5393, argc=0, argv=0x0, scope=0, self=139893583306240) at eval.c:6151
#88 0x00007f3b83158cf0 in rb_eval (self=139893583306240, n=<value optimized out>)
     at eval.c:3492
#89 0x00007f3b8315eb43 in rb_call0 (klass=139893583306200, recv=139893583306240,
     id=5393, oid=5393, argc=0, argv=0x7fff8b641e20, body=0x7f3b835cf1c8,
     flags=<value optimized out>) at eval.c:6055
#90 0x00007f3b8315edfa in rb_call (klass=139893583306200, recv=139893583306240,
     mid=5393, argc=2, argv=0x7fff8b641e20, scope=0, self=139893584061080)
     at eval.c:6151
#91 0x00007f3b83158cf0 in rb_eval (self=139893584061080, n=<value optimized out>)
     at eval.c:3492
#92 0x00007f3b8315b803 in rb_eval (self=139893584061080, n=<value optimized out>)
     at eval.c:3502
#93 0x00007f3b8316bdbb in ruby_exec_internal () at eval.c:1641
#94 0x00007f3b8316be05 in ruby_exec () at eval.c:1661
#95 0x00007f3b8316be32 in ruby_run () at eval.c:1671
#96 0x00000000004008e3 in main (argc=5, argv=0x7fff8b643818,
     envp=<value optimized out>) at main.c:48
(gdb)

Hope that helps!

-Hyrum

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=1129100
Received on 2009-02-09 14:40:06 CET

This is an archived mail posted to the Subversion Dev mailing list.