Hi, I always get the below error when I do a restore (upload backup file). I get this on different versions of Joomla Jumpboxes, and on different browsers. If I try and restore from a share it generally works ok, and I can restore between Jumpboxes. Manual restores (i.e. command line) work fine. Any thoughts on what could be wrong?
Thanks
************************************
NoMethodError in BackupController#start_upload_restore
undefined method `+' for nil:NilClass
RAILS_ROOT: /jumpbox/application_portal/config/..
Application Trace | Framework Trace | Full Trace
#{RAILS_ROOT}/lib/osinterface.rb:258:in `restore_state_xml'
#{RAILS_ROOT}/app/controllers/backup_controller.rb:219:in `finish_restore'
#{RAILS_ROOT}/app/controllers/backup_controller.rb:185:in `start_upload_restore'
/usr/bin/mongrel_rails:16:in `load'
/usr/bin/mongrel_rails:16
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/base.rb:1095:in `send'
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/base.rb:1095:in `perform_action_without_filters'
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/filters.rb:632:in `call_filter'
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/filters.rb:638:in `call_filter'
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/filters.rb:438:in `call'
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/filters.rb:637:in `call_filter'
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/filters.rb:638:in `call_filter'
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/filters.rb:438:in `call'
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/filters.rb:637:in `call_filter'
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/filters.rb:638:in `call_filter'
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/filters.rb:438:in `call'
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/filters.rb:637:in `call_filter'
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/filters.rb:638:in `call_filter'
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/filters.rb:438:in `call'
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/filters.rb:637:in `call_filter'
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/filters.rb:638:in `call_filter'
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/filters.rb:438:in `call'
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/filters.rb:637:in `call_filter'
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/filters.rb:638:in `call_filter'
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/filters.rb:438:in `call'
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/filters.rb:637:in `call_filter'
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/filters.rb:638:in `call_filter'
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/filters.rb:438:in `call'
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/filters.rb:637:in `call_filter'
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/filters.rb:634:in `call_filter'
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/filters.rb:638:in `call_filter'
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/filters.rb:438:in `call'
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/filters.rb:637:in `call_filter'
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/filters.rb:619:in `perform_action_without_benchmark'
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/benchmarking.rb:66:in `perform_action_without_rescue'
/usr/lib/ruby/1.8/benchmark.rb:293:in `measure'
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/benchmarking.rb:66:in `perform_action_without_rescue'
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/rescue.rb:83:in `perform_action'
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/base.rb:430:in `send'
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/base.rb:430:in `process_without_filters'
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/filters.rb:624:in `process_without_session_management_support'
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/session_management.rb:114:in `process'
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/base.rb:330:in `process'
#{RAILS_ROOT}/vendor/rails/railties/lib/dispatcher.rb:41:in `dispatch'
/jumpbox/lib/site_ruby/1.8/gems/gems/mongrel-1.1.1/lib/mongrel/rails.rb:76:in `process'
/jumpbox/lib/site_ruby/1.8/gems/gems/mongrel-1.1.1/lib/mongrel/rails.rb:74:in `synchronize'
/jumpbox/lib/site_ruby/1.8/gems/gems/mongrel-1.1.1/lib/mongrel/rails.rb:74:in `process'
/jumpbox/lib/site_ruby/1.8/gems/gems/mongrel-1.1.1/lib/mongrel.rb:155:in `process_client'
/jumpbox/lib/site_ruby/1.8/gems/gems/mongrel-1.1.1/lib/mongrel.rb:154:in `each'
/jumpbox/lib/site_ruby/1.8/gems/gems/mongrel-1.1.1/lib/mongrel.rb:154:in `process_client'
/jumpbox/lib/site_ruby/1.8/gems/gems/mongrel-1.1.1/lib/mongrel.rb:281:in `run'
/jumpbox/lib/site_ruby/1.8/gems/gems/mongrel-1.1.1/lib/mongrel.rb:281:in `initialize'
/jumpbox/lib/site_ruby/1.8/gems/gems/mongrel-1.1.1/lib/mongrel.rb:281:in `new'
/jumpbox/lib/site_ruby/1.8/gems/gems/mongrel-1.1.1/lib/mongrel.rb:281:in `run'
/jumpbox/lib/site_ruby/1.8/gems/gems/mongrel-1.1.1/lib/mongrel.rb:264:in `initialize'
/jumpbox/lib/site_ruby/1.8/gems/gems/mongrel-1.1.1/lib/mongrel.rb:264:in `new'
/jumpbox/lib/site_ruby/1.8/gems/gems/mongrel-1.1.1/lib/mongrel.rb:264:in `run'
/jumpbox/lib/site_ruby/1.8/gems/gems/mongrel-1.1.1/lib/mongrel/configurator.rb:282:in `run'
/jumpbox/lib/site_ruby/1.8/gems/gems/mongrel-1.1.1/lib/mongrel/configurator.rb:281:in `each'
/jumpbox/lib/site_ruby/1.8/gems/gems/mongrel-1.1.1/lib/mongrel/configurator.rb:281:in `run'
/jumpbox/lib/site_ruby/1.8/gems/gems/mongrel-1.1.1/bin/mongrel_rails:128:in `run'
/jumpbox/lib/site_ruby/1.8/gems/gems/mongrel-1.1.1/lib/mongrel/command.rb:212:in `run'
/jumpbox/lib/site_ruby/1.8/gems/gems/mongrel-1.1.1/bin/mongrel_rails:281
#{RAILS_ROOT}/lib/osinterface.rb:258:in `restore_state_xml'
#{RAILS_ROOT}/app/controllers/backup_controller.rb:219:in `finish_restore'
#{RAILS_ROOT}/app/controllers/backup_controller.rb:185:in `start_upload_restore'
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/base.rb:1095:in `send'
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/base.rb:1095:in `perform_action_without_filters'
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/filters.rb:632:in `call_filter'
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/filters.rb:638:in `call_filter'
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/filters.rb:438:in `call'
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/filters.rb:637:in `call_filter'
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/filters.rb:638:in `call_filter'
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/filters.rb:438:in `call'
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/filters.rb:637:in `call_filter'
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/filters.rb:638:in `call_filter'
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/filters.rb:438:in `call'
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/filters.rb:637:in `call_filter'
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/filters.rb:638:in `call_filter'
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/filters.rb:438:in `call'
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/filters.rb:637:in `call_filter'
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/filters.rb:638:in `call_filter'
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/filters.rb:438:in `call'
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/filters.rb:637:in `call_filter'
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/filters.rb:638:in `call_filter'
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/filters.rb:438:in `call'
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/filters.rb:637:in `call_filter'
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/filters.rb:638:in `call_filter'
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/filters.rb:438:in `call'
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/filters.rb:637:in `call_filter'
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/filters.rb:634:in `call_filter'
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/filters.rb:638:in `call_filter'
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/filters.rb:438:in `call'
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/filters.rb:637:in `call_filter'
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/filters.rb:619:in `perform_action_without_benchmark'
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/benchmarking.rb:66:in `perform_action_without_rescue'
/usr/lib/ruby/1.8/benchmark.rb:293:in `measure'
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/benchmarking.rb:66:in `perform_action_without_rescue'
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/rescue.rb:83:in `perform_action'
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/base.rb:430:in `send'
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/base.rb:430:in `process_without_filters'
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/filters.rb:624:in `process_without_session_management_support'
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/session_management.rb:114:in `process'
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/base.rb:330:in `process'
#{RAILS_ROOT}/vendor/rails/railties/lib/dispatcher.rb:41:in `dispatch'
/jumpbox/lib/site_ruby/1.8/gems/gems/mongrel-1.1.1/lib/mongrel/rails.rb:76:in `process'
/jumpbox/lib/site_ruby/1.8/gems/gems/mongrel-1.1.1/lib/mongrel/rails.rb:74:in `synchronize'
/jumpbox/lib/site_ruby/1.8/gems/gems/mongrel-1.1.1/lib/mongrel/rails.rb:74:in `process'
/jumpbox/lib/site_ruby/1.8/gems/gems/mongrel-1.1.1/lib/mongrel.rb:155:in `process_client'
/jumpbox/lib/site_ruby/1.8/gems/gems/mongrel-1.1.1/lib/mongrel.rb:154:in `each'
/jumpbox/lib/site_ruby/1.8/gems/gems/mongrel-1.1.1/lib/mongrel.rb:154:in `process_client'
/jumpbox/lib/site_ruby/1.8/gems/gems/mongrel-1.1.1/lib/mongrel.rb:281:in `run'
/jumpbox/lib/site_ruby/1.8/gems/gems/mongrel-1.1.1/lib/mongrel.rb:281:in `initialize'
/jumpbox/lib/site_ruby/1.8/gems/gems/mongrel-1.1.1/lib/mongrel.rb:281:in `new'
/jumpbox/lib/site_ruby/1.8/gems/gems/mongrel-1.1.1/lib/mongrel.rb:281:in `run'
/jumpbox/lib/site_ruby/1.8/gems/gems/mongrel-1.1.1/lib/mongrel.rb:264:in `initialize'
/jumpbox/lib/site_ruby/1.8/gems/gems/mongrel-1.1.1/lib/mongrel.rb:264:in `new'
/jumpbox/lib/site_ruby/1.8/gems/gems/mongrel-1.1.1/lib/mongrel.rb:264:in `run'
/jumpbox/lib/site_ruby/1.8/gems/gems/mongrel-1.1.1/lib/mongrel/configurator.rb:282:in `run'
/jumpbox/lib/site_ruby/1.8/gems/gems/mongrel-1.1.1/lib/mongrel/configurator.rb:281:in `each'
/jumpbox/lib/site_ruby/1.8/gems/gems/mongrel-1.1.1/lib/mongrel/configurator.rb:281:in `run'
/jumpbox/lib/site_ruby/1.8/gems/gems/mongrel-1.1.1/bin/mongrel_rails:128:in `run'
/jumpbox/lib/site_ruby/1.8/gems/gems/mongrel-1.1.1/lib/mongrel/command.rb:212:in `run'
/jumpbox/lib/site_ruby/1.8/gems/gems/mongrel-1.1.1/bin/mongrel_rails:281
/usr/bin/mongrel_rails:16:in `load'
/usr/bin/mongrel_rails:16
Request
Parameters: {"backup"=>{"file"=>#}, "confirm_password"=>"admin", "new_password"=>"admin", "upload_filename"=>"jb-joomla15-1.1.18-cparestoretest-e6cdfb2883f911df955a000c29fbc147-20100706113358.tgz", "admin/backup/mounttype"=>"upload"}
Show session dump
---
:user: 1
return-to: /
:return_to:
:new_password:
flash: !map:ActionController::Flash::FlashHash {}
Response
Headers: {"Status"=>"200 OK", "cookie"=>[], "Content-Type"=>"text/javascript", "Cache-Control"=>"no-cache"}
Joomla Restores
Have you made strange changes to the database or JumpBox in general? Your other post:
http://www.jumpbox.com/node/1938
Makes me think that you have modified things to the extent that our restores no longer work. We don't test restores with plugins or renamed tables or any other big change you may make to the JumpBox.
Austin
More testing...
No worries Austin, I thought that the message may have been something simple you guys recognised. I've done some pretty extensive testing on backups / restores now, and can report that when changing the database prefix (to enhance Joomla security), you definately need to change the app.rb file to reflect the new database prefix.
If restoring to a Jumpbox from a content backup that had a different database prefix, you need to change the database prefix in app.rb again to match the prefix from the content backup file you will be using (which can be found in configuration.php). You don't need to change the database prefix in the Joomla database however, the content restore will do this.