Bug 659247 - Delete queue dialog loop
Summary: Delete queue dialog loop
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise MRG
Classification: Red Hat
Component: cumin
Version: 1.3
Hardware: Unspecified
OS: Unspecified
low
medium
Target Milestone: 2.0.1
: ---
Assignee: Trevor McKay
QA Contact: Jan Sarenik
URL:
Whiteboard:
Depends On:
Blocks: 723887
TreeView+ depends on / blocked
 
Reported: 2010-12-02 10:00 UTC by Jan Sarenik
Modified: 2011-09-07 16:45 UTC (History)
5 users (show)

Fixed In Version: cumin-0.1.4840-1
Doc Type: Bug Fix
Doc Text:
An object that was in the process of being deleted could have still been selecetd in Cumin, and any further operations on such an object resulted in internal errors. In turn, these unhandled exceptions could have caused unpredictable behavior, such as a web form stuck in an infinite loop. This update adds appropriate error-handling around forms which operate on selected objects, with the result that operations on deleted objects are now handled gracefully by Cumin, which informs users in the event of an error.
Clone Of:
Environment:
Stable MRG 1.3.0.1
Last Closed: 2011-09-07 16:45:16 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2011:1249 0 normal SHIPPED_LIVE Moderate: Red Hat Enterprise MRG Grid 2.0 security, bug fix and enhancement update 2011-09-07 16:40:45 UTC

Description Jan Sarenik 2010-12-02 10:00:35 UTC
When I am press Remove after selecting a queue which already
got deleted, just Cumin did not notice it yet, I run into
infinite loop of empty dialog with header Remove and buttons
Cancel and Submit. Pressing any of the buttons refreshes
the page and the same dialog is shown again.

cumin-0.1.4410-2.el5

How reproducible: 100%

Steps to Reproduce:
1. First create a test queue, go to Messaging -> Queues -> Add queue
2. When the new queue appears in the list, select its check box.
3. Press the Remove button and submit the dialog
4. The page gets refreshed but the queue which is going to be deleted
   is still in the list, and selected. Repeat step #3 until you get
   the empty endless dialog.
  
Actual results: Page http://localhost:45672/form.html? is shown and
  there is no way to get rid of the dialog other than changing the
  URL by hand.

Expected results: The dialog is not shown for queue which is going to
  be deleted.

Additional info: You can see following error while repeating step three:
  Remove: Failed (ExecutionException(error_code=404, command_id=serial(68), class_code=8, command_code=2, field_index=0, description=u'not-found: Queue not found: ahoj (qpid/broker/SessionAdapter.cpp:754)', error_info={}, channel=1, id=serial(360)))

  But when the above message appears, the dialog is still not in the endless
  loop. You have to press Remove again (e.g. I did it four times) or you
  can wait few seconds after first Remove while the queue is still listed.

Comment 1 Trevor McKay 2011-05-24 20:40:27 UTC
Also note, if nothing is selected and remove is pressed, the remove dialog box comes up without a selection.  That probably is wrong as well.

Comment 2 Trevor McKay 2011-05-25 13:07:18 UTC
Revision 4784.

Fixed infinite loop, problem was an uncaught exception on an object that had been deleted after it had been selected.

Additionally, fixed the buttons here (and for Job hold, release, remove) so that press on an empty selection goes straight to the cancel state and completes the task process.  Effect is a momentary "Loading" state but no form.

As for the error message that appears if multiple deletions are made on the same queue before they can be processed, that may be a harder problem.  Do we want to try to suppress that, or are we okay with the message? (personally, I am okay with it)

Comment 3 Chad Roberts 2011-05-25 14:24:06 UTC
+1 for being ok with the error message

Comment 4 Jan Sarenik 2011-05-25 14:39:32 UTC
As for me, the error message was not the point of this BZ, so +1

Comment 5 Trevor McKay 2011-05-31 18:51:12 UTC
See about invalidating buttons for selections when the selection list is 0.  That is, if nothing is checked, don't allow the button press.

Comment 6 Trevor McKay 2011-06-17 20:16:50 UTC
    Technical note added. If any revisions are required, please edit the "Technical Notes" field
    accordingly. All revisions will be proofread by the Engineering Content Services team.
    
    New Contents:
Cause
    Asynchronous operations lead to a situation where an object which is in the process of being deleted is still selectable in Cumin.  Futher operations on the object result in internal errors.  This is okay, but Cumin does not handle the errors.

Consequence
    Unhandled exceptions cause unpredictable behavior, such as a web form stuck in an infinite loop.

Fix
    Add error handling around forms that operate on selected objects which may have been deleted.

Result
    Errors from operations on deleted objects are handled gracefully by Cumin.  Users are informed as appropriate to the operation.

Comment 8 Jan Sarenik 2011-07-21 17:49:34 UTC
Verified in cumin-0.1.4878-1.el5

Comment 9 Douglas Silas 2011-08-09 13:26:02 UTC
    Technical note updated. If any revisions are required, please edit the "Technical Notes" field
    accordingly. All revisions will be proofread by the Engineering Content Services team.
    
    Diffed Contents:
@@ -1,11 +1 @@
-Cause
+An object that was in the process of being deleted could have still been selecetd in Cumin, and any further operations on such an object resulted in internal errors. In turn, these unhandled exceptions could have caused unpredictable behavior, such as a web form stuck in an infinite loop. This update adds appropriate error-handling around forms which operate on selected objects, with the result that operations on deleted objects are now handled gracefully by Cumin, which informs users in the event of an error.-    Asynchronous operations lead to a situation where an object which is in the process of being deleted is still selectable in Cumin.  Futher operations on the object result in internal errors.  This is okay, but Cumin does not handle the errors.
-
-Consequence
-    Unhandled exceptions cause unpredictable behavior, such as a web form stuck in an infinite loop.
-
-Fix
-    Add error handling around forms that operate on selected objects which may have been deleted.
-
-Result
-    Errors from operations on deleted objects are handled gracefully by Cumin.  Users are informed as appropriate to the operation.

Comment 10 errata-xmlrpc 2011-09-07 16:45:16 UTC
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on therefore solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.

http://rhn.redhat.com/errata/RHSA-2011-1249.html


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