Testunit-0.1.5 install failure (may be setup.rb)

[snip]

I’d love to know what the stack looks like when it hits that “too deep”
point.

Nathaniel

Well, I can’t get to anything detailed at the moment (trying to pretend
I’m actually a productive worker), but here is the output with warning
and debug turned on:

/usr/local/bin/ruby -wd setup.rb setup

···

setup.rb: entering setup phase…
—> packages
—> packages/runit-compat
—> lib
—> lib/runit
—> lib/runit/cui
<— lib/runit/cui
<— lib/runit
<— lib
<— packages/runit-compat
—> packages/testunit
—> lib
—> lib/test
—> lib/test/unit
—> lib/test/unit/ui
—> lib/test/unit/ui/console
<— lib/test/unit/ui/console
—> lib/test/unit/ui/fox
<— lib/test/unit/ui/fox
—> lib/test/unit/ui/gtk
Exception SystemStackError' at setup.rb:294 - stack level too deep setup failed Exception SystemStackError’ at setup.rb:721 - stack level too deep
Exception SystemStackError' at setup.rb:1045 - stack level too deep setup.rb:294:in dir?‘: stack level too deep (SystemStackError)
from setup.rb:305:in all_dirs' from setup.rb:305:in find_all’
from setup.rb:305:in each' from setup.rb:305:in find_all’
from setup.rb:305:in all_dirs' from setup.rb:304:in open’
from setup.rb:304:in all_dirs' from setup.rb:634:in traverse’
… 37 levels…
from setup.rb:711:in exectask' from setup.rb:902:in exectask’
from setup.rb:704:in `execute’
from setup.rb:1043


Brian Wisti (brian at coolnamehere dot com)
http://coolnamehere.com/

I figured out the problem. The default stacksize on Mac OS X is 512
kbytes. You can see this by running ‘limit stacksize’. This can be
changed by running ‘unlimit stacksize’. This gives a stacksize of
65536 kbytes (the system maximum). OS X sets the stacksize limit to
512 kbytes for every newly opened terminal.

Once I unlimited stacksize, I was able to complete the install process.

···

On Friday, December 20, 2002, at 07:30 PM, Brian Wisti wrote:

[snip]

I’d love to know what the stack looks like when it hits that “too
deep”
point.

Nathaniel

Well, I can’t get to anything detailed at the moment (trying to pretend
I’m actually a productive worker), but here is the output with warning
and debug turned on:

/usr/local/bin/ruby -wd setup.rb setup

setup.rb: entering setup phase…
—> packages
—> packages/runit-compat
—> lib
—> lib/runit
—> lib/runit/cui
<— lib/runit/cui
<— lib/runit
<— lib
<— packages/runit-compat
—> packages/testunit
—> lib
—> lib/test
—> lib/test/unit
—> lib/test/unit/ui
—> lib/test/unit/ui/console
<— lib/test/unit/ui/console
—> lib/test/unit/ui/fox
<— lib/test/unit/ui/fox
—> lib/test/unit/ui/gtk
Exception SystemStackError' at setup.rb:294 - stack level too deep setup failed Exception SystemStackError’ at setup.rb:721 - stack level too deep
Exception SystemStackError' at setup.rb:1045 - stack level too deep setup.rb:294:in dir?‘: stack level too deep (SystemStackError)
from setup.rb:305:in all_dirs' from setup.rb:305:in find_all’
from setup.rb:305:in each' from setup.rb:305:in find_all’
from setup.rb:305:in all_dirs' from setup.rb:304:in open’
from setup.rb:304:in all_dirs' from setup.rb:634:in traverse’
… 37 levels…
from setup.rb:711:in exectask' from setup.rb:902:in exectask’
from setup.rb:704:in `execute’
from setup.rb:1043


Brian Wisti (brian at coolnamehere dot com)
http://coolnamehere.com/

I figured out the problem. The default stacksize on Mac OS X is 512
kbytes. You can see this by running ‘limit stacksize’. This can be
changed by running ‘unlimit stacksize’. This gives a stacksize of
65536 kbytes (the system maximum). OS X sets the stacksize limit to
512 kbytes for every newly opened terminal.

Once I unlimited stacksize, I was able to complete the
install process.

Hmmm… so, is it a problem with OS X, setup.rb, Test::Unit’s use of
setup.rb, or all three? What’s the right longterm solution?

Of course, it should become a moot point in the 1.8 line, as Test::Unit
will come with the distribution itself, obviating the need for
installation.

Nathaniel

<:((><

···

Mark Wilson [mailto:mwilson13@cox.net] wrote:

RoleModel Software, Inc.
EQUIP VI

I don’t know about setup.rb or Test::Unit’s use of setup.rb (I will try
to educate myself on these topics). I think the stacksize limit that
causes the problem is a feature of Mac OS X and that it may also create
an issue for other FreeBSD based systems.

For a new process, including a terminal process, Mac OS X sets various
environment variables, including resource limits. I don’t know where
the values for these limits are stored (yet). Most of these limits
have a “soft limit” and a “hard limit”. The soft limit for stacksize
is 512 kilobytes (the minimum system block size). The stacksize soft
limit can be unlimited to the hard limit (65536 kbytes on my system).
If the “stack limit is reached, the process receives a segmentation
fault (SIGSEGV); if this signal is not caught by a handler using the
signal stack, this signal will kill the process.” See

http://www.osxfaq.com/man/2/getrlimit.ws

Presumably, an installation script could check the stack limit and
unlimit it if necessary.

···

On Saturday, December 28, 2002, at 07:53 PM, nathaniel@NOSPAMtalbott.ws wrote:

Mark Wilson [mailto:mwilson13@cox.net] wrote:

I figured out the problem. The default stacksize on Mac OS X is 512
kbytes. You can see this by running ‘limit stacksize’. This can be
changed by running ‘unlimit stacksize’. This gives a stacksize of
65536 kbytes (the system maximum). OS X sets the stacksize limit to
512 kbytes for every newly opened terminal.

Once I unlimited stacksize, I was able to complete the
install process.

Hmmm… so, is it a problem with OS X, setup.rb, Test::Unit’s use of
setup.rb, or all three? What’s the right longterm solution?

Of course, it should become a moot point in the 1.8 line, as Test::Unit
will come with the distribution itself, obviating the need for
installation.

Nathaniel

<:((><

RoleModel Software, Inc.
EQUIP VI