Issue #1064 has been updated by Narihiro Nakamura. Hi. It did not reappear in my environment. --- start --- /usr/local/lib/ruby-1.9.1_rc2/gems/1.9.1/gems/hpricot-0.6.164% ruby-1.9.1_rc2 -v ruby 1.9.1p0 (2009-01-20 revision 21700) [i686-linux] /usr/local/lib/ruby-1.9.1_rc2/gems/1.9.1/gems/hpricot-0.6.164% sudo rake-1.9.1_rc2 (in /usr/local/lib/ruby-1.9.1_rc2/gems/1.9.1/gems/hpricot-0.6.164) fatal: Not a git repository checking for main() in -lc... yes creating Makefile gcc -shared -o hpricot_scan.so hpricot_scan.o hpricot_gram.o -L. -L/usr/local/lib -Wl,-R/usr/local/lib -L. -rdynamic -Wl,-export-dynamic -lc -lpthread -lrt -ldl -lcrypt -lm -lc mkdir -p lib/i686-linux cp ext/hpricot_scan/hpricot_scan.so lib/i686-linux Using ragel version: 6.2, location: /usr/local/bin/ragel checking for stdio.h... yes creating Makefile gcc -shared -o fast_xs.so fast_xs.o -L. -L/usr/local/lib -Wl,-R/usr/local/lib -L. -rdynamic -Wl,-export-dynamic -lpthread -lrt -ldl -lcrypt -lm -lc mkdir -p lib/i686-linux cp ext/fast_xs/fast_xs.so lib/i686-linux /usr/local/bin/ruby-1.9.1_rc2 -Ilib:test:lib/i686-linux "/usr/local/lib/ruby-1.9.1_rc2/1.9.1/rake/rake_test_loader.rb" "test/test_alter.rb" "test/test_parser.rb" "test/test_xml.rb" "test/test_preserved.rb" "test/test_builder.rb" "test/test_paths.rb" Loaded suite /usr/local/lib/ruby-1.9.1_rc2/1.9.1/rake/rake_test_loader Started ....E.E...E.EE*** glibc detected *** /usr/local/bin/ruby-1.9.1_rc2: munmap_chunk(): invalid pointer: 0x08458a38 *** ======= Backtrace: ========= /lib/tls/i686/cmov/libc.so.6(cfree+0x1bb)[0xb7e2a61b] /usr/local/bin/ruby-1.9.1_rc2(st_clear+0x3c)[0x80d973c] /usr/local/bin/ruby-1.9.1_rc2(st_free_table+0x12)[0x80d9782] /usr/local/bin/ruby-1.9.1_rc2[0x8064b7a] /usr/local/bin/ruby-1.9.1_rc2(rb_newobj+0x39)[0x8064f99] /usr/local/bin/ruby-1.9.1_rc2[0x80e011d] /usr/local/lib/ruby-1.9.1_rc2/gems/1.9.1/gems/hpricot-0.6.164/lib/i686-linux/hpricot_scan.so(hpricot_scan+0x78fc)[0xb7ba6aac] /usr/local/bin/ruby-1.9.1_rc2[0x8113976] /usr/local/bin/ruby-1.9.1_rc2[0x8115a3f] /usr/local/bin/ruby-1.9.1_rc2[0x811a23a] /usr/local/bin/ruby-1.9.1_rc2[0x811a864] /usr/local/bin/ruby-1.9.1_rc2(rb_yield+0x47)[0x811b167] /usr/local/bin/ruby-1.9.1_rc2(rb_ary_each+0x41)[0x812a851] /usr/local/bin/ruby-1.9.1_rc2[0x8113976] /usr/local/bin/ruby-1.9.1_rc2[0x8115a3f] /usr/local/bin/ruby-1.9.1_rc2[0x811a23a] /usr/local/bin/ruby-1.9.1_rc2[0x811a864] /usr/local/bin/ruby-1.9.1_rc2(rb_yield+0x47)[0x811b167] /usr/local/bin/ruby-1.9.1_rc2(rb_ary_each+0x41)[0x812a851] /usr/local/bin/ruby-1.9.1_rc2[0x8113976] /usr/local/bin/ruby-1.9.1_rc2[0x8115a3f] /usr/local/bin/ruby-1.9.1_rc2[0x811a23a] /usr/local/bin/ruby-1.9.1_rc2[0x811a864] /usr/local/bin/ruby-1.9.1_rc2(vm_invoke_proc+0x81)[0x811ac21] /usr/local/bin/ruby-1.9.1_rc2(rb_proc_call+0x47)[0x805f867] /usr/local/bin/ruby-1.9.1_rc2(rb_call_end_proc+0x1a)[0x805dd3a] /usr/local/bin/ruby-1.9.1_rc2(rb_exec_end_proc+0x12f)[0x805dadf] /usr/local/bin/ruby-1.9.1_rc2[0x805dbd7] /usr/local/bin/ruby-1.9.1_rc2(ruby_cleanup+0x8c)[0x805e50c] /usr/local/bin/ruby-1.9.1_rc2(ruby_run_node+0x4a)[0x805e6ea] /usr/local/bin/ruby-1.9.1_rc2(main+0x60)[0x805be10] /lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xe0)[0xb7dd1450] /usr/local/bin/ruby-1.9.1_rc2[0x805bd41] ======= Memory map: ======== 08048000-08197000 r-xp 00000000 08:01 3899659 /usr/local/bin/ruby-1.9.1_rc2 08197000-0819a000 rw-p 0014f000 08:01 3899659 /usr/local/bin/ruby-1.9.1_rc2 0819a000-08643000 rw-p 0819a000 00:00 0 [heap] b7a7c000-b7b0c000 rw-p b7b0e000 00:00 0 b7b9e000-b7baf000 r-xp 00000000 08:01 3993424 /usr/local/lib/ruby-1.9.1_rc2/gems/1.9.1/gems/hpricot-0.6.164/lib/i686-linux/hpricot_scan.so b7baf000-b7bb0000 rw-p 00011000 08:01 3993424 /usr/local/lib/ruby-1.9.1_rc2/gems/1.9.1/gems/hpricot-0.6.164/lib/i686-linux/hpricot_scan.so b7bb0000-b7bb2000 r-xp 00000000 08:01 3976509 /usr/local/lib/ruby-1.9.1_rc2/1.9.1/i686-linux/enc/encdb.so b7bb2000-b7bb3000 rw-p 00001000 08:01 3976509 /usr/local/lib/ruby-1.9.1_rc2/1.9.1/i686-linux/enc/encdb.so b7bb3000-b7bb4000 ---p b7bb3000 00:00 0 b7bb4000-b7c38000 rw-p b7bb4000 00:00 0 b7c38000-b7c3f000 r--s 00000000 08:01 3835065 /usr/lib/gconv/gconv-modules.cache b7c3f000-b7cc0000 r--p 00000000 08:01 3851102 /usr/lib/locale/ja_JP.utf8/LC_CTYPE b7cc0000-b7db9000 r--p 00000000 08:01 3833945 /usr/lib/locale/locale-archive b7db9000-b7dbb000 rw-p b7db9000 00:00 0 b7dbb000-b7f04000 r-xp 00000000 08:01 3710981 /lib/tls/i686/cmov/libc-2.7.so b7f04000-b7f05000 r--p 00149000 08:01 3710981 /lib/tls/i686/cmov/libc-2.7.so b7f05000-b7f07000 rw-p 0014a000 08:01 3710981 /lib/tls/i686/cmov/libc-2.7.so b7f07000-b7f0a000 rw-p b7f07000 00:00 0 b7f0a000-b7f2d000 r-xp 00000000 08:01 3710985 /lib/tls/i686/cmov/libm-2.7.so b7f2d000-b7f2f000 rw-p 00023000 08:01 3710985 /lib/tls/i686/cmov/libm-2.7.so b7f2f000-b7f38000 r-xp 00000000 08:01 3710983 /lib/tls/i686/cmov/libcrypt-2.7.so b7f38000-b7f3a000 rw-p 00008000 08:01 3710983 /lib/tls/i686/cmov/libcrypt-2.7.so b7f3a000-b7f61000 rw-p b7f3a000 00:00 0 b7f61000-b7f63000 r-xp 00000000 08:01 3710984 /lib/tls/i686/cmov/libdl-2.7.so b7f63000-b7f65000 rw-p 00001000 08:01 3710984 /lib/tls/i686/cmov/libdl-2.7.so b7f65000-b7f66000 rw-p b7f65000 00:00 0 b7f66000-b7f6d000 r-xp 00000000 08:01 3710997 /lib/tls/i686/cmov/librt-2.7.so b7f6d000-b7f6f000 rw-p 00006000 08:01 3710997 /lib/tls/i686/cmov/librt-2.7.so b7f6f000-b7f83000 r-xp 00000000 08:01 3710995 /lib/tls/i686/cmov/libpthread-2.7.so b7f83000-b7f85000 rw-p 00013000 08:01 3710995 /lib/tls/i686/cmov/libpthread-2.7.so b7f85000-b7f87000 rw-p b7f85000 00:00 0 b7f8b000-b7f95000 r-xp 00000000 08:01 1314305 /lib/libgcc_s.so.1 b7f95000-b7f96000 rw-p 0000a000 08:01 1314305 /lib/libgcc_s.so.1 b7f96000-b7f97000 r-xp 00000000 08:01 3993425 /usr/local/lib/ruby-1.9.1_rc2/gems/1.9.1/gems/hpricot-0.6.164/lib/i686-linux/fast_xs.so b7f97000-b7f98000 rw-p 00000000 08:01 3993425 /usr/local/lib/ruby-1.9.1_rc2/gems/1.9.1/gems/hpricot-0.6.164/lib/i686-linux/fast_xs.so b7f98000-b7f9a000 r-xp 00000000 08:01 3976525 /usr/local/lib/ruby-1.9.1_rc2/1.9.1/i686-linux/enc/trans/transdb.so b7f9a000-b7f9b000 rw-p 00001000 08:01 3976525 /usr/local/lib/ruby-1.9.1_rc2/1.9.1/i686-linux/enc/trans/transdb.so b7f9b000-b7f9d000 rw-p b7f9b000 00:00 0 b7f9d000-b7f9e000 r-xp b7f9d000 00:00 0 [vdso] b7f9e000-b7fb8000 r-xp 00000000 08:01 3525119 /lib/ld-2.7.so b7fb8000-b7fba000 rw-p 00019000 08:01 3525119 /lib/ld-2.7.so bf9fb000-bfa10000 rw-p bffeb000 00:00 0 [stack] Aborted rake aborted! Command failed with status (134): [/usr/local/bin/ruby-1.9.1_rc2 -Ilib:test:l...] (See full trace by running task with --trace) --- end --- I read stack trace. I think there are two causes in this bug. 1. hpricot bug I think this piece of bug trace is hpricot library bug. /usr/local/lib/ruby191/gems/1.9.1/gems/hpricot-0.6.164/lib/hpricot/parse.rb:68: [BUG] Segmentation fault I don't know this bug. sorry :( 2. ruby interpreter bug I think this piece of bug trace is ruby interpreter bug. /usr/local/lib/ruby191/gems/1.9.1/gems/hpricot-0.6.164/lib/hpricot/parse.rb:68: [BUG] object allocation during garbage collection phase When called rb_bug() in garbage_collection(), this bug trace seems to occur. The attached patch will fix the problem. Thanks. Index: gc.c =================================================================== --- gc.c (revision 21875) +++ gc.c (working copy) @@ -1026,7 +1026,7 @@ rb_objspace_t *objspace = &rb_objspace; #endif - if (during_gc) { + if (!dont_gc && during_gc) { dont_gc = 1; during_gc = 0; rb_bug("object allocation during garbage collection phase"); Index: vm_dump.c =================================================================== --- vm_dump.c (revision 21875) +++ vm_dump.c (working copy) @@ -570,6 +570,7 @@ { VALUE bt; + rb_gc_disable(); if (GET_THREAD()->vm) { int i; SDR(); @@ -610,4 +611,5 @@ } } #endif + rb_gc_enable(); } ---------------------------------------- http://redmine.ruby-lang.org/issues/show/1064 ---------------------------------------- http://redmine.ruby-lang.org