From: nobu.nokada@... Date: 2003-07-05T03:47:01+09:00 Subject: Re: warning in ruby extension eats memory Hi, At Sat, 5 Jul 2003 00:16:06 +0900, ts wrote: > >> #108454 0x080485f6 in main () > >> #108455 0x08048515 in _start () > > n> I can't get what you mean, these seem to be called normally. > > 108455 call ? I see. Didn't think you mean the level. > Try to reproduce the error and you'll see that the number of call is > less than 108455 when ruby is stopped by stack_check(). > > How ruby can make 108455 calls ? I got only 69440 calls until stack_check() failed, with ulimit 1000000. #0 rb_exc_raise (mesg=1075764192) at /home/nobu/src/ruby/1.8/eval.c:3922 #1 0x08068364 in stack_check () at /home/nobu/src/ruby/1.8/eval.c:4603 #2 0x08063318 in rb_call0 (klass=1075784832, recv=1075782312, id=7217, oid=3213763016, argc=1, argv=0xbf8e2430, body=0x401f2708, nosuper=1) at /home/nobu/src/ruby/1.8/eval.c:4853 #3 0x0805a264 in rb_call (klass=1075784832, recv=1075782312, mid=7217, argc=1, argv=0xbf8e2430, scope=1) at /home/nobu/src/ruby/1.8/eval.c:5105 #4 0x0805a40e in rb_funcall (recv=1075782312, mid=7217, n=1) at ruby.h:643 #5 0x08077f8c in io_write (io=1075782312, str=1076145056) at /home/nobu/src/ruby/1.8/io.c:419 #6 0x080683f7 in call_cfunc (func=0x8077ebc , recv=1075782312, len=-1081204280, argc=1, argv=0x8068352) at /home/nobu/src/ruby/1.8/eval.c:4751 (snip) #69434 0x40017afc in test_free (info=0x813d918) at test.c:11 #69435 0x080535b3 in ruby_finalize () at /home/nobu/src/ruby/1.8/eval.c:1332 #69436 0x0805368c in ruby_cleanup (ex=0) at /home/nobu/src/ruby/1.8/eval.c:1359 #69437 0x080537e0 in ruby_stop (ex=0) at /home/nobu/src/ruby/1.8/eval.c:1387 #69438 0x08053828 in ruby_run () at /home/nobu/src/ruby/1.8/eval.c:1399 #69439 0x080525fd in main (argc=4, argv=0xbffff6d4, envp=0xbffff6e8) at /home/nobu/src/ruby/1.8/main.c:50 #69440 0x400a9a07 in __libc_start_main () from /lib/i686/libc.so.6 > >> bad value from getrlimit() ???? > > n> On my machine, it was stopped by stack_check() in rb_call0(). > > This is this that I don't understand : ruby is not stopped by > stack_check() and can have 108455 call. This is the value of 108455 that I > find strange. stack_check() can't be perfect. I suspect Eugene might set the stack size unlimited. -- Nobu Nakada