[#36711] [Ruby 1.9 - Bug #4821][Open] Random Segfaults (in start_thread?) — Ivan Bortko <b2630639@...>

22 messages 2011/06/03

[#36730] [Ruby 1.9 - Feature #4824][Open] Provide method Kernel#executed? — Lazaridis Ilias <ilias@...>

56 messages 2011/06/04

[#36750] [Ruby 1.9 - Feature #4830][Open] Provide Default Variables for Array#each and other iterators — Lazaridis Ilias <ilias@...>

24 messages 2011/06/05

[#36785] [Ruby 1.9 - Feature #4840][Open] Allow returning from require — Rodrigo Rosenfeld Rosas <rr.rosas@...>

53 messages 2011/06/06
[#36811] Re: [Ruby 1.9 - Feature #4840][Open] Allow returning from require — Yusuke ENDOH <mame@...> 2011/06/07

Hello,

[#36799] [Ruby 1.9 - Feature #4845][Open] Provide Class#cb_object_instantiated_from_literal(object) — Lazaridis Ilias <ilias@...>

11 messages 2011/06/06

[#36834] [Ruby 1.9 - Feature #3905] rb_clear_cache_by_class() called often during GC for non-blocking I/O — Charles Nutter <headius@...>

10 messages 2011/06/08
[#36860] Re: [Ruby 1.9 - Feature #3905] rb_clear_cache_by_class() called often during GC for non-blocking I/O — Eric Wong <normalperson@...> 2011/06/08

Charles Nutter <headius@headius.com> wrote:

[#36863] Object#trust vs Object#taint — Aaron Patterson <aaron@...>

Hi,

16 messages 2011/06/08
[#36866] Re: Object#trust vs Object#taint — Yukihiro Matsumoto <matz@...> 2011/06/08

Hi,

[#36873] Re: Object#trust vs Object#taint — Aaron Patterson <aaron@...> 2011/06/09

On Thu, Jun 09, 2011 at 07:49:06AM +0900, Yukihiro Matsumoto wrote:

[#37071] [Ruby 1.9 - Feature #4877][Open] Unify Variable Expansion within Strings — Lazaridis Ilias <ilias@...>

12 messages 2011/06/12

[#37106] ruby core tutorials location — Roger Pack <rogerdpack2@...>

Hello all.

10 messages 2011/06/13
[#37107] Re: ruby core tutorials location — Jon <jon.forums@...> 2011/06/13

> Hello all.

[#37115] Re: ruby core tutorials location — Roger Pack <rogerdpack2@...> 2011/06/13

> Rather than adding links to source code, I would prefer the wikibooks link and others under a new Tutorials section of http://www.ruby-lang.org/en/documentation/ as well as adding http://ruby.runpaint.org/ to the existing Getting Started section.

[#37117] Re: ruby core tutorials location — Jon <jon.forums@...> 2011/06/13

> > Rather than adding links to source code, I would prefer the wikibooks link and others under a new Tutorials section of http://www.ruby-lang.org/en/documentation/ as well as adding http://ruby.runpaint.org/ to the existing Getting Started section.

[#37128] Re: ruby core tutorials location — Roger Pack <rogerdpack2@...> 2011/06/14

> I like what you're trying to do and see how great that tutorial connection from rdoc/yard could be, say, mixing with existing ruby-doc.org and rubydoc.info. ut I question embedding source links to info in which the info can easily grow outdated or abandoned as time passes. I also question the ongoing maintenance burdens.

[#37137] Re: ruby core tutorials location — Jon <jon.forums@...> 2011/06/14

> > I like what you're trying to do and see how great that tutorial connection from rdoc/yard could be, say, mixing with existing ruby-doc.org and rubydoc.info. ut I question embedding source links to info in which the info can easily grow outdated or abandoned as time passes. I also question the ongoing maintenance burdens.

[#37164] [Ruby 1.9 - Feature #4890][Open] Enumerable#lazy — Yutaka HARA <redmine@...>

30 messages 2011/06/16

[#37170] [Ruby 1.9 - Bug #4893][Open] Literal Instantiation breaks Object Model — Lazaridis Ilias <ilias@...>

61 messages 2011/06/16

[#37207] [Ruby 1.9 - Feature #4897][Open] Define Math::TAU and BigMath.TAU. The "true" circle constant, Tau=2*Pi. See http://tauday.com/ — Simon Baird <simon.baird@...>

43 messages 2011/06/17

[#37286] [Ruby 1.9 - Bug #4916][Open] [BUG] Segmentation fault - dyld: lazy symbol binding failed: Symbol not found: _ASN1_put_eoc — Hiroshi NAKAMURA <nakahiro@...>

9 messages 2011/06/22

[#37324] [Ruby 1.9 - Bug #4923][Open] [ext/openssl] test_ssl.rb: test_client_auth fails — Martin Bosslet <Martin.Bosslet@...>

19 messages 2011/06/23

[#37576] [Ruby 1.9 - Feature #4938][Open] Add Random.bytes [patch] — Marc-Andre Lafortune <ruby-core@...>

13 messages 2011/06/27

[#37612] [Ruby 1.9 - Bug #4941][Open] cannot load such file -- rubygems.rb (LoadError) — Lazaridis Ilias <ilias@...>

25 messages 2011/06/28

[ruby-core:37476] [Ruby 1.9 - Bug #4409] DRb: discrepency between DRb.here? and DRb.uri leads to failure to dereference a DrbObject

From: Hiroshi NAKAMURA <nakahiro@...>
Date: 2011-06-26 09:41:45 UTC
List: ruby-core #37476
Issue #4409 has been updated by Hiroshi NAKAMURA.

Target version set to 1.9.3


----------------------------------------
Bug #4409: DRb: discrepency between DRb.here? and DRb.uri leads to failure to dereference a DrbObject
http://redmine.ruby-lang.org/issues/4409

Author: Nicolas Bondoux
Status: Assigned
Priority: Normal
Assignee: Masatoshi Seki
Category: lib
Target version: 1.9.3
ruby -v: ruby 1.9.2p0 (2010-08-18 revision 29036) [i486-linux]


=begin
 When a reference on a local object is sent back by a client to a server, it may not be recognised as a local object during marshalling:
 An object instance being sent as a reference is wrapped in a DRbObject built by make_proxy with DRbObject.new(obj); the DRbObject's uri will be the uri returned by DRb::uri.
 When this reference is sent back, DRbObject::_load checks if it matches uri of current server with DRb::here? method.
 
 The problem is that DRb.here? checks that a DRbObject uri is the same as the uri which was used by current DRbServer at his creation, while DRb.uri will return an uri created from the local socket from current thread's connection.
 
 So, when a DRbObject it sent back, it may not be recognized as referencing a local object
 
 Fixing DRb.here? so that it compares with the uri returned by DRb.uri should be enough to quick fix this problem, and seems safe to me.
 (I call it a quick fix because I am sure that even with this change, it is possible to build some less realistics cases with the same kind of problem, due to the fact that a same reference may be valid or not depending which client sent it back ...)
 
 
 Here is a very simple proof of concept:
 The server:
 
 #!/usr/bin/ruby
 require 'drb'
 class A
   include DRb::DRbUndumped
 end
 
 class TheServer
   include DRb::DRbUndumped
   def initialize
     @a = A.new
   end
 
   def get_a
     @a
   end
 
   def is_a(iA)
     puts "inside is_a: current DRb.uri:#{DRb.uri}; iA.class = #{iA.class} #{iA.__drburi if DRb::DRbObject === iA}"
     @a.eql? iA
   end
   
   def getToken
     retVal = @@token.clone
     @@token.inc
     return retVal
   end
   
 end
 
 theServer = TheServer.new
 DRb.start_service(nil,theServer)
 puts "DRb.uri just after start_service: #{DRb.uri}"
 DRb.thread.join
 
 
 #############
 The client:
 
 #!/usr/bin/ruby
 require 'drb'
 
 
 theServer = DRb::DRbObject.new(nil,ARGV.shift)
 
 a = theServer.get_a
 puts "a.__drburi == #{a.__drburi}"
 puts "theServer.is_a(a) == #{theServer.is_a(a)}"
 
 
 #############
 the outputs:
 server side:
 DRb.uri just after start_service: druby://Venus:60106
 inside is_a: current DRb.uri:druby://127.0.0.1:60106; iA.class = DRb::DRbObject druby://127.0.0.1:60106
 
 
 client side:
 a.__drburi == druby://127.0.0.1:60106
 theServer.is_a(a) == false
 
 
 Cheers,
 
 Nicolas
=end



-- 
http://redmine.ruby-lang.org

In This Thread

Prev Next