Actions
Bug #405
closedForeman cannot process 2.6.2 reports
Description
Our foreman install stopped processing reports after 2.6.2 upgrade.
Here's a stacktrace:
Failed to process report for host.domain.com due to:undefined method `>' for nil:NilClass - /var/www/apps/foreman/app/models/report.rb:175:in `metrics_to_hash' /var/www/apps/foreman/app/models/report.rb:87:in `import' /var/www/apps/foreman/app/controllers/reports_controller.rb:33:in `create' /var/www/apps/foreman/vendor/rails/actionpack/lib/action_controller/mime_responds.rb:135:in `call' /var/www/apps/foreman/vendor/rails/actionpack/lib/action_controller/mime_responds.rb:135:in `custom' /var/www/apps/foreman/vendor/rails/actionpack/lib/action_controller/mime_responds.rb:179:in `call' /var/www/apps/foreman/vendor/rails/actionpack/lib/action_controller/mime_responds.rb:179:in `respond' /var/www/apps/foreman/vendor/rails/actionpack/lib/action_controller/mime_responds.rb:173:in `each' /var/www/apps/foreman/vendor/rails/actionpack/lib/action_controller/mime_responds.rb:173:in `respond' /var/www/apps/foreman/vendor/rails/actionpack/lib/action_controller/mime_responds.rb:107:in `respond_to' /var/www/apps/foreman/app/controllers/reports_controller.rb:31:in `create' /var/www/apps/foreman/vendor/rails/actionpack/lib/action_controller/base.rb:1333:in `send' /var/www/apps/foreman/vendor/rails/actionpack/lib/action_controller/base.rb:1333:in `perform_action_without_filters' /var/www/apps/foreman/vendor/rails/actionpack/lib/action_controller/filters.rb:617:in `call_filters' /var/www/apps/foreman/vendor/rails/actionpack/lib/action_controller/filters.rb:638:in `run_before_filters' /var/www/apps/foreman/vendor/rails/actionpack/lib/action_controller/filters.rb:206:in `call' /var/www/apps/foreman/vendor/rails/actionpack/lib/action_controller/filters.rb:206:in `around_proc' /var/www/apps/foreman/vendor/rails/activesupport/lib/active_support/callbacks.rb:182:in `call' /var/www/apps/foreman/vendor/rails/activesupport/lib/active_support/callbacks.rb:182:in `evaluate_method' /var/www/apps/foreman/vendor/rails/actionpack/lib/action_controller/filters.rb:184:in `call' /var/www/apps/foreman/vendor/rails/actionpack/lib/action_controller/filters.rb:635:in `run_before_filters' /var/www/apps/foreman/vendor/rails/actionpack/lib/action_controller/filters.rb:615:in `call_filters' /var/www/apps/foreman/vendor/rails/actionpack/lib/action_controller/filters.rb:610:in `perform_action_without_benchmark' /var/www/apps/foreman/vendor/rails/actionpack/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue' /var/www/apps/foreman/vendor/rails/activesupport/lib/active_support/core_ext/benchmark.rb:17:in `ms' /usr/local/lib/ruby/1.8/benchmark.rb:308:in `realtime' /var/www/apps/foreman/vendor/rails/activesupport/lib/active_support/core_ext/benchmark.rb:17:in `ms' /var/www/apps/foreman/vendor/rails/actionpack/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue' /var/www/apps/foreman/vendor/rails/actionpack/lib/action_controller/rescue.rb:160:in `perform_action_without_flash' /var/www/apps/foreman/vendor/rails/actionpack/lib/action_controller/flash.rb:151:in `perform_action' /var/www/apps/foreman/vendor/rails/actionpack/lib/action_controller/base.rb:532:in `send' /var/www/apps/foreman/vendor/rails/actionpack/lib/action_controller/base.rb:532:in `process_without_filters' /var/www/apps/foreman/vendor/rails/actionpack/lib/action_controller/filters.rb:606:in `process' /var/www/apps/foreman/vendor/rails/actionpack/lib/action_controller/base.rb:391:in `process' /var/www/apps/foreman/vendor/rails/actionpack/lib/action_controller/base.rb:386:in `call' /var/www/apps/foreman/vendor/rails/actionpack/lib/action_controller/routing/route_set.rb:438:in `call' /var/www/apps/foreman/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:87:in `dispatch' /var/www/apps/foreman/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:121:in `_call' /var/www/apps/foreman/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:130:in `build_middleware_stack' /var/www/apps/foreman/vendor/rails/actionpack/lib/action_controller/string_coercion.rb:25:in `call' /var/www/apps/foreman/vendor/rails/actionpack/lib/action_controller/string_coercion.rb:25:in `call' /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.2/vendor/rack-1.0.0-git/lib/rack/head.rb:9:in `call' /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.2/vendor/rack-1.0.0-git/lib/rack/methodoverride.rb:24:in `call' /var/www/apps/foreman/vendor/rails/actionpack/lib/action_controller/params_parser.rb:15:in `call' /var/www/apps/foreman/vendor/rails/actionpack/lib/action_controller/session/abstract_store.rb:177:in `call' /var/www/apps/foreman/vendor/rails/activerecord/lib/active_record/query_cache.rb:29:in `call' /var/www/apps/foreman/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb:34:in `cache' /var/www/apps/foreman/vendor/rails/activerecord/lib/active_record/query_cache.rb:9:in `cache' /var/www/apps/foreman/vendor/rails/activerecord/lib/active_record/query_cache.rb:28:in `call' /var/www/apps/foreman/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb:361:in `call' /var/www/apps/foreman/vendor/rails/actionpack/lib/action_controller/failsafe.rb:26:in `call' /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.2/vendor/rack-1.0.0-git/lib/rack/lock.rb:11:in `call' /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.2/vendor/rack-1.0.0-git/lib/rack/lock.rb:11:in `synchronize' /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.2/vendor/rack-1.0.0-git/lib/rack/lock.rb:11:in `call' /var/www/apps/foreman/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:106:in `call' /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.2/lib/phusion_passenger/rack/request_handler.rb:81:in `process_request' /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.2/lib/phusion_passenger/abstract_request_handler.rb:203:in `main_loop' /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.2/lib/phusion_passenger/railz/application_spawner.rb:340:in `start_request_handler' /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.2/lib/phusion_passenger/railz/application_spawner.rb:298:in `handle_spawn_application' /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.2/lib/phusion_passenger/utils.rb:182:in `safe_fork' /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.2/lib/phusion_passenger/railz/application_spawner.rb:296:in `handle_spawn_application' /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.2/lib/phusion_passenger/abstract_server.rb:337:in `__send__' /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.2/lib/phusion_passenger/abstract_server.rb:337:in `main_loop' /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.2/lib/phusion_passenger/abstract_server.rb:187:in `start_synchronously' /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.2/lib/phusion_passenger/abstract_server.rb:154:in `start' /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.2/lib/phusion_passenger/railz/application_spawner.rb:192:in `start' /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.2/lib/phusion_passenger/spawn_manager.rb:257:in `spawn_rails_application' /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.2/lib/phusion_passenger/abstract_server_collection.rb:126:in `lookup_or_add' /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.2/lib/phusion_passenger/spawn_manager.rb:251:in `spawn_rails_application' /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.2/lib/phusion_passenger/abstract_server_collection.rb:80:in `synchronize' /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.2/lib/phusion_passenger/abstract_server_collection.rb:79:in `synchronize' /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.2/lib/phusion_passenger/spawn_manager.rb:250:in `spawn_rails_application' /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.2/lib/phusion_passenger/spawn_manager.rb:153:in `spawn_application' /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.2/lib/phusion_passenger/spawn_manager.rb:282:in `handle_spawn_application' /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.2/lib/phusion_passenger/abstract_server.rb:337:in `__send__' /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.2/lib/phusion_passenger/abstract_server.rb:337:in `main_loop' /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.2/lib/phusion_passenger/abstract_server.rb:187:in `start_synchronously' /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.2/bin/passenger-spawn-server:61
Here's the fragment of a 2.6.2 report that it's trying to import:
resources: !ruby/object:Puppet::Util::Metric label: Resources name: resources values: - - !ruby/sym total - Total - 381
I believe it's caused by missing metrics:
METRIC = %w[applied restarted failed failed_restarts skipped]
Files
Actions