From: Eric Schwartz Date: 2003-11-17T10:24:15+09:00 Subject: Re: stack level too deep on ia64 Eric Schwartz writes: > I'm working on an ia64 box to develop a MySQL/Ruby app, and I'm > getting not very helpful SystemStackError traces: Okay, to follow up on my own post, I did this in irb: irb(main):001:0> begin irb(main):002:1* raise SystemStackError irb(main):003:1> rescue SystemStackError => sse irb(main):004:1> $sse = sse irb(main):005:1> end and played with $sse and found it has a backtrace() method. So on a wild guess, I tried: begin code_that_raises_sse() rescue SystemStackError => sse puts "Caught SystemStackError. Backtrace:" sse.backtrace.each { |line| puts line.to_s } puts "end of backtrace" end Unfortunately, all that shows is that the missing 19 lines are a perfectly ordinary backtrace that has a bunch of nested calls to a CGI object for output. This exact same code works fine on i386, leading me to believe this might be somehow related to the thread in: http://lists.debian.org/debian-powerpc/2003/debian-powerpc-200310/msg00057.html Specifically, this looks suspicious: "It's fine as long as the limit on the stacksize is <= 4194303 KiB, but dies instantly if the stack size is 4194304 KiB or higher. This is the point where more than 32 bits are needed to store an address." (in http://lists.debian.org/debian-powerpc/2003/debian-powerpc-200310/msg00070.html) I've tried setting the ulimit at 4194303 as suggested, but it still fails. Suggestions of how to approach this are welcome. $ ruby -v ruby 1.8.0 (2003-10-05) [ia64-linux] -=Eric -- Come to think of it, there are already a million monkeys on a million typewriters, and Usenet is NOTHING like Shakespeare. -- Blair Houghton.