Hello, We are working on a centralized report generating project, which calls for data processing on different servers and then centralizes the reports into a single project. What we would like to do is have a Monitor BackgrounDRb worker call another BackgrounDRb worker to process data on a different server, and then have our Monitor Worker collect the data and then store it according to our specs (all rails workers). We are doing some initial testing and trying to get your basic Hello World program working, so we set up two BackgrounDRb servers on the same server, and changed the MiddleMan object to the hash MiddleMen which has references to both servers. From the main Rails application we are able to access either BackgrounDRb server from the main rails application and launch workers without issue. However, when we try and reference a worker from another we get a RangeError telling us that Ruby is trying to access a recycled object (My guess is that its asking for junk Memory Address). Here''s the relevant code and error. The exception is being thrown on the last line of the code: producer_args = {:report_id => report.id, :args => YAML.load(report.args)} producer_args.merge!(:debug_mode => true) if @debug_mode task.middleman.new_worker(:class => "#{task.worker_name}_#{TaskManager::Task::WORKER_POSTFIX}".to_sym, :job_key => producer_key, :args => producer_args ) producer = task.middleman.worker(producer_key) # Logfile created on Fri Nov 09 17:30:03 -0500 2007 by logger.rb/1.5.2.9 20071109-17:30:03 (27237) Starting WorkerLogger 20071109-17:30:04 (27238) In ResultsWorker 20071109-17:30:20 (27238) Work started 20071109-17:30:20 (27238) 0xdba48138 is recycled object - (RangeError) 20071109-17:30:20 (27238) /usr/local/lib/ruby/1.8/drb/drb.rb:375:in `_id2ref'' 20071109-17:30:20 (27238) /usr/local/lib/ruby/1.8/drb/drb.rb:375:in `to_obj'' 20071109-17:30:20 (27238) /usr/local/lib/ruby/1.8/drb/drb.rb:1402:in `to_obj'' 20071109-17:30:20 (27238) /usr/local/lib/ruby/1.8/drb/drb.rb:1704:in `to_obj'' 20071109-17:30:20 (27238) /usr/local/lib/ruby/1.8/drb/drb.rb:1005:in `_load'' 20071109-17:30:20 (27238) /usr/local/lib/ruby/1.8/drb/drb.rb:585:in `load'' 20071109-17:30:20 (27238) /usr/local/lib/ruby/1.8/drb/drb.rb:585:in `load'' 20071109-17:30:20 (27238) /usr/local/lib/ruby/1.8/thread.rb:33:in `exclusive'' 20071109-17:30:20 (27238) /usr/local/lib/ruby/1.8/drb/drb.rb:581:in `load'' 20071109-17:30:20 (27238) /usr/local/lib/ruby/1.8/drb/drb.rb:633:in `recv_reply'' 20071109-17:30:20 (27238) /usr/local/lib/ruby/1.8/drb/drb.rb:921:in `recv_reply'' 20071109-17:30:20 (27238) /usr/local/lib/ruby/1.8/drb/drb.rb:1195:in `send_message'' 20071109-17:30:20 (27238) /usr/local/lib/ruby/1.8/drb/drb.rb:1086:in `method_missing'' 20071109-17:30:20 (27238) /usr/local/lib/ruby/1.8/drb/drb.rb:1170:in `open'' 20071109-17:30:20 (27238) /usr/local/lib/ruby/1.8/drb/drb.rb:1085:in `method_missing'' 20071109-17:30:20 (27238) /usr/local/lib/ruby/1.8/drb/drb.rb:1107:in `with_friend'' 20071109-17:30:20 (27238) /usr/local/lib/ruby/1.8/drb/drb.rb:1084:in `method_missing'' 20071109-17:30:20 (27238) /usr/local/hydra.mh2onyc.com/current/lib/workers/task_monitoring_worker. rb:29:in `do_work'' 20071109-17:30:20 (27238) /usr/local/hydra.mh2onyc.com/current/vendor/plugins/backgroundrb/server/ lib/backgroundrb/worker.rb:56:in `send'' 20071109-17:30:20 (27238) /usr/local/hydra.mh2onyc.com/current/vendor/plugins/backgroundrb/server/ lib/backgroundrb/worker.rb:56:in `work_thread'' 20071109-17:30:20 (27238) /usr/local/hydra.mh2onyc.com/current/vendor/plugins/backgroundrb/server/ lib/backgroundrb/worker.rb:70:in `call'' 20071109-17:30:20 (27238) /usr/local/hydra.mh2onyc.com/current/vendor/plugins/backgroundrb/server/ lib/backgroundrb/worker.rb:70:in `work_thread'' 20071109-17:30:20 (27238) /usr/local/hydra.mh2onyc.com/current/vendor/plugins/backgroundrb/server/ lib/backgroundrb/worker.rb:68:in `initialize'' 20071109-17:30:20 (27238) /usr/local/hydra.mh2onyc.com/current/vendor/plugins/backgroundrb/server/ lib/backgroundrb/worker.rb:68:in `new'' 20071109-17:30:20 (27238) /usr/local/hydra.mh2onyc.com/current/vendor/plugins/backgroundrb/server/ lib/backgroundrb/worker.rb:68:in `work_thread'' 20071109-17:30:20 (27238) /usr/local/lib/ruby/gems/1.8/gems/slave-1.2.1/lib/slave.rb:138:in `send'' 20071109-17:30:20 (27238) /usr/local/lib/ruby/gems/1.8/gems/slave-1.2.1/lib/slave.rb:138:in `method_missing'' 20071109-17:30:20 (27238) /usr/local/lib/ruby/gems/1.8/gems/slave-1.2.1/lib/slave.rb:135:in `ex'' 20071109-17:30:20 (27238) /usr/local/lib/ruby/1.8/sync.rb:229:in `synchronize'' 20071109-17:30:20 (27238) /usr/local/lib/ruby/gems/1.8/gems/slave-1.2.1/lib/slave.rb:135:in `ex'' 20071109-17:30:20 (27238) /usr/local/lib/ruby/gems/1.8/gems/slave-1.2.1/lib/slave.rb:138:in `method_missing'' 20071109-17:30:20 (27238) /usr/local/lib/ruby/1.8/drb/drb.rb:1555:in `__send__'' 20071109-17:30:20 (27238) /usr/local/lib/ruby/1.8/drb/drb.rb:1555:in `perform_without_block'' 20071109-17:30:20 (27238) /usr/local/lib/ruby/1.8/drb/drb.rb:1515:in `perform'' 20071109-17:30:20 (27238) /usr/local/lib/ruby/1.8/drb/drb.rb:1589:in `main_loop'' 20071109-17:30:20 (27238) /usr/local/lib/ruby/1.8/drb/drb.rb:1585:in `loop'' 20071109-17:30:20 (27238) /usr/local/lib/ruby/1.8/drb/drb.rb:1585:in `main_loop'' 20071109-17:30:20 (27238) /usr/local/lib/ruby/1.8/drb/drb.rb:1581:in `start'' 20071109-17:30:20 (27238) /usr/local/lib/ruby/1.8/drb/drb.rb:1581:in `main_loop'' 20071109-17:30:20 (27238) /usr/local/lib/ruby/1.8/drb/drb.rb:1430:in `run'' 20071109-17:30:20 (27238) /usr/local/lib/ruby/1.8/drb/drb.rb:1427:in `start'' 20071109-17:30:20 (27238) /usr/local/lib/ruby/1.8/drb/drb.rb:1427:in `run'' 20071109-17:30:20 (27238) /usr/local/lib/ruby/1.8/drb/drb.rb:1347:in `initialize'' 20071109-17:30:20 (27238) /usr/local/lib/ruby/1.8/drb/drb.rb:1627:in `new'' 20071109-17:30:20 (27238) /usr/local/lib/ruby/1.8/drb/drb.rb:1627:in `start_service'' 20071109-17:30:20 (27238) /usr/local/lib/ruby/gems/1.8/gems/slave-1.2.1/lib/slave.rb:396:in `initialize'' 20071109-17:30:20 (27238) /usr/local/lib/ruby/gems/1.8/gems/slave-1.2.1/lib/slave.rb:391:in `times'' 20071109-17:30:20 (27238) /usr/local/lib/ruby/gems/1.8/gems/slave-1.2.1/lib/slave.rb:391:in `initialize'' 20071109-17:30:20 (27238) /usr/local/hydra.mh2onyc.com/current/vendor/plugins/backgroundrb/server/ lib/backgroundrb/middleman.rb:210:in `new'' 20071109-17:30:20 (27238) /usr/local/hydra.mh2onyc.com/current/vendor/plugins/backgroundrb/server/ lib/backgroundrb/middleman.rb:210:in `new_worker'' 20071109-17:30:20 (27238) /usr/local/hydra.mh2onyc.com/current/vendor/plugins/backgroundrb/server/ lib/backgroundrb/thread_pool.rb:36:in `dispatch'' 20071109-17:30:20 (27238) /usr/local/hydra.mh2onyc.com/current/vendor/plugins/backgroundrb/server/ lib/backgroundrb/thread_pool.rb:22:in `initialize'' 20071109-17:30:20 (27238) /usr/local/hydra.mh2onyc.com/current/vendor/plugins/backgroundrb/server/ lib/backgroundrb/thread_pool.rb:22:in `new'' 20071109-17:30:20 (27238) /usr/local/hydra.mh2onyc.com/current/vendor/plugins/backgroundrb/server/ lib/backgroundrb/thread_pool.rb:22:in `dispatch'' 20071109-17:30:20 (27238) /usr/local/hydra.mh2onyc.com/current/vendor/plugins/backgroundrb/server/ lib/backgroundrb/middleman.rb:199:in `new_worker'' 20071109-17:30:20 (27238) /usr/local/lib/ruby/1.8/drb/drb.rb:1555:in `__send__'' 20071109-17:30:20 (27238) /usr/local/lib/ruby/1.8/drb/drb.rb:1555:in `perform_without_block'' 20071109-17:30:20 (27238) /usr/local/lib/ruby/1.8/drb/drb.rb:1515:in `perform'' 20071109-17:30:20 (27238) /usr/local/lib/ruby/1.8/drb/drb.rb:1589:in `main_loop'' 20071109-17:30:20 (27238) /usr/local/lib/ruby/1.8/drb/drb.rb:1585:in `loop'' 20071109-17:30:20 (27238) /usr/local/lib/ruby/1.8/drb/drb.rb:1585:in `main_loop'' 20071109-17:30:20 (27238) /usr/local/lib/ruby/1.8/drb/drb.rb:1581:in `start'' 20071109-17:30:20 (27238) /usr/local/lib/ruby/1.8/drb/drb.rb:1581:in `main_loop'' 20071109-17:30:20 (27238) /usr/local/lib/ruby/1.8/drb/drb.rb:1430:in `run'' 20071109-17:30:20 (27238) /usr/local/lib/ruby/1.8/drb/drb.rb:1427:in `start'' 20071109-17:30:20 (27238) /usr/local/lib/ruby/1.8/drb/drb.rb:1427:in `run'' 20071109-17:30:20 (27238) /usr/local/lib/ruby/1.8/drb/drb.rb:1347:in `initialize'' 20071109-17:30:20 (27238) /usr/local/lib/ruby/1.8/drb/drb.rb:1627:in `new'' 20071109-17:30:20 (27238) /usr/local/lib/ruby/1.8/drb/drb.rb:1627:in `start_service'' 20071109-17:30:20 (27238) /usr/local/hydra.mh2onyc.com/current/vendor/plugins/backgroundrb/server/ lib/backgroundrb_server.rb:316:in `run'' 20071109-17:30:20 (27238) /usr/local/lib/ruby/gems/1.8/gems/daemons-1.0.7/lib/daemons/application. rb:194:in `call'' 20071109-17:30:20 (27238) /usr/local/lib/ruby/gems/1.8/gems/daemons-1.0.7/lib/daemons/application. rb:194:in `start_proc'' 20071109-17:30:20 (27238) /usr/local/lib/ruby/gems/1.8/gems/daemons-1.0.7/lib/daemons/daemonize.rb :192:in `call'' 20071109-17:30:20 (27238) /usr/local/lib/ruby/gems/1.8/gems/daemons-1.0.7/lib/daemons/daemonize.rb :192:in `call_as_daemon'' 20071109-17:30:20 (27238) /usr/local/lib/ruby/gems/1.8/gems/daemons-1.0.7/lib/daemons/application. rb:198:in `start_proc'' 20071109-17:30:20 (27238) /usr/local/lib/ruby/gems/1.8/gems/daemons-1.0.7/lib/daemons/application. rb:234:in `start'' 20071109-17:30:20 (27238) /usr/local/lib/ruby/gems/1.8/gems/daemons-1.0.7/lib/daemons/controller.r b:69:in `run'' 20071109-17:30:20 (27238) /usr/local/lib/ruby/gems/1.8/gems/daemons-1.0.7/lib/daemons.rb:185:in `run_proc'' 20071109-17:30:20 (27238) /usr/local/lib/ruby/gems/1.8/gems/daemons-1.0.7/lib/daemons/cmdline.rb:1 05:in `call'' 20071109-17:30:20 (27238) /usr/local/lib/ruby/gems/1.8/gems/daemons-1.0.7/lib/daemons/cmdline.rb:1 05:in `catch_exceptions'' 20071109-17:30:20 (27238) /usr/local/lib/ruby/gems/1.8/gems/daemons-1.0.7/lib/daemons.rb:184:in `run_proc'' 20071109-17:30:20 (27238) /usr/local/hydra.mh2onyc.com/current/vendor/plugins/backgroundrb/server/ lib/backgroundrb_server.rb:302:in `run'' 20071109-17:30:20 (27238) script/backgroundrb:29 -------------- next part -------------- An HTML attachment was scrubbed... URL: http://rubyforge.org/pipermail/backgroundrb-devel/attachments/20071112/be402b46/attachment-0001.html