I am trying to write a simple remote execution framework, and am running into a
DRb problem I can't seem to figure out. The system consists of a controller and
a number of clients; the controller sends commands to the clients (these
commands in turn will eventually talk to a server). The problem is that when I
make the same method call twice in a row I see the following error on the
controller side:

Terminal A: running the client:

lizzy:~/public_html/ruby/webrun% ./webrun-client.rb 
Starting WebRun service on localhost:12345
WebRunClient.add(u1)
users=[u1]
cmd=load_file

Terminal B: running the controller:

lizzy:~/public_html/ruby/webrun% ./webrun-control.rb
assigning proxy for localhost
#<UserPool:0x8174ba8 @userlist={"u1"=>#<User:0x8174b30 @client_class="Client_u1", @name="u1", @filename=nil, @thread=nil>}>
#<UserPool:0x8174234 @userlist={"u1"=>#<User:0x81741bc @client_class="Client_u1", @name="u1", @filename=nil, @thread=nil>}>
user u1 -> client localhost:12345
execute cmd load_file on client localhost:12345 for users [u1]

2nd call fails:
#<DRb::DRbUnknown:0x8172d44 @buf="\004\010o:\rUserPool\006:\016@userlist{\006\"\au1o:\tUser\n:\022@client_class\"\016Client_u1:\v@klassc\024User::Client_u1:\016@filename\"\fproc.rb:\f@thread0:\n@name\"\au1", @name="User::Client_u1">
#<DRb::DRbUnknown:0x8172060 @buf="\004\010o:\rUserPool\006:\016@userlist{\006\"\au1o:\tUser\n:\022@client_class\"\016Client_u1:\v@klassc\024User::Client_u1:\016@filename\"\fproc.rb:\f@thread0:\n@name\"\au1", @name="User::Client_u1">
./webrun.rb:29:in `has_user?': undefined method `has_user?' for #<DRb::DRbUnknown:0x81719d0> (NoMethodError)
        from ./webrun.rb:82:in `where_is_user'
        from ./webrun.rb:80:in `each'
        from ./webrun.rb:75:in `each'
        from ./webrun.rb:75:in `each'
        from ./webrun.rb:87:in `where_is_user'
        from ./webrun.rb:138:in `execute_each_user'
        from ./webrun.rb:137:in `each'
        from ./webrun.rb:137:in `execute_each_user'
        from ./webrun-control.rb:17

The code is at:

	http://lizzy.dyndns.org/~jos/ruby/webrun/webrun.rb
	http://lizzy.dyndns.org/~jos/ruby/webrun/webrun-client.rb
	http://lizzy.dyndns.org/~jos/ruby/webrun/webrun-control.rb
	http://lizzy.dyndns.org/~jos/ruby/webrun/proc.rb

Does anybody have any idea what I could be doing wrong or how to debug this
problem?

Thanks,
--
Jos Backus                       _/  _/_/_/      Sunnyvale, CA
                                _/  _/   _/
                               _/  _/_/_/
                          _/  _/  _/    _/
jos at catnook.com        _/_/   _/_/_/          require 'std/disclaimer'