Bug 1767747

Summary: C&U collection for VMWare shows error `undefined method `+' for nil:NilClass Method:[block in method_missing]`
Product: Red Hat CloudForms Management Engine Reporter: Khushbu Borole <kborole>
Component: C&U Capacity and UtilizationAssignee: Adam Grare <agrare>
Status: CLOSED NOTABUG QA Contact: Nandini Chandra <nachandr>
Severity: high Docs Contact: Red Hat CloudForms Documentation <cloudforms-docs>
Priority: high    
Version: 5.9.7CC: agrare, dmetzger, nansari, niroy, obarenbo
Target Milestone: GAKeywords: TestOnly, ZStream
Target Release: 5.12.0Flags: mfeifer: mirror+
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of:
: 1785374 (view as bug list) Environment:
Last Closed: 2020-06-10 12:57:02 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: Bug
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: VMware Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1785374    

Description Khushbu Borole 2019-11-01 10:20:27 UTC
Description of problem:
C&U collection for VMWare shows error 'undefined method `+' for nil:NilClass  Method:[block in method_missing]`
The CU configured the environment for the workaround resolution[Refer Bug 1759927] by moving VMWare provider into other zone and configured the C&U for the same.
But while C&U rollup the logs mark the following error

ERROR:
~~~
[----] I, [2019-10-30T18:00:20.658102 #21792:715110]  INFO -- : Exception in realtime_block :total_time - Timings: {:db_find_prev_perf=>0.0033957958221435547, :rollup_perfs=>0.0853414535522461, :total_time=>0.08
875584602355957}
[----] E, [2019-10-30T18:00:20.659172 #21792:715110] ERROR -- : MIQ(MiqQueue#deliver) Message id: [10000060380710], Error: [undefined method `+' for nil:NilClass]
[----] E, [2019-10-30T18:00:20.659354 #21792:715110] ERROR -- : [NoMethodError]: undefined method `+' for nil:NilClass  Method:[block in method_missing]
[----] E, [2019-10-30T18:00:20.659407 #21792:715110] ERROR -- : /var/www/miq/vmdb/app/models/ext_management_system.rb:578:in `get_reserve'
/var/www/miq/vmdb/app/models/ext_management_system.rb:582:in `cpu_reserve'
/var/www/miq/vmdb/app/models/miq_enterprise.rb:80:in `block in get_reserve'
/opt/rh/cfme-gemset/gems/activerecord-5.0.6/lib/active_record/relation/delegation.rb:38:in `each'
/opt/rh/cfme-gemset/gems/activerecord-5.0.6/lib/active_record/relation/delegation.rb:38:in `each'
/var/www/miq/vmdb/app/models/miq_enterprise.rb:80:in `inject'
/var/www/miq/vmdb/app/models/miq_enterprise.rb:80:in `get_reserve'
/var/www/miq/vmdb/app/models/miq_enterprise.rb:84:in `cpu_reserve'
/opt/rh/cfme-gemset/gems/activesupport-5.0.6/lib/active_support/core_ext/object/try.rb:17:in `public_send'
/opt/rh/cfme-gemset/gems/activesupport-5.0.6/lib/active_support/core_ext/object/try.rb:17:in `try!'
/opt/rh/cfme-gemset/gems/activesupport-5.0.6/lib/active_support/core_ext/object/try.rb:6:in `try'
/var/www/miq/vmdb/app/models/vim_performance_state.rb:228:in `capture_reserve'
/var/www/miq/vmdb/app/models/vim_performance_state.rb:69:in `capture'
/var/www/miq/vmdb/app/models/vim_performance_state.rb:53:in `capture'
/var/www/miq/vmdb/app/models/metric/ci_mixin/capture.rb:264:in `perf_capture_state'
/var/www/miq/vmdb/app/models/metric/ci_mixin/state_finders.rb:24:in `vim_performance_state_for_ts'
/var/www/miq/vmdb/app/models/metric/rollup.rb:299:in `block in rollup_child_metrics'
/var/www/miq/vmdb/app/models/metric/rollup.rb:297:in `each'
/var/www/miq/vmdb/app/models/metric/rollup.rb:297:in `rollup_child_metrics'
/var/www/miq/vmdb/app/models/metric/rollup.rb:205:in `block in rollup_hourly'
/var/www/miq/vmdb/app/models/metric/rollup.rb:205:in `each'
/var/www/miq/vmdb/app/models/metric/rollup.rb:205:in `rollup_hourly'
/var/www/miq/vmdb/app/models/metric/ci_mixin/rollup.rb:96:in `block (2 levels) in perf_rollup'
/opt/rh/cfme-gemset/bundler/gems/cfme-gems-pending-0cee44cbcd3f/lib/gems/pending/util/extensions/miq-benchmark.rb:11:in `realtime_store'
/opt/rh/cfme-gemset/bundler/gems/cfme-gems-pending-0cee44cbcd3f/lib/gems/pending/util/extensions/miq-benchmark.rb:28:in `realtime_block'
/var/www/miq/vmdb/app/models/metric/ci_mixin/rollup.rb:95:in `block in perf_rollup'
/opt/rh/cfme-gemset/bundler/gems/cfme-gems-pending-0cee44cbcd3f/lib/gems/pending/util/extensions/miq-benchmark.rb:11:in `realtime_store'
/opt/rh/cfme-gemset/bundler/gems/cfme-gems-pending-0cee44cbcd3f/lib/gems/pending/util/extensions/miq-benchmark.rb:35:in `realtime_block'
/var/www/miq/vmdb/app/models/metric/ci_mixin/rollup.rb:82:in `perf_rollup'
/var/www/miq/vmdb/app/models/miq_queue.rb:453:in `block in dispatch_method'
/opt/rh/rh-ruby23/root/usr/share/ruby/timeout.rb:91:in `block in timeout'
/opt/rh/rh-ruby23/root/usr/share/ruby/timeout.rb:33:in `block in catch'
/opt/rh/rh-ruby23/root/usr/share/ruby/timeout.rb:33:in `catch'
/opt/rh/rh-ruby23/root/usr/share/ruby/timeout.rb:33:in `catch'
/opt/rh/rh-ruby23/root/usr/share/ruby/timeout.rb:106:in `timeout'
/var/www/miq/vmdb/app/models/miq_queue.rb:452:in `dispatch_method'
/var/www/miq/vmdb/app/models/miq_queue.rb:429:in `block in deliver'
/var/www/miq/vmdb/app/models/user.rb:269:in `with_user_group'
/var/www/miq/vmdb/app/models/miq_queue.rb:429:in `deliver'
/var/www/miq/vmdb/app/models/miq_queue_worker_base/runner.rb:104:in `deliver_queue_message'
/var/www/miq/vmdb/app/models/miq_queue_worker_base/runner.rb:134:in `deliver_message'
/var/www/miq/vmdb/app/models/miq_queue_worker_base/runner.rb:152:in `block in do_work'
/var/www/miq/vmdb/app/models/miq_queue_worker_base/runner.rb:146:in `loop'
/var/www/miq/vmdb/app/models/miq_queue_worker_base/runner.rb:146:in `do_work'
/var/www/miq/vmdb/app/models/miq_worker/runner.rb:329:in `block in do_work_loop'
/var/www/miq/vmdb/app/models/miq_worker/runner.rb:326:in `loop'
/var/www/miq/vmdb/app/models/miq_worker/runner.rb:326:in `do_work_loop'
/var/www/miq/vmdb/app/models/miq_worker/runner.rb:153:in `run'
/var/www/miq/vmdb/app/models/miq_worker/runner.rb:127:in `start'
/var/www/miq/vmdb/app/models/miq_worker/runner.rb:22:in `start_worker'
/var/www/miq/vmdb/app/models/miq_worker.rb:376:in `block in start_runner_via_fork'
/opt/rh/cfme-gemset/gems/nakayoshi_fork-0.0.3/lib/nakayoshi_fork.rb:24:in `fork'
/opt/rh/cfme-gemset/gems/nakayoshi_fork-0.0.3/lib/nakayoshi_fork.rb:24:in `fork'
/var/www/miq/vmdb/app/models/miq_worker.rb:374:in `start_runner_via_fork'
/var/www/miq/vmdb/app/models/miq_worker.rb:368:in `start_runner'
/var/www/miq/vmdb/app/models/miq_worker.rb:415:in `start'
/var/www/miq/vmdb/app/models/miq_worker.rb:266:in `start_worker'
/var/www/miq/vmdb/app/models/miq_worker.rb:153:in `block in sync_workers'
/var/www/miq/vmdb/app/models/miq_worker.rb:153:in `times'
/var/www/miq/vmdb/app/models/miq_worker.rb:153:in `sync_workers'
/var/www/miq/vmdb/app/models/miq_server/worker_management/monitor.rb:53:in `block in sync_workers'
/var/www/miq/vmdb/app/models/miq_server/worker_management/monitor.rb:50:in `each'
/var/www/miq/vmdb/app/models/miq_server/worker_management/monitor.rb:50:in `sync_workers'
/var/www/miq/vmdb/app/models/miq_server/worker_management/monitor.rb:22:in `monitor_workers'
/var/www/miq/vmdb/app/models/miq_server.rb:343:in `block in monitor'
/opt/rh/cfme-gemset/bundler/gems/cfme-gems-pending-0cee44cbcd3f/lib/gems/pending/util/extensions/miq-benchmark.rb:11:in `realtime_store'
/opt/rh/cfme-gemset/bundler/gems/cfme-gems-pending-0cee44cbcd3f/lib/gems/pending/util/extensions/miq-benchmark.rb:28:in `realtime_block'
/var/www/miq/vmdb/app/models/miq_server.rb:343:in `monitor'
/var/www/miq/vmdb/app/models/miq_server.rb:382:in `block (2 levels) in monitor_loop'
/opt/rh/cfme-gemset/bundler/gems/cfme-gems-pending-0cee44cbcd3f/lib/gems/pending/util/extensions/miq-benchmark.rb:11:in `realtime_store'
/opt/rh/cfme-gemset/bundler/gems/cfme-gems-pending-0cee44cbcd3f/lib/gems/pending/util/extensions/miq-benchmark.rb:35:in `realtime_block'
/var/www/miq/vmdb/app/models/miq_server.rb:382:in `block in monitor_loop'
/var/www/miq/vmdb/app/models/miq_server.rb:381:in `loop'
/var/www/miq/vmdb/app/models/miq_server.rb:381:in `monitor_loop'
/var/www/miq/vmdb/app/models/miq_server.rb:244:in `start'
/var/www/miq/vmdb/lib/workers/evm_server.rb:27:in `start'
/var/www/miq/vmdb/lib/workers/evm_server.rb:48:in `start'
~~~

Comment 7 Adam Grare 2019-11-05 15:17:56 UTC
This is another symptom of having the Nuage provider there.  Harder to fix because the rollup from miq_enterprise -> miq_regions -> ext_management_systems doesn't support checking for infra_manager or cloud_manager and we assume that 'hosts' is able to be called on any EMS.

Comment 10 CFME Bot 2019-11-07 14:00:45 UTC
New commit detected on ManageIQ/manageiq/master:

https://github.com/ManageIQ/manageiq/commit/c475153112c9325abe123967e6be31d2c9646946
commit c475153112c9325abe123967e6be31d2c9646946
Author:     Adam Grare <agrare>
AuthorDate: Tue Nov  5 10:38:31 2019 -0500
Commit:     Adam Grare <agrare>
CommitDate: Tue Nov  5 10:38:31 2019 -0500

    Return empty array for delegation with nil manager

    If a NetworkManager doesn't have a parent_manager (e.g. Nuage) return an empty array instead of a nil

    Fixes https://bugzilla.redhat.com/show_bug.cgi?id=1767747
 app/models/manageiq/providers/network_manager.rb | 74 +-
 spec/models/manageiq/providers/network_manager_spec.rb | 37 +-
 2 files changed, 59 insertions(+), 52 deletions(-)