[MacRuby-devel] DRb problem (MacRuby 0.4)

Igor Anić igor.anic at gmail.com
Tue Jun 16 09:42:40 PDT 2009


I have a strange problem while trying to communicate from macruby to  
running drb process.
Only one request is passing, on second I'm getting error.
I tested same simple code in ruby 1.9.1 and Ruby 1.8.6 and there all  
works ok.
Server can be run with any version of Ruby, and everything works  
except when client is running with macruby.

Here is the sample code for client and server to reproduce error.


Sample server, returns new value for each call on increment:
------------------------
require 'drb'

class Incrementer

   def initialize
     @value = 0
   end

   def increment
     @value += 1
   end

end

service = DRb.start_service("druby://localhost:4242", Incrementer.new)
print "service started on port 4242\n"
DRb.thread.join
------------------------

Sample client, displays server value:
------------------------
require 'drb'
DRb.start_service
server = DRbObject.new_with_uri('druby://localhost:4242')
p server.increment #this line, works as expected
p server.increment #this line raises error
------------------------

And the error is:
------------------------
/Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1/ 
drb/drb.rb:961: [BUG] destination 0x7fff5fbfbe48 isn't in the auto zone
MacRuby version 0.4 (ruby 1.9.1) [universal-darwin9.0, x86_64]

