Project

General

Profile

Forced download for SCM 'view' for binary files takes a long while to start up in Ruby Enterprise Edition

Added by Antonio García-Domínguez over 12 years ago

Hi everyone,

I've started test driving Ruby Enterprise Edition for running Redmine 1.2.1 inside Passenger 3.0.9. It looks like I could save a lot of memory, but I keep getting rogue processes using up 100% of a single CPU when trying to "view" large binary files through the "Repository" module. If I kill the rogue process with SIGABRT, I get a trace like this:

Processing RepositoriesController#annotate (for 10.182.221.1 at 2011-10-28 02:15:37) [GET]
  Parameters: {"action"=>"annotate", "id"=>"models2011-paper", "path"=>["demo-movie", "models2011-with-bubbles.wnk"], "controller"=>"repositories"}

SignalException (SIGABRT):
  passenger (3.0.9) lib/phusion_passenger/abstract_request_handler.rb:440:in `install_useful_signal_handlers'
  lib/redmine/scm/adapters/subversion_adapter.rb:230:in `call'
  lib/redmine/scm/adapters/subversion_adapter.rb:230:in `read'
  lib/redmine/scm/adapters/subversion_adapter.rb:230:in `cat'
  lib/redmine/scm/adapters/abstract_adapter.rb:217:in `call'
  lib/redmine/scm/adapters/abstract_adapter.rb:217:in `shellout'
  lib/redmine/scm/adapters/abstract_adapter.rb:215:in `popen'
  lib/redmine/scm/adapters/abstract_adapter.rb:215:in `shellout'
  lib/redmine/scm/adapters/abstract_adapter.rb:194:in `shellout'
  lib/redmine/scm/adapters/subversion_adapter.rb:228:in `cat'
  app/models/repository.rb:128:in `cat'
  app/controllers/repositories_controller.rb:174:in `annotate'
  passenger (3.0.9) lib/phusion_passenger/rack/request_handler.rb:96:in `process_request'
  passenger (3.0.9) lib/phusion_passenger/abstract_request_handler.rb:513:in `accept_and_process_next_request'
  passenger (3.0.9) lib/phusion_passenger/abstract_request_handler.rb:274:in `main_loop'
  passenger (3.0.9) lib/phusion_passenger/classic_rails/application_spawner.rb:321:in `start_request_handler'
  passenger (3.0.9) lib/phusion_passenger/classic_rails/application_spawner.rb:275:in `send'
  passenger (3.0.9) lib/phusion_passenger/classic_rails/application_spawner.rb:275:in `handle_spawn_application'
  passenger (3.0.9) lib/phusion_passenger/utils.rb:479:in `safe_fork'
  passenger (3.0.9) lib/phusion_passenger/classic_rails/application_spawner.rb:270:in `handle_spawn_application'
  passenger (3.0.9) lib/phusion_passenger/abstract_server.rb:357:in `__send__'
  passenger (3.0.9) lib/phusion_passenger/abstract_server.rb:357:in `server_main_loop'
  passenger (3.0.9) lib/phusion_passenger/abstract_server.rb:206:in `start_synchronously'
  passenger (3.0.9) lib/phusion_passenger/abstract_server.rb:180:in `start'
  passenger (3.0.9) lib/phusion_passenger/classic_rails/application_spawner.rb:149:in `start'
  passenger (3.0.9) lib/phusion_passenger/spawn_manager.rb:219:in `spawn_rails_application'
  passenger (3.0.9) lib/phusion_passenger/abstract_server_collection.rb:132:in `lookup_or_add'
  passenger (3.0.9) lib/phusion_passenger/spawn_manager.rb:214:in `spawn_rails_application'
  passenger (3.0.9) lib/phusion_passenger/abstract_server_collection.rb:82:in `synchronize'
  passenger (3.0.9) lib/phusion_passenger/abstract_server_collection.rb:79:in `synchronize'
  passenger (3.0.9) lib/phusion_passenger/spawn_manager.rb:213:in `spawn_rails_application'
  passenger (3.0.9) lib/phusion_passenger/spawn_manager.rb:132:in `spawn_application'
  passenger (3.0.9) lib/phusion_passenger/spawn_manager.rb:275:in `handle_spawn_application'
  passenger (3.0.9) lib/phusion_passenger/abstract_server.rb:357:in `__send__'
  passenger (3.0.9) lib/phusion_passenger/abstract_server.rb:357:in `server_main_loop'
  passenger (3.0.9) lib/phusion_passenger/abstract_server.rb:206:in `start_synchronously'
  passenger (3.0.9) /helper-scripts/passenger-spawn-server:99

I don't seem to have this problem using the standard Ruby interpreter, though. Any ideas?

Regards,
Antonio