From: Michel Pastor Date: 2005-06-19T20:34:39+09:00 Subject: Re: Segmentation fault in timeout.rb --Signature=_Sun__19_Jun_2005_13_34_30_+0200_JBj7WvzecREbGtk4 Content-Type: text/plain; charset=US-ASCII Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Sat, 18 Jun 2005 10:28:53 +0900 nobu.nokada@softhome.net wrote: > > Unfortunately ruby doesn't aborts when compiled with debug =3D> no core > > but >=20 > Thank you for the info. Since 1.8.3p1 does I now have a core file > I forgot to mention about this, I'd like to know also > *ruby_current_node. > ruby script/server =20 =3D> Rails application started on http://0.0.0.0:3000 [2005-06-19 13:23:04] INFO WEBrick 1.3.1 [2005-06-19 13:23:04] INFO ruby 1.8.3 (2005-05-12) [i686-linux] [2005-06-19 13:23:04] INFO WEBrick::HTTPServer#start: pid=3D3411 port=3D30= 00 127.0.0.1 - - [19/Jun/2005:13:23:06 CEST] "GET /films/list HTTP/1.1" 200 12= 81 - -> /films/list deadlock 0xb752a20c: run:-/opt/ruby/1.8.3p1/lib/ruby/1.8/timeout.rb:42: [BU= G] Segmentation fault ruby 1.8.3 (2005-05-12) [i686-linux] zsh: abort (core dumped) ruby script/server > gdb ruby core (gdb) bt #0 0xffffe410 in ?? () #1 0xbffe7ac0 in ?? () #2 0x00000006 in ?? () #3 0x00000d53 in ?? () #4 0xb7e893c1 in raise () from /lib/tls/libc.so.6 #5 0xb7e8ab59 in abort () from /lib/tls/libc.so.6 #6 0x080d148a in rb_bug (fmt=3D0x0) at error.c:214 #7 0x080b09c2 in sigsegv (sig=3D11) at signal.c:446 #8 #9 0xb7ec8cdb in strlen () from /lib/tls/libc.so.6 #10 0xb7e9e761 in vfprintf () from /lib/tls/libc.so.6 #11 0xb7ebbe86 in vsnprintf () from /lib/tls/libc.so.6 #12 0x08052abf in warn_printf (fmt=3D0x1
) at ev= al.c:1072 #13 0x080583e7 in rb_thread_schedule () at eval.c:10462 #14 0x080661dd in rb_thread_wait_for (time=3D{tv_sec =3D 30, tv_usec =3D 0}= ) at eval.c:10583 #15 0x0809b409 in rb_f_sleep (argc=3D0, argv=3D0x1) at process.c:1570 #16 0x0805c8f5 in rb_call0 (klass=3D3085302932, recv=3D3084898944, id=3D895= 3, oid=3D1, argc=3D1, argv=3D0xbffecab0, body=3D0xb7e522d8, nosuper=3D0) at= eval.c:5482 #17 0x0805d14d in rb_call (klass=3D3085302932, recv=3D3084898944, mid=3D895= 3, argc=3D1, argv=3D0xbffecab0, scope=3D1) at eval.c:5832 #18 0x08058cd1 in rb_eval (self=3D3084898944, n=3D0x1) at ruby.h:631 #19 0x0805f10d in rb_yield_0 (val=3D286899409, self=3D3084898944, klass=3D3= 084902724, flags=3D0, avalue=3D0) at eval.c:4813 #20 0x0805f473 in rb_yield (val=3D1) at eval.c:4895 #21 0x080709e7 in rb_hash_delete (hash=3D3076171004, key=3D286899409) at ha= sh.c:671 #22 0xb73ca30f in rb_dlmem_delete (ptr=3D0x88cde68) at ptr.c:30 #23 0xb73ca365 in dlptr_free (data=3D0x88ceff8) at ptr.c:61 #24 0x0806e9c5 in garbage_collect () at gc.c:1196 #25 0x0806efe4 in ruby_xmalloc (size=3D69292) at gc.c:119 #26 0x0805767d in rb_thread_save_context (th=3D0x872fc38) at eval.c:9920 #27 0x08067368 in rb_thread_start_0 (fn=3D0x8067480 , arg= =3D0xb752a220, th=3D0x872fc38) at eval.c:11512 #28 0x0805c8d9 in rb_call0 (klass=3D3085287292, recv=3D3085287312, id=3D503= 3, oid=3D1, argc=3D0, argv=3D0x0, body=3D0xb7e5bf04, nosuper=3D0) at eval.c= :5479 #29 0x0805d14d in rb_call (klass=3D3085287292, recv=3D3085287312, mid=3D503= 3, argc=3D0, argv=3D0x0, scope=3D0) at eval.c:5832 #30 0x08058cd1 in rb_eval (self=3D3084898944, n=3D0x1) at ruby.h:631 #31 0x0805b8a9 in rb_eval (self=3D3084898944, n=3D0x1) at eval.c:3047 #32 0x0805a069 in rb_eval (self=3D3084898944, n=3D0x1) at eval.c:3487 #33 0x0805b578 in rb_eval (self=3D3084898944, n=3D0x1) at eval.c:3183 #34 0x0805c4be in rb_call0 (klass=3D3084898744, recv=3D3084898944, id=3D145= 37, oid=3D1, argc=3D0, argv=3D0xbfff0358, body=3D0xb7dfdf14, nosuper=3D0) a= t eval.c:5739 #35 0x0805d14d in rb_call (klass=3D3084898744, recv=3D3084898944, mid=3D145= 37, argc=3D2, argv=3D0xbfff0350, scope=3D0) at eval.c:5832 #36 0x08058cd1 in rb_eval (self=3D3075649524, n=3D0x1) at ruby.h:631 #37 0x080631c7 in block_pass (self=3D3075649524, node=3D0xb7dfdba4) at eval= .c:8563 #38 0x08059337 in rb_eval (self=3D3075649524, n=3D0x1) at eval.c:3033 #39 0x0805c4be in rb_call0 (klass=3D3085303072, recv=3D3075649524, id=3D145= 37, oid=3D1, argc=3D0, argv=3D0xbfff13c4, body=3D0xb7dfdc44, nosuper=3D0) a= t eval.c:5739 #40 0x0805d14d in rb_call (klass=3D3085303072, recv=3D3075649524, mid=3D145= 37, argc=3D1, argv=3D0xbfff13c0, scope=3D1) at eval.c:5832 #41 0x08058cd1 in rb_eval (self=3D3075649524, n=3D0x1) at ruby.h:631 #42 0x0805b8a9 in rb_eval (self=3D3075649524, n=3D0x1) at eval.c:3047 #43 0x0805b3bc in rb_eval (self=3D3075649524, n=3D0x1) at eval.c:3158 #44 0x0805c4be in rb_call0 (klass=3D3084104240, recv=3D3075649524, id=3D170= 09, oid=3D1, argc=3D0, argv=3D0xbfff28ec, body=3D0xb7de4460, nosuper=3D0) a= t eval.c:5739 #45 0x0805d14d in rb_call (klass=3D3084104240, recv=3D3075649524, mid=3D170= 09, argc=3D3, argv=3D0xbfff28e0, scope=3D1) at eval.c:5832 #46 0x08058cd1 in rb_eval (self=3D3075649524, n=3D0x1) at ruby.h:631 #47 0x0805c4be in rb_call0 (klass=3D3084104240, recv=3D3075649524, id=3D168= 97, oid=3D1, argc=3D0, argv=3D0xbfff3154, body=3D0xb7de31c8, nosuper=3D0) a= t eval.c:5739 #48 0x0805d14d in rb_call (klass=3D3084104240, recv=3D3075649524, mid=3D168= 97, argc=3D1, argv=3D0xbfff3150, scope=3D1) at eval.c:5832 #49 0x08058cd1 in rb_eval (self=3D3075649524, n=3D0x1) at ruby.h:631 #50 0x0805a069 in rb_eval (self=3D3075649524, n=3D0x1) at eval.c:3487 #51 0x0805aa2c in rb_eval (self=3D3075649524, n=3D0x1) at eval.c:2967 #52 0x0805c4be in rb_call0 (klass=3D3084104240, recv=3D3075649524, id=3D167= 85, oid=3D1, argc=3D0, argv=3D0xbfff4674, body=3D0xb7dfbf98, nosuper=3D0) a= t eval.c:5739 #53 0x0805d14d in rb_call (klass=3D3084104240, recv=3D3075649524, mid=3D167= 85, argc=3D1, argv=3D0xbfff4670, scope=3D1) at eval.c:5832 #54 0x08058cd1 in rb_eval (self=3D3075649524, n=3D0x1) at ruby.h:631 #55 0x08059b3c in rb_eval (self=3D3075649524, n=3D0x1) at eval.c:2789 #56 0x0805c4be in rb_call0 (klass=3D3084104240, recv=3D3075649524, id=3D148= 81, oid=3D1, argc=3D0, argv=3D0xbfff5554, body=3D0xb7e18c24, nosuper=3D0) a= t eval.c:5739 #57 0x0805d14d in rb_call (klass=3D3084104240, recv=3D3075649524, mid=3D148= 81, argc=3D1, argv=3D0xbfff5550, scope=3D0) at eval.c:5832 #58 0x08058cd1 in rb_eval (self=3D3077198624, n=3D0x1) at ruby.h:631 #59 0x0805b3bc in rb_eval (self=3D3077198624, n=3D0x1) at eval.c:3158 #60 0x0805b578 in rb_eval (self=3D3077198624, n=3D0x1) at eval.c:3183 #61 0x0805aa1b in rb_eval (self=3D3077198624, n=3D0x1) at eval.c:2971 #62 0x0805c4be in rb_call0 (klass=3D3083831940, recv=3D3077198624, id=3D511= 3, oid=3D1, argc=3D0, argv=3D0xbfff70d4, body=3D0xb7d2e9cc, nosuper=3D0) at= eval.c:5739 #63 0x0805d14d in rb_call (klass=3D3083831940, recv=3D3077198624, mid=3D511= 3, argc=3D1, argv=3D0xbfff70d0, scope=3D1) at eval.c:5832 #64 0x08058cd1 in rb_eval (self=3D3077198624, n=3D0x1) at ruby.h:631 #65 0x0805b3bc in rb_eval (self=3D3077198624, n=3D0x1) at eval.c:3158 #66 0x0805b578 in rb_eval (self=3D3077198624, n=3D0x1) at eval.c:3183 #67 0x0805f10d in rb_yield_0 (val=3D3077196464, self=3D3077198624, klass=3D= 3084934564, flags=3D1, avalue=3D2) at eval.c:4813 #68 0x08067519 in rb_thread_yield (arg=3D3077196464, th=3D0x82fbd00) at eva= l.c:11595 #69 0x08067425 in rb_thread_start_0 (fn=3D0x8067480 , arg= =3D0xb76a4ab0, th=3D0x82fbd00) at eval.c:11514 #70 0x0805c8d9 in rb_call0 (klass=3D3085287292, recv=3D3085287312, id=3D503= 3, oid=3D1, argc=3D0, argv=3D0x0, body=3D0xb7e5bf04, nosuper=3D0) at eval.c= :5479 #71 0x0805d14d in rb_call (klass=3D3085287292, recv=3D3085287312, mid=3D503= 3, argc=3D0, argv=3D0x0, scope=3D0) at eval.c:5832 #72 0x08058cd1 in rb_eval (self=3D3077198624, n=3D0x1) at ruby.h:631 #73 0x0805b8a9 in rb_eval (self=3D3077198624, n=3D0x1) at eval.c:3047 #74 0x0805c4be in rb_call0 (klass=3D3084898064, recv=3D3077198624, id=3D142= 57, oid=3D1, argc=3D0, argv=3D0xbfff97e4, body=3D0xb7e06f38, nosuper=3D0) a= t eval.c:5739 #75 0x0805d14d in rb_call (klass=3D3084898064, recv=3D3077198624, mid=3D142= 57, argc=3D1, argv=3D0xbfff97e0, scope=3D1) at eval.c:5832 #76 0x08058cd1 in rb_eval (self=3D3077198624, n=3D0x1) at ruby.h:631 #77 0x080630a7 in block_pass (self=3D3077198624, node=3D0xb7e08e8c) at eval= .c:8542 #78 0x08059337 in rb_eval (self=3D3077198624, n=3D0x1) at eval.c:3033 #79 0x08059f95 in rb_eval (self=3D3077198624, n=3D0x1) at eval.c:3497 #80 0x0805f10d in rb_yield_0 (val=3D3077197844, self=3D3077198624, klass=3D= 3084946384, flags=3D0, avalue=3D0) at eval.c:4813 #81 0x0805f473 in rb_yield (val=3D1) at eval.c:4895 #82 0x080c49af in rb_ary_each (ary=3D3077196684) at array.c:1125 #83 0x0805c8e3 in rb_call0 (klass=3D3085272432, recv=3D3077196684, id=3D383= 3, oid=3D1, argc=3D0, argv=3D0x0, body=3D0xb7e5814c, nosuper=3D0) at eval.c= :5476 #84 0x0805d14d in rb_call (klass=3D3085272432, recv=3D3077196684, mid=3D383= 3, argc=3D0, argv=3D0x0, scope=3D0) at eval.c:5832 #85 0x08058cd1 in rb_eval (self=3D3077198624, n=3D0x1) at ruby.h:631 #86 0x0805b8a9 in rb_eval (self=3D3077198624, n=3D0x1) at eval.c:3047 #87 0x0805b3bc in rb_eval (self=3D3077198624, n=3D0x1) at eval.c:3158 #88 0x0805aa1b in rb_eval (self=3D3077198624, n=3D0x1) at eval.c:2971 #89 0x0805f10d in rb_yield_0 (val=3D6, self=3D3077198624, klass=3D308494386= 4, flags=3D0, avalue=3D0) at eval.c:4813 #90 0x08058f1d in rb_eval (self=3D3084898264, n=3D0x1) at eval.c:3123 #91 0x0805c4be in rb_call0 (klass=3D3084898224, recv=3D3084898264, id=3D503= 3, oid=3D1, argc=3D0, argv=3D0x0, body=3D0xb7e0b4e8, nosuper=3D0) at eval.c= :5739 #92 0x0805d14d in rb_call (klass=3D3084898224, recv=3D3084898264, mid=3D503= 3, argc=3D0, argv=3D0x0, scope=3D0) at eval.c:5832 #93 0x08058cd1 in rb_eval (self=3D3077198624, n=3D0x1) at ruby.h:631 #94 0x0805b8a9 in rb_eval (self=3D3077198624, n=3D0x1) at eval.c:3047 #95 0x0805c4be in rb_call0 (klass=3D3084898064, recv=3D3077198624, id=3D503= 3, oid=3D1, argc=3D0, argv=3D0x0, body=3D0xb7e09828, nosuper=3D0) at eval.c= :5739 #96 0x0805d14d in rb_call (klass=3D3084898064, recv=3D3077198624, mid=3D503= 3, argc=3D0, argv=3D0x0, scope=3D0) at eval.c:5832 #97 0x08058cd1 in rb_eval (self=3D3077199184, n=3D0x1) at ruby.h:631 #98 0x0805c4be in rb_call0 (klass=3D3077199164, recv=3D3077199184, id=3D103= 77, oid=3D1, argc=3D0, argv=3D0xbfffeab4, body=3D0xb76a963c, nosuper=3D0) a= t eval.c:5739 #99 0x0805d14d in rb_call (klass=3D3077199164, recv=3D3077199184, mid=3D103= 77, argc=3D1, argv=3D0xbfffeab0, scope=3D0) at eval.c:5832 #100 0x08058cd1 in rb_eval (self=3D3085298112, n=3D0x1) at ruby.h:631 #101 0x08064dd2 in ruby_exec_internal () at eval.c:1492 #102 0x08064e06 in ruby_exec () at eval.c:1512 #103 0x08065d80 in ruby_run () at eval.c:1522 #104 0x08052288 in main (argc=3D1, argv=3D0x1, envp=3D0xbffff3a0) at main.c= :46 (gdb) up 13 #13 0x080583e7 in rb_thread_schedule () at eval.c:10462 10462 warn_printf(" %s - %s:%d\n", (gdb) p curr_thread $1 =3D 0x82fbd00 (gdb) p *curr_thread $2 =3D {next =3D 0x872fc38, prev =3D 0x8109f38, context =3D {{__jmpbuf =3D = {1, 134641248, -1209679984, -1073814024, -1073814416, 134639848}, __mask_wa= s_saved =3D 0, __saved_mask =3D {__val =3D {0, 0, 0, 0, 0, 0, 0, 0, 6033,=20 137352448, 3086449064, 544437089, 1905, 137348312, 3086449064, 10= 08759918, 1768702752, 997486181, 1684956448, 10, 0 }}}}, = result =3D 0, stk_len =3D 17323, stk_max =3D 21847,=20 stk_ptr =3D 0x8703af8, stk_pos =3D 0xbffee42c, frame =3D 0xbffee740, scop= e =3D 0xb752a234, dyna_vars =3D 0x0, block =3D 0xbffef0b0, iter =3D 0xbffee= 668, tag =3D 0xbffef120, klass =3D 3084898944, wrapper =3D 0,=20 cref =3D 0xb7dfd244, flags =3D 0, node =3D 0xb7dfe25c, tracing =3D 0, err= info =3D 4, last_status =3D 4, last_line =3D 4, last_match =3D 4, safe =3D = 0, status =3D THREAD_STOPPED, wait_for =3D 4, fd =3D 0, readfds =3D {__fds_= bits =3D { 64, 0 }}, writefds =3D {__fds_bits =3D {0 }}, exceptfds =3D {__fds_bits =3D {0 }}, select_= value =3D 1, delay =3D 1119180219.911046, join =3D 0x0, abort =3D 0,=20 priority =3D 0, thgroup =3D 3077196864, locals =3D 0x8540fd8, thread =3D = 3077196424} (gdb) p curr $3 =3D 0x82fbd00 (gdb) p *curr $4 =3D {next =3D 0x872fc38, prev =3D 0x8109f38, context =3D {{__jmpbuf =3D = {1, 134641248, -1209679984, -1073814024, -1073814416, 134639848}, __mask_wa= s_saved =3D 0, __saved_mask =3D {__val =3D {0, 0, 0, 0, 0, 0, 0, 0, 6033,=20 137352448, 3086449064, 544437089, 1905, 137348312, 3086449064, 10= 08759918, 1768702752, 997486181, 1684956448, 10, 0 }}}}, = result =3D 0, stk_len =3D 17323, stk_max =3D 21847,=20 stk_ptr =3D 0x8703af8, stk_pos =3D 0xbffee42c, frame =3D 0xbffee740, scop= e =3D 0xb752a234, dyna_vars =3D 0x0, block =3D 0xbffef0b0, iter =3D 0xbffee= 668, tag =3D 0xbffef120, klass =3D 3084898944, wrapper =3D 0,=20 cref =3D 0xb7dfd244, flags =3D 0, node =3D 0xb7dfe25c, tracing =3D 0, err= info =3D 4, last_status =3D 4, last_line =3D 4, last_match =3D 4, safe =3D = 0, status =3D THREAD_STOPPED, wait_for =3D 4, fd =3D 0, readfds =3D {__fds_= bits =3D { 64, 0 }}, writefds =3D {__fds_bits =3D {0 }}, exceptfds =3D {__fds_bits =3D {0 }}, select_= value =3D 1, delay =3D 1119180219.911046, join =3D 0x0, abort =3D 0,=20 priority =3D 0, thgroup =3D 3077196864, locals =3D 0x8540fd8, thread =3D = 3077196424} (gdb) p ruby_current_node=20 $5 =3D (struct RNode *) 0xb7dfe25c (gdb) p *ruby_current_node=20 $6 =3D {flags =3D 22097983, nd_file =3D 0x81751c9 "/opt/ruby/1.8.3p1/lib/ru= by/1.8/timeout.rb", u1 =3D {node =3D 0x0, id =3D 0, value =3D 0, cfunc =3D = 0, tbl =3D 0x0}, u2 =3D {node =3D 0x22f9, id =3D 8953, argc =3D 8953, value= =3D 8953},=20 u3 =3D {node =3D 0xb7dfe270, id =3D 3084903024, state =3D -1210064272, en= try =3D 0xb7dfe270, cnt =3D -1210064272, value =3D 3084903024}} --Signature=_Sun__19_Jun_2005_13_34_30_+0200_JBj7WvzecREbGtk4 Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.1 (GNU/Linux) iD8DBQFCtVhKZvjSzHhNkDcRAgUbAJ0X0E0GDGk3srXRlcONTfbRMGx8BQCfVvf0 PPjL6/m5t5aTsz9OGwVDGbM= =qoKS -----END PGP SIGNATURE----- --Signature=_Sun__19_Jun_2005_13_34_30_+0200_JBj7WvzecREbGtk4--