Ruby hangs on OSX


I encountered a strange problem.

When running “ruby soduku_test.rb -n test_next_cell” the process
hangs and eats up all of the assigned CPU . I have no idea why that
is … I asked a friend to run it on windows and it does work there.
The program yield in a stack overflow.

I recently reinstalled my computer and used darwinports. I don’t
think that I’ve seen that problem before. I also reinstalled ruby
again, but with not much success and the same thing happens on
another Mac too.

Installing ruby the way I used to do it before, using the
hivelogic tutorial, also didn’t work.

That are the versions that fail:

ruby 1.8.5 (2006-08-25) [i686-darwin8.8.3] # darwin ports 1.3.1,
gcc 4.0
ruby 1.8.4 (2005-12-24) [i686-darwin8.8.3] # directly from the
sources (hivelogic tutorial)
ruby 1.8.2 (2004-12-25) [universal-darwin8.0] # comes with Tiger

Both Macs (MB C2D, MBP CD) are running OSX 10.4.8 with all updates.

uname -v:
Darwin Kernel Version 8.8.3: Wed Oct 18 21:57:10 PDT 2006;

A stack trace of the “working” run on Windows is below this mail.

I attached the code. Unfortunately I haven’t been able to isolate
the problem, but at least the code consistently fails.

Any ideas? Can somebody please try it out on another Mac? I will
also do that later on.



still not sure what the problem really is about. As nobody
answered I assume this is something with my two described fresh

Anyway … What I found is that reducing the stack size from 8192
to 4096 with “ulimit -s 4096” it works. I get the stacklevel too deep

Now I am wondering what the “right” value and why is nobody else
hitting that wall?


Btw. The strange behaviour is not limited to stack overflows.

I also see now an interesting style of error reporting:

localhost:~//code/sudoku mkamp$ ruby sudoku_tests.rb
sudoku_tests.rb:231: warning: parenthesize argument(s) for future
sudoku_tests.rb:232: warning: parenthesize argument(s) for future
Loaded suite sudoku_tests
…E…E…EEE.type: code total: 150, empty: 28, code: 103, comment: 19
type: test total: 286, empty: 59, code: 222, comment: 5
Finished in 0.052318 seconds.

^C 1) Error:
NameError: undefined local variable or method possible' for #<Sudoku: 0x30b16c> ./sudoku.rb:74:insolve’
sudoku_tests.rb:125:in `test_empty’

^C 2) Error:
NameError: undefined local variable or method possible' for #<Sudoku: 0x356018> ./sudoku.rb:74:insolve’
sudoku_tests.rb:119:in `test_michl’

^C 3) Error:
NameError: undefined local variable or method possible' for #<Sudoku: 0x1de8dc> ./sudoku.rb:74:insolve’
sudoku_tests.rb:15:in `test_solve’

^C 4) Error:
NameError: undefined local variable or method possible' for #<Sudoku: 0x1c5c10> ./sudoku.rb:74:insolve’
sudoku_tests.rb:262:in solve_and_compare' sudoku_tests.rb:97:intest_solve_with_canned_complex_solution’

^C 5) Error:
NameError: undefined local variable or method possible' for #<Sudoku: 0x327e98> ./sudoku.rb:74:insolve’
sudoku_tests.rb:262:in solve_and_compare' sudoku_tests.rb:47:intest_solve_with_canned_simple_solution’

14 tests, 50 assertions, 0 failures, 5 errors

I have to press CTRL+C many times to end the program otherwise it
hangs and eats my CPU.

Any ideas? Any?

Btw. I tried to recompile ruby without -O2 in the CFLAGS, but that
didn’t change a thing except a 50% performance penality.


Hi Mariano,

Interestingly, the program you’ve sent around works for me on my G4
Powerbook using Ruby 1.8.4 built using Fink (same stack size you quoted
as well) - however I see the same problems you’ve described when
running the script under Linux (Debian testing, Ruby 1.8.4) and on my
Intel iMac at home (same environment & compiler as the G4, just
different architecture).

Looks like it’s a cross platform problem. Anyone have any ideas what
might be wrong or what other info we could send in to help diagnose it



This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs