nobu.nokada / softhome.net wrote:

> This is strange; rb_deferr is hooked by $deferr and should
> never be GC'ed.
> 
> 
>>The question is: why I experience this problem but others do not, and 
>>how to solve it?
> 
> 
> Try:
> 
> 1. stop at ruby_exec().
> 2. put watchpoint at ((struct RFile *)rb_deferr)->flags to
>    check when it'll be clobbered.
I'm sorry for late response.
Nobu, you are right I have my ulimit set to unlimited and here is my gdb 
session:
(gdb) c
Continuing.
Loaded suite test
Started

Finished in 0.003058 seconds.

0 tests, 0 assertions, 0 failures, 0 errors
Hardware watchpoint 2: (*(struct RFile *) rb_deferr)->basic->flags

Old value = 14
New value = 0
rb_gc_call_finalizer_at_exit () at gc.c:1598
1598                    rb_io_fptr_finalize(RANY(p)->as.file.fptr);
(gdb) bt
#0  rb_gc_call_finalizer_at_exit () at gc.c:1598
#1  0x2808af93 in ruby_finalize () at eval.c:1333
#2  0x2808b0a0 in ruby_cleanup (ex=0) at eval.c:1360
#3  0x2808b1af in ruby_stop (ex=0) at eval.c:1388
#4  0x2808b206 in ruby_run () at eval.c:1400
#5  0x080485f6 in main (argc=2, argv=0xbfbffbf0, envp=0xbfbffbfc) at 
main.c:50
#6  0x08048515 in _start

-- 
Eugene Scripnik
IT Group
Software Architect
Tel./Fax +380 (372) 58-43-10
email: Eugene.Scripnik / itgrp.net
http://www.itgrp.net/