YAML Segmentation fault while parsing 2M EUC file.

Z

Zev Blut

Hello,

I have a 2.2M EUC-jp encoded file that I am parsing.
For debugging purposes I am outputting the results with the ".to_yaml"
method, but after a minute or two I get a segmentation fault.

The error message is :
"
/usr/local/lib/ruby/1.8/yaml/rubytypes.rb:315: [BUG] Segmentation fault
ruby 1.8.1 (2003-12-25) [i686-linux]

Aborted
"

To make sure it is not a bug in my code I changed the output to ".inspect",
which it runs properly. Unfortunately, I cannot give the data, but I am
willing to help in fixing or retrieving more debugging data if here
is interest.

Best,

Zev
 
T

ts

Z> "
Z> /usr/local/lib/ruby/1.8/yaml/rubytypes.rb:315: [BUG] Segmentation fault
Z> ruby 1.8.1 (2003-12-25) [i686-linux]

Try to run it under the debugger (gdb) and when it crash give
a backtrace (command `bt')



Guy Decoux
 
Z

Zev Blut

Z> "
Z> /usr/local/lib/ruby/1.8/yaml/rubytypes.rb:315: [BUG] Segmentation
fault
Z> ruby 1.8.1 (2003-12-25) [i686-linux]

Try to run it under the debugger (gdb) and when it crash give
a backtrace (command `bt')

I forgot to add that this is running on a RedHat 9 install.
Here is the result of bt (which is slightly sanitized...):

Program received signal SIGSEGV, Segmentation fault.
0x4207c1ac in memcpy () from /lib/tls/libc.so.6
(gdb) bt
#0 0x4207c1ac in memcpy () from /lib/tls/libc.so.6
#1 0x4001c486 in syck_emitter_write (e=0x81ef8f8,
str=0x81c1fba "SANITIZED[But the length is intact]"..., len=136712192)
at emitter.c:241
#2 0x4001c5e9 in syck_emitter_simple (e=0x1557,
str=0x81c1fba "SANITIZED[But the length is intact]"..., len=9559)
at emitter.c:317
#3 0x400213b0 in syck_emitter_simple_write (self=1074599416,
str=1074599616)
at rubyext.c:1301
#4 0x080653d3 in call_cfunc (func=0x4002137c <syck_emitter_simple_write>,
recv=1074599416, len=-1367, argc=1, argv=0x3ffe9dc6) at eval.c:4929
#5 0x0805aff5 in rb_call0 (klass=1074672216, recv=1074599416, id=10881,
oid=5463, argc=1, argv=0xbfff2310, body=0x400e3154, nosuper=0)
at eval.c:5066
#6 0x0805b7dd in rb_call (klass=1074672216, recv=1074599416, mid=10881,
argc=1, argv=0xbfff2310, scope=0) at eval.c:5287
#7 0x08056f21 in rb_eval (self=1074599616, n=0x1557) at eval.c:3078
#8 0x08059600 in rb_yield_0 (val=1074599416, self=1074599616, klass=0,
flags=0, avalue=0) at eval.c:4293
#9 0x0805f64b in proc_invoke (proc=1074598176, args=1074599416, self=6,
klass=0) at ruby.h:631
#10 0x0805f6f1 in proc_call (proc=1074598176, args=1074597976) at
eval.c:7233
#11 0x080653d3 in call_cfunc (func=0x805f6dc <proc_call>, recv=1074598176,
len=-1367, argc=1, argv=0x3ffe9dc6) at eval.c:4929
#12 0x0805aff5 in rb_call0 (klass=1074431892, recv=1074598176, id=5193,
oid=5463, argc=1, argv=0xbfff2e60, body=0x400a8708, nosuper=0)
at eval.c:5066
#13 0x0805b7dd in rb_call (klass=1074431892, recv=1074598176, mid=5193,
argc=1, argv=0xbfff2e60, scope=0) at eval.c:5287
#14 0x08056f21 in rb_eval (self=1074399152, n=0x1557) at eval.c:3078
#15 0x0805b2de in rb_call0 (klass=1074611096, recv=1074399152, id=10817,
oid=5463, argc=0, argv=0xbfff3648, body=0x400a14bc, nosuper=0)
at eval.c:5194
#16 0x0805b7dd in rb_call (klass=1074611096, recv=1074399152, mid=10817,
argc=2, argv=0xbfff3640, scope=0) at eval.c:5287
#17 0x08056f21 in rb_eval (self=1074599616, n=0x1557) at eval.c:3078
#18 0x0805644a in rb_eval (self=1074599616, n=0x1557) at eval.c:2796
#19 0x0805b2de in rb_call0 (klass=1074485332, recv=1074599616, id=10401,
oid=5463, argc=0, argv=0xbfff43f4, body=0x400c9614, nosuper=0)
at eval.c:5194
#20 0x0805b7dd in rb_call (klass=1074485332, recv=1074599616, mid=10401,
argc=1, argv=0xbfff43f0, scope=0) at eval.c:5287
#21 0x08056f21 in rb_eval (self=1074599416, n=0x1557) at eval.c:3078
#22 0x08059600 in rb_yield_0 (val=1074599116, self=1074599416, klass=0,
flags=0, avalue=0) at eval.c:4293
#23 0x08059aca in rb_yield (val=1074599116) at eval.c:4346
#24 0x080affff in rb_ary_each (ary=1074599216) at array.c:1106
#25 0x080653d3 in call_cfunc (func=0x80affd8 <rb_ary_each>,
recv=1074599216,
len=-1367, argc=0, argv=0x3ffe9dc6) at eval.c:4929
#26 0x0805aff5 in rb_call0 (klass=1074464472, recv=1074599216, id=3833,
oid=5463, argc=0, argv=0x0, body=0x400b02b4, nosuper=0) at eval.c:5066
#27 0x0805b7dd in rb_call (klass=1074464472, recv=1074599216, mid=3833,
argc=0, argv=0x0, scope=0) at eval.c:5287
#28 0x08056f21 in rb_eval (self=1074599416, n=0x1557) at eval.c:3078
#29 0x0805644a in rb_eval (self=1074599416, n=0x1557) at eval.c:2796
#30 0x0805b2de in rb_call0 (klass=1074607856, recv=1074599416, id=3753,
oid=5463, argc=0, argv=0xbfff5b74, body=0x400d90b4, nosuper=0)
at eval.c:5194
#31 0x0805b7dd in rb_call (klass=1074607856, recv=1074599416, mid=3753,
argc=1, argv=0xbfff5b70, scope=0) at eval.c:5287
#32 0x08056f21 in rb_eval (self=1074602056, n=0x1557) at eval.c:3078
#33 0x0805644a in rb_eval (self=1074602056, n=0x1557) at eval.c:2796
#34 0x08059600 in rb_yield_0 (val=1074599416, self=1074602056, klass=0,
flags=0, avalue=0) at eval.c:4293
#35 0x0805f64b in proc_invoke (proc=1074599476, args=1074599416, self=6,
klass=0) at ruby.h:631
#36 0x0805f6f1 in proc_call (proc=1074599476, args=1074599396) at
eval.c:7233
#37 0x080653d3 in call_cfunc (func=0x805f6dc <proc_call>, recv=1074599476,
len=-1367, argc=1, argv=0x3ffe9dc6) at eval.c:4929
#38 0x0805aff5 in rb_call0 (klass=1074431892, recv=1074599476, id=5193,
oid=5463, argc=1, argv=0xbfff6ca0, body=0x400a8708, nosuper=0)
at eval.c:5066
#39 0x0805b7dd in rb_call (klass=1074431892, recv=1074599476, mid=5193,
argc=1, argv=0xbfff6ca0, scope=0) at eval.c:5287
#40 0x08056f21 in rb_eval (self=1074399152, n=0x1557) at eval.c:3078
#41 0x0805b2de in rb_call0 (klass=1074611096, recv=1074399152, id=10817,
oid=5463, argc=0, argv=0xbfff7488, body=0x400a14bc, nosuper=0)
at eval.c:5194
#42 0x0805b7dd in rb_call (klass=1074611096, recv=1074399152, mid=10817,
argc=2, argv=0xbfff7480, scope=0) at eval.c:5287
#43 0x08056f21 in rb_eval (self=1074602056, n=0x1557) at eval.c:3078
#44 0x0805644a in rb_eval (self=1074602056, n=0x1557) at eval.c:2796
#45 0x0805b2de in rb_call0 (klass=1074461452, recv=1074602056, id=10401,
oid=5463, argc=0, argv=0x0, body=0x400cf924, nosuper=0) at eval.c:5194
#46 0x0805b7dd in rb_call (klass=1074461452, recv=1074602056, mid=10401,
argc=0, argv=0x0, scope=0) at eval.c:5287
#47 0x08056f21 in rb_eval (self=1074335652, n=0x1557) at eval.c:3078
#48 0x080571c1 in rb_eval (self=1074335652, n=0x1557) at ruby.h:636
#49 0x0805b2de in rb_call0 (klass=1074514096, recv=1074335652, id=10337,
oid=5463, argc=0, argv=0xbfff8fd4, body=0x400a57c4, nosuper=0)
at eval.c:5194
#50 0x0805b7dd in rb_call (klass=1074514096, recv=1074335652, mid=10337,
argc=1, argv=0xbfff8fd0, scope=0) at eval.c:5287
#51 0x08056f21 in rb_eval (self=1074513316, n=0x1557) at eval.c:3078
#52 0x08059600 in rb_yield_0 (val=1074335652, self=1074513316, klass=0,
flags=0, avalue=0) at eval.c:4293
#53 0x08059aca in rb_yield (val=1074335652) at eval.c:4346
#54 0x080affff in rb_ary_each (ary=1074802156) at array.c:1106
#55 0x080653d3 in call_cfunc (func=0x80affd8 <rb_ary_each>,
recv=1074802156,
len=-1367, argc=0, argv=0x3ffe9dc6) at eval.c:4929
#56 0x0805aff5 in rb_call0 (klass=1074464472, recv=1074802156, id=3833,
oid=5463, argc=0, argv=0x0, body=0x400b02b4, nosuper=0) at eval.c:5066
#57 0x0805b7dd in rb_call (klass=1074464472, recv=1074802156, mid=3833,
argc=0, argv=0x0, scope=0) at eval.c:5287
#58 0x08056f21 in rb_eval (self=1074513316, n=0x1557) at eval.c:3078
#59 0x0805644a in rb_eval (self=1074513316, n=0x1557) at eval.c:2796
#60 0x0805b2de in rb_call0 (klass=1074514656, recv=1074513316, id=10321,
oid=5463, argc=0, argv=0xbfffa714, body=0x400a6264, nosuper=0)
at eval.c:5194
#61 0x0805b7dd in rb_call (klass=1074514656, recv=1074513316, mid=10321,
argc=1, argv=0xbfffa710, scope=1) at eval.c:5287
#62 0x08056f21 in rb_eval (self=1074513316, n=0x1557) at eval.c:3078
#63 0x08059600 in rb_yield_0 (val=1074602896, self=1074513316, klass=0,
flags=0, avalue=0) at eval.c:4293
#64 0x08059aca in rb_yield (val=1074602896) at eval.c:4346
#65 0x0806fa14 in rb_io_each_line (argc=-1367, argv=0x0, io=1074802056)
at io.c:1215
#66 0x080653d3 in call_cfunc (func=0x806f9c8 <rb_io_each_line>,
recv=1074802056, len=-1367, argc=0, argv=0x3ffe9dc6) at eval.c:4929
#67 0x0805aff5 in rb_call0 (klass=1074453412, recv=1074802056, id=4705,
oid=5463, argc=0, argv=0x0, body=0x400ad85c, nosuper=0) at eval.c:5066
#68 0x0805b7dd in rb_call (klass=1074453412, recv=1074802056, mid=4705,
argc=0, argv=0x0, scope=0) at eval.c:5287
#69 0x08056f21 in rb_eval (self=1074513316, n=0x1557) at eval.c:3078
#70 0x0805644a in rb_eval (self=1074513316, n=0x1557) at eval.c:2796
#71 0x08059600 in rb_yield_0 (val=1074802056, self=1074513316, klass=0,
flags=0, avalue=0) at eval.c:4293
#72 0x08059aca in rb_yield (val=1074802056) at eval.c:4346
#73 0x0805a6ad in rb_ensure (b_proc=0x8059ab4 <rb_yield>, data1=1074802056,
e_proc=0x80700b4 <io_close>, data2=1074802056) at eval.c:4717
#74 0x0807106d in rb_io_s_open (argc=2, argv=0xbfffc160, klass=1074449572)
at io.c:2285
#75 0x080653d3 in call_cfunc (func=0x8071030 <rb_io_s_open>,
recv=1074449572,
len=-1367, argc=2, argv=0x3ffe9dc6) at eval.c:4929
#76 0x0805aff5 in rb_call0 (klass=1074453392, recv=1074449572, id=7281,
oid=5463, argc=2, argv=0xbfffc160, body=0x400adb18, nosuper=0)
at eval.c:5066
#77 0x0805b7dd in rb_call (klass=1074453392, recv=1074449572, mid=7281,
argc=2, argv=0xbfffc160, scope=0) at eval.c:5287
#78 0x08056f21 in rb_eval (self=1074513316, n=0x1557) at eval.c:3078
#79 0x0805644a in rb_eval (self=1074513316, n=0x1557) at eval.c:2796
#80 0x0805b2de in rb_call0 (klass=1074802836, recv=1074513316, id=10241,
oid=5463, argc=0, argv=0xbfffcf14, body=0x400bbb54, nosuper=0)
at eval.c:5194
#81 0x0805b7dd in rb_call (klass=1074802836, recv=1074513316, mid=10241,
argc=1, argv=0xbfffcf10, scope=0) at eval.c:5287
#82 0x08056f21 in rb_eval (self=1074513736, n=0x1557) at eval.c:3078
#83 0x0805b2de in rb_call0 (klass=1074514816, recv=1074513736, id=10233,
oid=5463, argc=0, argv=0xbfffd6d4, body=0x400a6dcc, nosuper=0)
at eval.c:5194
#84 0x0805b7dd in rb_call (klass=1074514816, recv=1074513736, mid=10233,
argc=1, argv=0xbfffd6d0, scope=0) at eval.c:5287
#85 0x08056f21 in rb_eval (self=1074489872, n=0x1557) at eval.c:3078
#86 0x080568fa in rb_eval (self=1074489872, n=0x1557) at eval.c:3259
#87 0x080538fc in ruby_exec () at eval.c:1436
#88 0x0805393d in ruby_run () at eval.c:1457
#89 0x08051e19 in main (argc=4, argv=0xbfffe444, envp=0xbfffe458) at
main.c:50
#90 0x42015574 in __libc_start_main () from /lib/tls/libc.so.6


I hope this helps,
Zev
 
T

ts

Z> #1 0x4001c486 in syck_emitter_write (e=0x81ef8f8,
Z> str=0x81c1fba "SANITIZED[But the length is intact]"..., len=136712192)
Z> at emitter.c:241


Try to update to a newer version of ruby, a bug was found in
syck_emitter_write()


Guy Decoux
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,769
Messages
2,569,580
Members
45,054
Latest member
TrimKetoBoost

Latest Threads

Top