Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.
Red Hat Satellite engineering is moving the tracking of its product development work on Satellite to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "Satellite project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs will be migrated starting at the end of May. If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "Satellite project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/SAT-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.

Bug 1105617

Summary: UI throws 500 ISE in production.log while installing a package one after another
Product: Red Hat Satellite Reporter: Sachin Ghai <sghai>
Component: WebUIAssignee: Brad Buckingham <bbuckingham>
Status: CLOSED CURRENTRELEASE QA Contact: sthirugn <sthirugn>
Severity: high Docs Contact:
Priority: unspecified    
Version: 6.0.3CC: bbuckingham, bkearney, jmontleo, sghai, sthirugn
Target Milestone: UnspecifiedKeywords: Triaged
Target Release: Unused   
Hardware: Unspecified   
OS: Unspecified   
URL: http://projects.theforeman.org/issues/6624
Whiteboard:
Fixed In Version: Doc Type: Release Note
Doc Text:
In some automated cases, the task locking is not quick enough. If you experience this, please execute foreman-debug on your machine and submit a support request containing the output of the command.
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-09-11 12:29:55 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
logs from server (var/log/foreman/production.log) none

Description Sachin Ghai 2014-06-06 14:23:21 UTC
Created attachment 902940 [details]
logs from server (var/log/foreman/production.log)

Description of problem:
We need to handle the case when required lock is already taken by a task. 
UI should throw proper error message. Like I tried to install a package on remote machine via UI and somehow I double clicked the pakage install button. 
 And production.log thrown a long exception with 500 internal server error. Hpwever I didn't see any error on UI.

Later I tried to install another package when install for one package is already on-going. And this time too I found same error in production.log and no change on UI. Neither the package install button submitted nor any error raised on UI.


log snippet from production.log:

Processing by Katello::Api::V2::SystemPackagesController#install as JSON
  Parameters: {"uuid"=>"50415ba8-6cad-4784-8672-565c9dec6b52", "packages"=>["ksh"], "api_version"=>"v2", "system_id"=>"50415ba8-6cad-4784-8672-565c9dec6b52", "system_package"=>{"uuid"=>"50415ba8-6cad-4784-8672-565c9dec6b52", "packages"=>["ksh"]}}
Required lock is already taken by other running tasks.
Please inspect their state, fix their errors nad resume them.

Required lock: read
Conflicts with tasks:
- https://dhcp207-55.lab.eng.pnq.redhat.com/foreman_tasks/tasks/0ef16a7f-e183-44cc-9e74-ba439a4feeae (ForemanTasks::Lock::LockConflict)


Version-Release number of selected component (if applicable):
 sat6 beta snap8 (Satellite-6.0.3-RHEL-6-20140604.0).


How reproducible:
always

Steps to Reproduce:
1. register client with sat6 server
2. install package on remote client from UI
3. re-triger install package
4. see production.log

Actual results:

Expected results:
UI should throw proper error on UI when lock is taken by a task and there shouldn't be ISE in poduction.log


Additional info:

Comment 1 RHEL Program Management 2014-06-06 14:43:47 UTC
Since this issue was entered in Red Hat Bugzilla, the release flag has been
set to ? to ensure that it is properly evaluated for this release.

Comment 3 Brad Buckingham 2014-07-15 18:35:37 UTC
Created redmine issue http://projects.theforeman.org/issues/6624 from this bug

Comment 4 Brad Buckingham 2014-07-15 18:55:01 UTC
Proposed fix in Katello PR: 
  https://github.com/Katello/katello/pull/4430

In order to address this issue, the above change will disable the various actions in the UI (e.g. Perform, Update All & (X) (i.e pkg remove) after a user has clicked on them and re-enable them once the action has been accepted by the server (i.e. 202).  This will eliminate the behavior observed with 'double-clicking' the actions.  

I was able to recreate the 'Lock' error; however, I did not observe any cases where I was no longer able to perform actions after it was received.  As a result, no changes made in that area.

Also, did not update the logging to eliminate the stack trace.  That is common behavior for handling exceptions throughout the app, to provide as much info as possible to debug issues/errors.  That said, we may find the need to minimize that output in the future.

Comment 6 sthirugn@redhat.com 2014-08-10 05:08:27 UTC
Verified.

When a task is already in progress - trying to install or remove a package gave me an error - "Required lock is already taken by other running tasks. Please inspect their state, fix their errors and resume them. Required lock: read Conflicts with tasks: - https://$host/foreman_tasks/tasks/ba33a09e-64ed-4fc1-8d34-b7e42225a9c3"

The above error message lets me know that I need to wait for a previous task to finish before I can proceed with other tasks.

Version Tested:
GA Snap 4 - Satellite-6.0.4-RHEL-6-20140806.0

* apr-util-ldap-1.3.9-3.el6_0.1.x86_64
* candlepin-0.9.19-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.19-1.el6_5.noarch
* candlepin-tomcat6-0.9.19-1.el6_5.noarch
* elasticsearch-0.90.10-4.el6sat.noarch
* foreman-1.6.0.38-1.el6sat.noarch
* foreman-compute-1.6.0.38-1.el6sat.noarch
* foreman-gce-1.6.0.38-1.el6sat.noarch
* foreman-libvirt-1.6.0.38-1.el6sat.noarch
* foreman-ovirt-1.6.0.38-1.el6sat.noarch
* foreman-postgresql-1.6.0.38-1.el6sat.noarch
* foreman-proxy-1.6.0.23-1.el6sat.noarch
* foreman-selinux-1.6.0.4-1.el6sat.noarch
* foreman-vmware-1.6.0.38-1.el6sat.noarch
* katello-1.5.0-28.el6sat.noarch
* katello-ca-1.0-1.noarch
* katello-certs-tools-1.5.6-1.el6sat.noarch
* katello-installer-0.0.57-1.el6sat.noarch
* openldap-2.4.23-34.el6_5.1.x86_64
* pulp-katello-0.3-3.el6sat.noarch
* pulp-nodes-common-2.4.0-0.30.beta.el6sat.noarch
* pulp-nodes-parent-2.4.0-0.30.beta.el6sat.noarch
* pulp-puppet-plugins-2.4.0-0.30.beta.el6sat.noarch
* pulp-puppet-tools-2.4.0-0.30.beta.el6sat.noarch
* pulp-rpm-plugins-2.4.0-0.30.beta.el6sat.noarch
* pulp-selinux-2.4.0-0.30.beta.el6sat.noarch
* pulp-server-2.4.0-0.30.beta.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
* sssd-ldap-1.11.5.1-3.el6.x86_64

Comment 7 sthirugn@redhat.com 2014-08-10 05:09:48 UTC
@sghai: Please review Comment 4 and Comment 6 and let me know if you are okay with this.  Otherwise please feel free to reopen.

Comment 9 Bryan Kearney 2014-09-11 12:29:55 UTC
This was delivered with Satellite 6.0 which was released on 10 September 2014.

Comment 10 Sachin Ghai 2015-04-20 11:09:37 UTC
Clearing need_info flag..