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