-- stack frame ------------
0000 (0xc08000060): 00000004
0001 (0xc08000068): 00000000
0002 (0xc08000070): 00000004
0003 (0xc08000078): 00000000
0004 (0xc08000080): 8000c7de0
0005 (0xc08000088): 00000004
0006 (0xc08000090): 00000000
0007 (0xc08000098): 00000004
0008 (0xc080000a0): 100397ad0
0009 (0xc080000a8): 00000004
0010 (0xc080000b0): 00000000
0011 (0xc080000b8): 8000c7de0
0012 (0xc080000c0): 100397ad0
0013 (0xc080000c8): 8000d58a0
0014 (0xc080000d0): 00000004
0015 (0xc080000d8): 00000004
0016 (0xc080000e0): 00000004
0017 (0xc080000e8): 00000004
0018 (0xc080000f0): 00000004
0019 (0xc080000f8): 00000004
0020 (0xc08000100): 00000000
0021 (0xc08000108): 1003a7830
0022 (0xc08000110): 800316c80
0023 (0xc08000118): 00000004
0024 (0xc08000120): 00000004
0025 (0xc08000128): 00000004
0026 (0xc08000130): c080ffe58
0027 (0xc08000138): 00000004
0028 (0xc08000140): c08000100 (= 20)
0029 (0xc08000148): 1003ae6d0
0030 (0xc08000150): 800316c80
0031 (0xc08000158): 00000004
0032 (0xc08000160): 00000004
0033 (0xc08000168): 00000004
0034 (0xc08000170): 00000004
0035 (0xc08000178): c080ffd78
0036 (0xc08000180): 800388240
0037 (0xc08000188): 00000004
0038 (0xc08000190): c080ffd08
0039 (0xc08000198): 8000d5280
0040 (0xc080001a0): 00000004
0041 (0xc080001a8): c08000178 (= 35)
0042 (0xc080001b0): 800314c60
0043 (0xc080001b8): 00000004
0044 (0xc080001c0): c080ffc28
0045 (0xc080001c8): 8000e03c0
0046 (0xc080001d0): 00000004
0047 (0xc080001d8): c080001a8 (= 41)
0048 (0xc080001e0): 8000e03c0
0049 (0xc080001e8): 00000004
0050 (0xc080001f0): 00000000
0051 (0xc080001f8): 800311f60
0052 (0xc08000200): 00000004
0053 (0xc08000208): 00000000
0054 (0xc08000210): 10035afe0
0055 (0xc08000218): 8000d52c0
0056 (0xc08000220): 00000004
0057 (0xc08000228): 00000004
0058 (0xc08000230): 00000001
0059 (0xc08000238): 00000004
0060 (0xc08000240): 00000000 <- lfp <- dfp
-- control frame ----------
c:0016 p:---- s:0061 b:0061 l:000060 d:000060 CFUNC  :select
c:0015 p:0030 s:0054 b:0054 l:000053 d:000053 METHOD /Library/ 
Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1/drb/ 
drb.rb:961
c:0014 p:0017 s:0051 b:0051 l:000050 d:000050 METHOD /Library/ 
Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1/drb/ 
drb.rb:1212
c:0013 p:0036 s:0048 b:0048 l:000035 d:000047 BLOCK  /Library/ 
Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1/drb/ 
drb.rb:1168
c:0012 p:---- s:0047 b:0047 l:000046 d:000046 FINISH :method_added:
c:0011 p:---- s:0045 b:0045 l:000044 d:000044 CFUNC  :each
c:0010 p:0013 s:0042 b:0042 l:000035 d:000041 BLOCK  /Library/ 
Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1/drb/ 
drb.rb:1166
c:0009 p:0011 s:0039 b:0039 l:000038 d:000038 METHOD prelude.rb:8
c:0008 p:0011 s:0036 b:0036 l:000035 d:000035 METHOD /Library/ 
Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1/drb/ 
drb.rb:1163
c:0007 p:0015 s:0029 b:0029 l:000020 d:000028 BLOCK  /Library/ 
Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1/drb/ 
drb.rb:1092
c:0006 p:0026 s:0027 b:0027 l:000026 d:000026 METHOD /Library/ 
Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1/drb/ 
drb.rb:1110
c:0005 p:0090 s:0021 b:0021 l:000020 d:000020 METHOD /Library/ 
Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1/drb/ 
drb.rb:1091
c:0004 p:---- s:0011 b:0011 l:000010 d:000010 FINISH :p
c:0003 p:0066 s:0009 b:0007 l:000006 d:000006 TOP    test_client.rb:6
c:0002 p:---- s:0004 b:0004 l:000003 d:000003 FINISH :inherited:
c:0001 p:0000 s:0002 b:0002 l:000001 d:000001 TOP
---------------------------
DBG> : "/Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ 
ruby/1.9.1/drb/drb.rb:961:in `select'"
DBG> : "/Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ 
ruby/1.9.1/drb/drb.rb:961:in `alive?'"
DBG> : "/Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ 
ruby/1.9.1/drb/drb.rb:1212:in `alive?'"
DBG> : "/Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ 
ruby/1.9.1/drb/drb.rb:1168:in `block (2 levels) in open'"
DBG> : "/Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ 
ruby/1.9.1/drb/drb.rb:1166:in `each'"
DBG> : "/Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ 
ruby/1.9.1/drb/drb.rb:1166:in `block in open'"
DBG> : "prelude.rb:8:in `synchronize'"
DBG> : "/Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ 
ruby/1.9.1/drb/drb.rb:1163:in `open'"
DBG> : "/Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ 
ruby/1.9.1/drb/drb.rb:1092:in `block in method_missing'"
DBG> : "/Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ 
ruby/1.9.1/drb/drb.rb:1110:in `with_friend'"
DBG> : "/Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ 
ruby/1.9.1/drb/drb.rb:1091:in `method_missing'"
DBG> : "test_client.rb:6:in `<main>'"
-- backtrace of native function call (Use addr2line) --
0x10010f2c1
0x100029334
0x100029418
0x10003be45
0x10011043c
0x1000469fc
0x10010ada7
0x10010074f
0x1001056e2
0x10010d4a2
0x1000071c7
0x10010ada7
0x10010074f
0x1001056e2
0x100106c0a
0x10010719a
0x100109d2e
0x10010ac93
0x10010074f
0x1001056e2
0x10010596c
0x10002cd32
0x1000300f7
0x100000f1f
0x100000ea4
0x2
-------------------------------------------------------
Abort trap





Thanks in advance for any help on this.
Igor.






More information about the MacRuby-devel mailing list