Bug 1075550 - when I delete user in webUI this error message appears in PostgreSQL log: ERROR: null value in column "user_id" violates not-null constraint
Summary: when I delete user in webUI this error message appears in PostgreSQL log: ERR...
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Red Hat Satellite
Classification: Red Hat
Component: WebUI
Version: Nightly
Hardware: Unspecified
OS: Unspecified
unspecified
low vote
Target Milestone: Unspecified
Assignee: Ohad Levy
QA Contact: sthirugn@redhat.com
URL: http://projects.theforeman.org/issues...
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2014-03-12 11:12 UTC by Jan Hutař
Modified: 2019-09-26 18:18 UTC (History)
4 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2014-09-11 12:21:39 UTC
Target Upstream Version:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Foreman Issue Tracker 4641 0 None None None 2016-04-22 15:44:02 UTC

Description Jan Hutař 2014-03-12 11:12:25 UTC
Description of problem:
When I delete user in webUI this error message appears in PostgreSQL log.


Version-Release number of selected component (if applicable):
Satellite-6.0.3-RHEL-6-20140305.1


How reproducible:
always


Steps to Reproduce:
1. In https://<fqdn>/users create new user
2. Delete it
3. Watch PostgreSQL log


Actual results:
==> /var/log/foreman/production.log <==
Processing by UsersController#destroy as HTML
  Parameters: {"authenticity_token"=>"5yMGr+z1YPItZWs4znL1TsgRV72Get+TIo/tbiem/jk=", "id"=>"6-ccccc"}
Expire fragment views/tabs_and_title_records-1 (0.1ms)
Expire fragment views/tabs_and_title_records-1 (0.4ms)
Expire fragment views/tabs_and_title_records-1 (0.1ms)

==> /var/lib/pgsql/data/pg_log/postgresql-Wed.log <==
ERROR:  null value in column "user_id" violates not-null constraint
STATEMENT:  INSERT INTO "cached_user_roles" ("created_at", "role_id", "updated_at", "user_id", "user_role_id") VALUES ($1, $2, $3, $4, $5) RETURNING "id"

==> /var/log/foreman/production.log <==
Redirected to https://<fqdn>/users
Completed 302 Found in 412ms (ActiveRecord: 26.3ms)
Processing by UsersController#index as HTML
  Rendered users/index.html.erb within layouts/application (22.7ms)
  Rendered common/_searchbar.html.erb (3.5ms)
  Rendered home/_user_dropdown.html.erb (1.5ms)
Read fragment views/tabs_and_title_records-1 (0.1ms)
  Rendered home/_organization_dropdown.html.erb (5.0ms)
  Rendered home/_org_switcher.html.erb (5.4ms)
  Rendered home/_submenu.html.erb (4.2ms)
  Rendered home/_submenu.html.erb (6.9ms)
  Rendered home/_submenu.html.erb (4.7ms)
  Rendered home/_submenu.html.erb (3.0ms)
  Rendered home/_submenu.html.erb (2.9ms)
  Rendered home/_submenu.html.erb (5.0ms)
Write fragment views/tabs_and_title_records-1 (1.2ms)
  Rendered home/_topbar.html.erb (39.3ms)
  Rendered layouts/base.html.erb (41.1ms)
Completed 200 OK in 80ms (Views: 66.7ms | ActiveRecord: 4.5ms)


Expected results:
No error in the PostgreSQL should be logged.

Comment 2 jmagen@redhat.com 2014-05-22 08:14:49 UTC
https://github.com/theforeman/foreman/pull/1371

submitted by community member 'marianitadn;

Comment 3 Bryan Kearney 2014-07-24 18:01:41 UTC
Moving to POST since upstream bug http://projects.theforeman.org/issues/4641 has been closed
-------------
Maria Nita
I tried to write a regression test case for this, but no luck.

This is the test https://github.com/marianitadn/foreman/blob/4641-delete-user/test/unit/user_test.rb#L341-L351, but it doesn't fail.

I think I have an idea for the solution, but without a test I can't be convinced. 
-------------
Dominic Cleal
I think this could be tricky to test, as the deletion and therefore your test are actually successful.  The error seems to be coming from the "ensure_default_role" after_commit hook on the User model (thanks to Marek for pointing to this).  Errors in here seem to be swallowed and are only hitting the logs.  It looks like the test_after_commit gem would enable testing of it, if you want to try it out.

Probably setting the after_commit hook to run on create and update only would fix the issue.
-------------
Dominic Cleal
https://github.com/theforeman/foreman/pull/1371
-------------
Maria Nita
Applied in changeset commit:a0bd5bb282c27f72a5e3746a1582b73366c15d21.

Comment 7 sthirugn@redhat.com 2014-09-04 18:41:03 UTC
Verified. No error seen in postgresql log.

Version Tested:
GA Snap 7 - Satellite-6.0.4-RHEL-6-20140829.0

* apr-util-ldap-1.3.9-3.el6_0.1.x86_64
* candlepin-0.9.23-1.el6_5.noarch
* candlepin-common-1.0.1-1.el6_5.noarch
* candlepin-scl-1-5.el6_4.noarch
* candlepin-scl-quartz-2.1.5-5.el6_4.noarch
* candlepin-scl-rhino-1.7R3-1.el6_4.noarch
* candlepin-scl-runtime-1-5.el6_4.noarch
* candlepin-selinux-0.9.23-1.el6_5.noarch
* candlepin-tomcat6-0.9.23-1.el6_5.noarch
* elasticsearch-0.90.10-6.el6sat.noarch
* foreman-1.6.0.42-1.el6sat.noarch
* foreman-compute-1.6.0.42-1.el6sat.noarch
* foreman-gce-1.6.0.42-1.el6sat.noarch
* foreman-libvirt-1.6.0.42-1.el6sat.noarch
* foreman-ovirt-1.6.0.42-1.el6sat.noarch
* foreman-postgresql-1.6.0.42-1.el6sat.noarch
* foreman-proxy-1.6.0.30-1.el6sat.noarch
* foreman-selinux-1.6.0.14-1.el6sat.noarch
* foreman-vmware-1.6.0.42-1.el6sat.noarch
* katello-1.5.0-30.el6sat.noarch
* katello-ca-1.0-1.noarch
* katello-certs-tools-1.5.6-1.el6sat.noarch
* katello-installer-0.0.62-1.el6sat.noarch
* openldap-2.4.23-34.el6_5.1.x86_64
* openldap-devel-2.4.23-34.el6_5.1.x86_64
* pulp-katello-0.3-4.el6sat.noarch
* pulp-nodes-common-2.4.1-0.5.rc1.el6sat.noarch
* pulp-nodes-parent-2.4.1-0.5.rc1.el6sat.noarch
* pulp-puppet-plugins-2.4.1-0.5.rc1.el6sat.noarch
* pulp-puppet-tools-2.4.1-0.5.rc1.el6sat.noarch
* pulp-rpm-plugins-2.4.1-0.5.rc1.el6sat.noarch
* pulp-selinux-2.4.1-0.5.rc1.el6sat.noarch
* pulp-server-2.4.1-0.5.rc1.el6sat.noarch
* python-ldap-2.3.10-1.el6.x86_64
* ruby193-rubygem-net-ldap-0.3.1-3.el6sat.noarch
* ruby193-rubygem-runcible-1.1.0-2.el6sat.noarch

Comment 8 Bryan Kearney 2014-09-11 12:21:39 UTC
This was delivered with Satellite 6.0 which was released on 10 September 2014.


Note You need to log in before you can comment on or make changes to this bug.