Bug #12916
closedPG::UndefinedTable error when searching for reports
Description
Hello,
when I use the reports view in the web ui and search for reports with a specific environment, I receive a PG::UndefinedTable error with a traceback:
ActiveRecord::StatementInvalid PG::UndefinedTable: ERROR: missing FROM-clause entry for table "hosts_reports" LINE 1: ...1_r4, "environments"."hostgroups_count" AS t1_r5, "hosts_rep... ^ : SELECT "reports"."id" AS t0_r0, "reports"."host_id" AS t0_r1, "reports"."reported_at" AS t0_r2, "reports"."created_at" AS t0_r3, "reports"."updated_at" AS t0_r4, "reports"."status" AS t0_r5, "reports"."metrics" AS t0_r6, "environments"."id" AS t1_r0, "environments"."name" AS t1_r1, "environments"."created_at" AS t1_r2, "environments"."updated_at" AS t1_r3, "environments"."hosts_count" AS t1_r4, "environments"."hostgroups_count" AS t1_r5, "hosts_reports"."id" AS t2_r0, "hosts_reports"."name" AS t2_r1, "hosts_reports"."last_compile" AS t2_r2, "hosts_reports"."last_report" AS t2_r3, "hosts_reports"."updated_at" AS t2_r4, "hosts_reports"."created_at" AS t2_r5, "hosts_reports"."root_pass" AS t2_r6, "hosts_reports"."puppet_status" AS t2_r7, "hosts_reports"."architecture_id" AS t2_r8, "hosts_reports"."operatingsystem_id" AS t2_r9, "hosts_reports"."environment_id" AS t2_r10, "hosts_reports"."ptable_id" AS t2_r11, "hosts_reports"."medium_id" AS t2_r12, "hosts_reports"."build" AS t2_r13, "hosts_reports"."comment" AS t2_r14, "hosts_reports"."disk" AS t2_r15, "hosts_reports"."installed_at" AS t2_r16, "hosts_reports"."model_id" AS t2_r17, "hosts_reports"."hostgroup_id" AS t2_r18, "hosts_reports"."owner_id" AS t2_r19, "hosts_reports"."owner_type" AS t2_r20, "hosts_reports"."enabled" AS t2_r21, "hosts_reports"."puppet_ca_proxy_id" AS t2_r22, "hosts_reports"."managed" AS t2_r23, "hosts_reports"."use_image" AS t2_r24, "hosts_reports"."image_file" AS t2_r25, "hosts_reports"."uuid" AS t2_r26, "hosts_reports"."compute_resource_id" AS t2_r27, "hosts_reports"."puppet_proxy_id" AS t2_r28, "hosts_reports"."certname" AS t2_r29, "hosts_reports"."image_id" AS t2_r30, "hosts_reports"."organization_id" AS t2_r31, "hosts_reports"."location_id" AS t2_r32, "hosts_reports"."type" AS t2_r33, "hosts_reports"."compute_profile_id" AS t2_r34, "hosts_reports"."otp" AS t2_r35, "hosts_reports"."realm_id" AS t2_r36, "hosts_reports"."provision_method" AS t2_r37, "hosts_reports"."grub_pass" AS t2_r38 FROM "reports" INNER JOIN "hosts" ON "hosts"."id" = "reports"."host_id" AND "hosts"."type" IN ('Host::Managed') LEFT OUTER JOIN "hosts" "hosts_reports_join" ON "hosts_reports_join"."id" = "reports"."host_id" AND "hosts_reports_join"."type" IN ('Host::Managed') LEFT OUTER JOIN "environments" ON "environments"."id" = "hosts_reports_join"."environment_id" WHERE "hosts"."organization_id" IN (71) AND (("environments"."name" = 'blume')) ORDER BY "reports"."reported_at" DESC LIMIT 50 OFFSET 0
In the web UI, the following query has been used: eventful = true and environment = blume
The user in question has no administrative rights and has only access to hosts within his organization.
I already checked the permissions settings, the user has the right to view reports.
When the same query is executed with an account, which has administrative rights, the search works without issues.
Adding an additional query to the search, like match on hosts, it works: eventful = true and environment = blume and name ~ haso
This has been found on our instance, which has been recently upgraded from 1.5 -> 1.9 (intermediate releases included). I could produce this error on 1.10rc3 as well.
Regards,
Stefan