Bug #3122
closed
when fact filters are added to a user, error column reference "id" is ambiguous for dashboard and fact_values
Added by m w over 11 years ago.
Updated over 6 years ago.
Description
In 1.2.2, when fact filters are added to a user, this error is displayed when trying to view /dashboard or /fact_values
Started GET "/" for x.x.x.x at 2013-09-19 10:43:17 -0400
Processing by DashboardController#index as HTML
Rendered dashboard/_status_table.html.erb (9.3ms)
Rendered dashboard/index.html.erb within layouts/application (21.1ms)
Operation FAILED: PGError: ERROR: column reference "id" is ambiguous
LINE 1: SELECT id FROM "hosts" INNER JOIN "fact_values" ON "fact_val...
^
: SELECT id FROM "hosts" INNER JOIN "fact_values" ON "fact_values"."host_id" = "hosts"."id" WHERE "hosts"."type" IN ('Host::Managed') AND (((hosts.id = fact_values.host_id and fact_values.fact_name_id = 798 and fact_values.value = 'factname')) )
Rendered common/500.html.erb within layouts/application (6.6ms)
Completed 500 Internal Server Error in 101ms (Views: 7.9ms | ActiveRecord: 0.6ms)
Seems like same issue as http://projects.theforeman.org/issues/2579
- Category set to Database
- Target version set to 1.3.0
- Difficulty set to trivial
- Status changed from New to Rejected
Can't reproduce using the latest from "develop" branch.
- Status changed from Rejected to New
This is probably a Rails 3.2.8 issue (as used in the RPMS), as .14 and more recent versions handle the ambiguity. If we use a pluck(:id) or similar in a statement that also uses joins, we need to explicitly mention the table name. See also #2579.
Could you try on an RPM install or 3.2.8 please Dmitri?
- Assignee set to Anonymous
- Status changed from New to Closed
seems to be working on 3.2.8. SQL query uses table name explicitly (SELECT "hosts"."id" AS t0_r0 ... INNER JOIN "fact_values" ON "fact_values"."host_id" = "hosts"."id" ...).
- Status changed from Closed to New
- Target version deleted (
1.3.0)
Reproduced on a 1.3.0-RC3 RPM installation:
ActiveRecord::StatementInvalid
PGError: ERROR: column reference "id" is ambiguous LINE 1: SELECT id FROM "hosts" INNER JOIN "fact_values" ON "fact_val... ^ : SELECT id FROM "hosts" INNER JOIN "fact_values" ON "fact_values"."host_id" = "hosts"."id" WHERE "hosts"."type" IN ('Host::Managed') AND (((hosts.owner_id in (NULL) AND hosts.owner_type = 'Usergroup') OR (hosts.owner_id = 2 AND hosts.owner_type = 'User')) or (hosts.domain_id in (1)) or ((hosts.id = fact_values.host_id and fact_values.fact_name_id = 61 and fact_values.value = 'x86_64')) )
app/models/report.rb:35:in `block in '
app/helpers/dashboard_helper.rb:42:in `latest_events'
app/views/dashboard/index.html.erb:17:in `_app_views_dashboard_index_html_erb___3590133410700692552_61518440'
app/controllers/dashboard_controller.rb:6:in `index'
app/models/concerns/foreman/thread_session.rb:33:in `clear_thread'
foreman-1.3.0-0.4.RC3.el6.noarch
ruby193-rubygem-activerecord-3.2.8-12.el6.noarch
ruby193-rubygem-pg-0.12.2-8.el6.x86_64
- Target version set to 1.15.0
- Status changed from New to Assigned
- Status changed from Assigned to Ready For Testing
- Translation missing: en.field_release set to 1
- Status changed from Ready For Testing to Closed
- % Done changed from 0 to 100
- Blocks Bug #2982: Non Admin user Dashboard load is very slow with a large number of mangaged nodes added
still broken for /fact_values
needs the same fix
- Copied to Bug #3863: when fact filters are added to a user, error column reference "id" is ambiguous for fact_values added
m w wrote:
still broken for /fact_values
needs the same fix
Sorry, I missed this part of the bug report. I've copied this to #3863.
- Related to Bug #2579: Host groups with puppet classes triggers: column 'id' in field list is ambiguous added
- Related to Bug #5841: Foreman dashboard slow in 1.5 for non admin users added
Also available in: Atom
PDF