[Backgroundrb-devel] backgroundrb and REXML issue

simon.wilkinson at 434wireless.com simon.wilkinson at 434wireless.com
Mon Apr 23 13:42:06 EDT 2007


Hi,

I have an application that receives XML files, and then hands each one
off to a backgroundrb worker to parse and store the info.  Everything
was working, until I needed to support a larger character set.  So I
added the following to the top of my XML files: <?xml version="1.0"
encoding="ISO-8859-1"?>

Adding this worked fine when I tested it without using backgroundrb.
That is, when parsing within the main application, I get the expected
behaviour.  However, when I try to hand it off to a worker, I get the
following error in backgroundrb.log:

20070423-13:36:41 (8456) Connection reset by peer -
(DRb::DRbConnError)
20070423-13:36:41 (8456) /usr/lib/ruby/1.8/drb/drb.rb:563:in `read'
20070423-13:36:41 (8456) /usr/lib/ruby/1.8/drb/drb.rb:563:in `load'
20070423-13:36:41 (8456) /usr/lib/ruby/1.8/drb/drb.rb:629:in
`recv_reply'
20070423-13:36:41 (8456) /usr/lib/ruby/1.8/drb/drb.rb:918:in
`recv_reply'
20070423-13:36:41 (8456) /usr/lib/ruby/1.8/drb/drb.rb:1192:in
`send_message'
20070423-13:36:41 (8456) /usr/lib/ruby/1.8/drb/drb.rb:1083:in
`method_missing'
20070423-13:36:41 (8456) /usr/lib/ruby/1.8/drb/drb.rb:1167:in `open'
20070423-13:36:41 (8456) /usr/lib/ruby/1.8/drb/drb.rb:1082:in
`method_missing'
20070423-13:36:41 (8456) /usr/lib/ruby/1.8/drb/drb.rb:1100:in
`with_friend'
20070423-13:36:41 (8456) /usr/lib/ruby/1.8/drb/drb.rb:1081:in
`method_missing'
20070423-13:36:41 (8456) /usr/lib/ruby/1.8/drb/drb.rb:1069:in
`respond_to?'
20070423-13:36:41 (8456) /usr/lib/ruby/1.8/rexml/xpath_parser.rb:
205:in `expr'
20070423-13:36:41 (8456) /usr/lib/ruby/1.8/rexml/xpath_parser.rb:
203:in `expr'
20070423-13:36:41 (8456) /usr/lib/ruby/1.8/rexml/xpath_parser.rb:
125:in `match'
20070423-13:36:41 (8456) /usr/lib/ruby/1.8/rexml/xpath_parser.rb:56:in
`parse'
20070423-13:36:41 (8456) /usr/lib/ruby/1.8/rexml/xpath.rb:53:in `each'
20070423-13:36:41 (8456) /usr/local/src/rails/434Wireless/lib/workers/
parser_worker.rb:376:in `do_work'
20070423-13:36:41 (8456) /usr/local/src/rails/434Wireless/vendor/
plugins/backgroundrb/server/lib/backgroundrb/worker.rb:55:in
`work_thread'
20070423-13:36:41 (8456) /usr/local/src/rails/434Wireless/vendor/
plugins/backgroundrb/server/lib/backgroundrb/worker.rb:69:in
`work_thread'
20070423-13:36:41 (8456) /usr/local/src/rails/434Wireless/vendor/
plugins/backgroundrb/server/lib/backgroundrb/worker.rb:67:in
`work_thread'
20070423-13:36:41 (8456) /usr/lib/ruby/1.8/drb/drb.rb:1552:in
`perform_without_block'
20070423-13:36:41 (8456) /usr/lib/ruby/1.8/drb/drb.rb:1512:in
`perform'
20070423-13:36:41 (8456) /usr/lib/ruby/1.8/drb/drb.rb:1586:in
`main_loop'
20070423-13:36:41 (8456) /usr/lib/ruby/1.8/drb/drb.rb:1582:in
`main_loop'
20070423-13:36:41 (8456) /usr/lib/ruby/1.8/drb/drb.rb:1578:in
`main_loop'
20070423-13:36:41 (8456) /usr/lib/ruby/1.8/drb/drb.rb:1427:in `run'
20070423-13:36:41 (8456) /usr/lib/ruby/1.8/drb/drb.rb:1424:in `run'
20070423-13:36:41 (8456) /usr/lib/ruby/1.8/drb/drb.rb:1344:in
`initialize'
20070423-13:36:41 (8456) /usr/lib/ruby/1.8/drb/drb.rb:1624:in
`start_service'
20070423-13:36:41 (8456) /usr/lib/ruby/gems/1.8/gems/slave-1.2.0/lib/
slave.rb:396:in `initialize'
20070423-13:36:41 (8456) /usr/lib/ruby/gems/1.8/gems/slave-1.2.0/lib/
slave.rb:391:in `initialize'
20070423-13:36:41 (8456) /usr/local/src/rails/434Wireless/vendor/
plugins/backgroundrb/server/lib/backgroundrb/middleman.rb:210:in
`new_worker'
20070423-13:36:41 (8456) /usr/local/src/rails/434Wireless/vendor/
plugins/backgroundrb/server/lib/backgroundrb/thread_pool.rb:36:in
`dispatch'
20070423-13:36:41 (8456) /usr/local/src/rails/434Wireless/vendor/
plugins/backgroundrb/server/lib/backgroundrb/thread_pool.rb:22:in
`dispatch'
20070423-13:36:41 (8456) /usr/local/src/rails/434Wireless/vendor/
plugins/backgroundrb/server/lib/backgroundrb/middleman.rb:199:in
`new_worker'
20070423-13:36:41 (8456) /usr/lib/ruby/1.8/drb/drb.rb:1552:in
`perform_without_block'
20070423-13:36:41 (8456) /usr/lib/ruby/1.8/drb/drb.rb:1512:in
`perform'
20070423-13:36:41 (8456) /usr/lib/ruby/1.8/drb/drb.rb:1586:in
`main_loop'
20070423-13:36:41 (8456) /usr/lib/ruby/1.8/drb/drb.rb:1582:in
`main_loop'
20070423-13:36:41 (8456) /usr/lib/ruby/1.8/drb/drb.rb:1578:in
`main_loop'
20070423-13:36:41 (8456) /usr/lib/ruby/1.8/drb/drb.rb:1427:in `run'
20070423-13:36:41 (8456) /usr/lib/ruby/1.8/drb/drb.rb:1424:in `run'
20070423-13:36:41 (8456) /usr/lib/ruby/1.8/drb/drb.rb:1344:in
`initialize'
20070423-13:36:41 (8456) /usr/lib/ruby/1.8/drb/drb.rb:1624:in
`start_service'
20070423-13:36:41 (8456) /usr/local/src/rails/434Wireless/vendor/
plugins/backgroundrb/server/lib/backgroundrb_server.rb:315:in `run'
20070423-13:36:41 (8456) /usr/lib/ruby/gems/1.8/gems/daemons-1.0.5/lib/
daemons/application.rb:187:in `start_proc'
20070423-13:36:41 (8456) /usr/lib/ruby/gems/1.8/gems/daemons-1.0.5/lib/
daemons/daemonize.rb:192:in `call_as_daemon'
20070423-13:36:41 (8456) /usr/lib/ruby/gems/1.8/gems/daemons-1.0.5/lib/
daemons/application.rb:191:in `start_proc'
20070423-13:36:41 (8456) /usr/lib/ruby/gems/1.8/gems/daemons-1.0.5/lib/
daemons/application.rb:227:in `start'
20070423-13:36:41 (8456) /usr/lib/ruby/gems/1.8/gems/daemons-1.0.5/lib/
daemons/controller.rb:69:in `run'
20070423-13:36:41 (8456) /usr/lib/ruby/gems/1.8/gems/daemons-1.0.5/lib/
daemons.rb:182:in `run_proc'
20070423-13:36:41 (8456) /usr/lib/ruby/gems/1.8/gems/daemons-1.0.5/lib/
daemons/cmdline.rb:105:in `catch_exceptions'
20070423-13:36:41 (8456) /usr/lib/ruby/gems/1.8/gems/daemons-1.0.5/lib/
daemons.rb:181:in `run_proc'
20070423-13:36:41 (8456) /usr/local/src/rails/434Wireless/vendor/
plugins/backgroundrb/server/lib/backgroundrb_server.rb:301:in `run'
20070423-13:36:41 (8456) script/backgroundrb:29

I tried removing the line that gives the XML version from the top of
the same test file, and then it crashes where I expect it to, when it
encounters invalid characters.  Any ideas as to what is happening?

Thanks,

Simon


More information about the Backgroundrb-devel mailing list