Bug 658589 - Unable to call update on QMF object
Summary: Unable to call update on QMF object
Alias: None
Product: Red Hat Enterprise MRG
Classification: Red Hat
Component: qpid-qmf
Version: 1.3
Hardware: Unspecified
OS: Unspecified
Target Milestone: ---
: ---
Assignee: messaging-bugs
QA Contact: MRG Quality Engineering
Depends On:
TreeView+ depends on / blocked
Reported: 2010-11-30 18:49 UTC by Robert Rati
Modified: 2011-08-12 16:02 UTC (History)
5 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Last Closed: 2011-01-12 20:57:56 UTC
Target Upstream Version:

Attachments (Terms of Use)

Description Robert Rati 2010-11-30 18:49:54 UTC
Description of problem:
The configd is a python console which retrieves a QMF object from wallaby and keeps track of it while the daemon runs.  Periodically, the configd will call obj.update before performing operations.  At some point, the update call throws an exception and any subsequent call of update throws an exception.

Version-Release number of selected component (if applicable):

How reproducible:

Steps to Reproduce:
Actual results:

Expected results:

Additional info:

Comment 2 Ted Ross 2011-01-12 18:41:01 UTC
Can you provide more detail on the failure?  What was the text of the exception raised?  Was there a timeout?  Did the underlying object on the agent disappear?  Does this symptom coincide with any loss of connectivity (agent or console)?

Please note that calling object.update() causes a query request to be sent to the agent.  The call blocks while waiting for a response.  There are two legitimate error cases here:

1) The agent disconnects and does not respond causing a timeout.
2) The object is deleted on the agent and the response contains no data.  In this case, an exception is raised with "Underlying object no longer exists".

Your application code needs to handle these cases because they may occur in the normal course of operation.

Comment 3 Robert Rati 2011-01-12 19:24:10 UTC
I believe the cause of this was the agent deleting an object that a console was holding onto.  I found a reproducer for the error case by reloading the wallaby database, which will cause the object held by the condor_configd (a console) to be deleted.  When the configd goes to update, it throws and exception.  I can't say for sure this is the cause of the original issue, but it is likely this case or something similar.

In the scenario we reproduced, we received and exception with "Underlying object no longer exists" and the configd now properly handles the case.

The original error had no useful data to diagnose the issue, so I augmented the configd to print more useful information should it occur again.

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