Description of problem: While generating the content from dashboard widgets, below exception observed: [----] E, [2018-04-09T02:07:34.420909 #4965:ec7138] ERROR -- : [TypeError]: no implicit conversion from nil to integer Method:[rescue in generate_one_content_for_user] Version-Release number of selected component (if applicable): 5.8.3.4 How reproducible: For specific widgets in the customer's environment. Steps to Reproduce: 1. Custom report was generated and its providing required records. 2. For few widgets based on the custom reports, while generating the content, it is throwing type conversion exception for example "Groups: vCPU (Total)" it throws below exception: [----] E, [2018-04-09T02:07:34.421192 #4965:ec7138] ERROR -- : /opt/rh/cfme-gemset/bundler/gems/manageiq-ui-classic-176dad0f32b3/lib/report_formatter/c3.rb:80:in `[]' /opt/rh/cfme-gemset/bundler/gems/manageiq-ui-classic-176dad0f32b3/lib/report_formatter/c3.rb:80:in `build_document_header' /opt/rh/cfme-gemset/bundler/gems/ruport-3727775479b0/lib/ruport/controller.rb:598:in `maybe' /opt/rh/cfme-gemset/bundler/gems/ruport-3727775479b0/lib/ruport/controller.rb:584:in `block in execute_stages' /opt/rh/cfme-gemset/bundler/gems/ruport-3727775479b0/lib/ruport/controller.rb:583:in `each' /opt/rh/cfme-gemset/bundler/gems/ruport-3727775479b0/lib/ruport/controller.rb:583:in `execute_stages' /opt/rh/cfme-gemset/bundler/gems/ruport-3727775479b0/lib/ruport/controller.rb:574:in `_run_' /opt/rh/cfme-gemset/bundler/gems/ruport-3727775479b0/lib/ruport/controller.rb:520:in `run' /opt/rh/cfme-gemset/bundler/gems/ruport-3727775479b0/lib/ruport/controller.rb:436:in `render' /var/www/miq/vmdb/app/models/miq_report/formatters/graph.rb:13:in `to_chart' /var/www/miq/vmdb/app/models/miq_widget/chart_content.rb:8:in `generate' /var/www/miq/vmdb/app/models/miq_widget.rb:285:in `generate_one_content_for_user' /var/www/miq/vmdb/app/models/miq_widget/content_generator.rb:32:in `block in determine_content' /var/www/miq/vmdb/app/models/miq_widget/content_generator.rb:32:in `collect' /var/www/miq/vmdb/app/models/miq_widget/content_generator.rb:32:in `determine_content' /var/www/miq/vmdb/app/models/miq_widget/content_generator.rb:8:in `generate' /var/www/miq/vmdb/app/models/miq_widget.rb:221:in `generate_content' /var/www/miq/vmdb/app/models/miq_queue.rb:347:in `block in deliver' /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:343:in `deliver' /var/www/miq/vmdb/app/models/miq_queue_worker_base/runner.rb:106:in `deliver_queue_message' /var/www/miq/vmdb/app/models/miq_queue_worker_base/runner.rb:135:in `deliver_message' /var/www/miq/vmdb/app/models/miq_queue_worker_base/runner.rb:153:in `block in do_work' /var/www/miq/vmdb/app/models/miq_queue_worker_base/runner.rb:147:in `loop' /var/www/miq/vmdb/app/models/miq_queue_worker_base/runner.rb:147:in `do_work' /var/www/miq/vmdb/app/models/miq_worker/runner.rb:340:in `block in do_work_loop' /var/www/miq/vmdb/app/models/miq_worker/runner.rb:337:in `loop' /var/www/miq/vmdb/app/models/miq_worker/runner.rb:337:in `do_work_loop' /var/www/miq/vmdb/app/models/miq_worker/runner.rb:160:in `run' /var/www/miq/vmdb/app/models/miq_worker/runner.rb:134:in `start' /var/www/miq/vmdb/app/models/miq_worker/runner.rb:21:in `start_worker' /var/www/miq/vmdb/app/models/miq_worker.rb:357:in `block in start_runner' /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:355:in `start_runner' /var/www/miq/vmdb/app/models/miq_worker.rb:366:in `start' /var/www/miq/vmdb/app/models/miq_worker.rb:266:in `start_worker' /var/www/miq/vmdb/app/models/miq_worker.rb:150:in `block in sync_workers' /var/www/miq/vmdb/app/models/miq_worker.rb:150:in `times' /var/www/miq/vmdb/app/models/miq_worker.rb:150: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:349:in `block in monitor' /opt/rh/cfme-gemset/bundler/gems/manageiq-gems-pending-a29aab0471c6/lib/gems/pending/util/extensions/miq-benchmark.rb:11:in `realtime_store' /opt/rh/cfme-gemset/bundler/gems/manageiq-gems-pending-a29aab0471c6/lib/gems/pending/util/extensions/miq-benchmark.rb:30:in `realtime_block' /var/www/miq/vmdb/app/models/miq_server.rb:349:in `monitor' /var/www/miq/vmdb/app/models/miq_server.rb:371:in `block (2 levels) in monitor_loop' /opt/rh/cfme-gemset/bundler/gems/manageiq-gems-pending-a29aab0471c6/lib/gems/pending/util/extensions/miq-benchmark.rb:11:in `realtime_store' Actual results: It is throwing type conversion error: [----] E, [2018-04-09T02:07:34.420909 #4965:ec7138] ERROR -- : [TypeError]: no implicit conversion from nil to integer Method:[rescue in generate_one_content_for_user] [----] E, [2018-04-09T02:07:34.421192 #4965:ec7138] ERROR -- : /opt/rh/cfme-gemset/bundler/gems/manageiq-ui-classic-176dad0f32b3/lib/report_formatter/c3.rb:80:in `[]' /opt/rh/cfme-gemset/bundler/gems/manageiq-ui-classic-176dad0f32b3/lib/report_formatter/c3.rb:80:in `build_document_header' Expected results: It should not throw any exception and generate the contents for all the widgets. Additional info: I have checked at rails console, below is the result: irb(main):001:0> widget_object = MiqWidget.find_by_id('99000000000065') PostgreSQLAdapter#log_after_checkout, connection_pool: size: 5, connections: 1, in use: 1, waiting_in_queue: 0 => #<MiqWidget id: 99000000000065, guid: "0c4ff776-d122-11e6-9e30-00505680312b", description: "Groups: vCPU (Total)", title: "Groups: vCPU (Total)", content_type: "chart", options: {}, visibility: {:roles=>["_ALL_"]}, user_id: nil, resource_id: 99000000000189, resource_type: "MiqReport", miq_schedule_id: 99000000000091, enabled: true, read_only: false, created_at: "2017-01-02 19:31:24", updated_at: "2018-04-09 06:07:36", last_generated_content_on: "2018-04-09 06:07:36", miq_task_id: 99000000894270> irb(main):002:0> widget_object.queue_generate_content_for_users_or_group => #<MiqQueue id: 99000089321939, target_id: nil, priority: 100, method_name: "generate_content", state: "ready", created_on: "2018-04-09 06:18:34", updated_on: "2018-04-09 06:18:34", lock_version: 0, task_id: nil, deliver_on: nil, queue_name: "reporting", class_name: "MiqWidget", instance_id: 99000000000065, args: [], miq_callback: {:class_name=>"MiqWidget", :instance_id=>99000000000065, :method_name=>:generate_content_complete_callback}, msg_data: nil, zone: nil, role: "reporting", server_guid: nil, msg_timeout: 3600, handler_id: nil, handler_type: nil, for_user: nil, for_user_id: nil, expires_on: nil>
Created attachment 1420689 [details] sample_report_widget_is_not_working
https://github.com/ManageIQ/manageiq/pull/17347
New commit detected on ManageIQ/manageiq/master: https://github.com/ManageIQ/manageiq/commit/d7a37e8ff374e040fc946cc6246f038baa18823a commit d7a37e8ff374e040fc946cc6246f038baa18823a Author: Yuri Rudman <yrudman> AuthorDate: Thu Apr 26 09:08:38 2018 -0400 Commit: Yuri Rudman <yrudman> CommitDate: Thu Apr 26 09:08:38 2018 -0400 do not change current_group for super admin user when executing Rbac#lookup_user_group Example when updating user.current_group in group's look-up is bad: if widget set-up for different group than during content generation (triggered manually from UI) the last group will become current group for super user and this may throw unexpectd errors ( like failing ApplicationController.assert_privileges(widget_refresh) Fixes https://bugzilla.redhat.com/show_bug.cgi?id=1564986 lib/rbac/filterer.rb | 8 +- 1 file changed, 5 insertions(+), 3 deletions(-)
Fixed and verified in 5.10.0.1.20180619163011_900fdc4. Widget content is generated successfully.