Bug 634975

Summary: amqp-broker shows merely after manual QMF operation
Product: Red Hat Enterprise MRG Reporter: Jan Sarenik <jsarenik>
Component: cuminAssignee: Trevor McKay <tmckay>
Status: CLOSED ERRATA QA Contact: Jan Sarenik <jsarenik>
Severity: medium Docs Contact:
Priority: medium    
Version: 1.3CC: iboverma, matt, tmckay, tross, whenry
Target Milestone: 2.0   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: cumin-0.1.4554-1.el5 Doc Type: Bug Fix
Doc Text:
Cause An error in cumin under Python 2.4 prevented resolution of dangling references to QMF objects when a reference was received before the object to which it referred. (Not present in later versions of Python) Consequence Certain objects would not be visible in the user interface if they contained a dangling reference to another object. Fix Repaired the programming error so that cumin operates correctly under Python 2.4. Result Dangling references are now resolved whenever an object previously referenced is received by cumin.
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-06-23 15:39:59 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 693778    
Attachments:
Description Flags
Debug line showing deferred link resolution for broker none

Description Jan Sarenik 2010-09-17 13:25:35 UTC
After installing Cumin according to manual and setting up
all the stuff around (sesame, condor) I do not see "amqp-broker"
in Messaging tab.

cumin-0.1.4297-1.el5
qpid-cpp-server-0.7.946106-15.el5

How reproducible: I think this is at least 50%, but maybe more

Steps to Reproduce:
1. Set up Cumin according to manual. Everythin local.
2. Log in, see no broker for a long time (tens of minutes)
3. On terminal shell, run "qpid-config queue add test"
  
Actual results: After the "qpid-config" command is issued
  the broker immediately appears (less than minute) in Cumin.

Expected results: Broker appears even without manually
  triggering its spirit.

Comment 1 Jan Sarenik 2010-09-22 08:52:44 UTC
Still present in cumin-0.1.4323-1.el5

The broker does not appear even after 10 minutes of Cumin running
and user logged in.

But soon after issuing "qpid-config add queue new", the broker appears
in Messaging tab.

Comment 3 William Henry 2011-01-11 15:28:42 UTC
Notes from 668528:
An event like qpid-stat triggers some sort of change event which allows cumin
to see the broker on the console UI. 

More details on the steps:
Steps to Reproduce:
Install MRG Messaging as per MRG Messaging Installation guide.
Install the MRG Console as per the MRG Management Console Installation Guide.
Start the broker 
Start the console
Log into the console and go to the Messaging tab. There is no broker.
Wait as long as you'd like. (I ran it for a weekend.)
Then run qpid-stat -c
Look at the console and see that the broker now shows up.

From Trevor - a diagnosis of the problem:
Note, this seems to be caused by a null value in the _systemRef_id field of the
broker record in the postgres database.  Starting up a console causes this
value to be filled in.

Comment 4 William Henry 2011-01-11 15:29:07 UTC
*** Bug 668528 has been marked as a duplicate of this bug. ***

Comment 6 Trevor McKay 2011-02-18 14:45:43 UTC
It appears there is a simpler way to reproduce this that avoids the reinstall.  This seems to be near 100% with current mrg-devel packages, both on my RHEL VM and on a box from beaker.

Based on past history, if the broker is going to show up it should show up almost immediately.  If Grid and Sesame data is there, but the broker is not, it's most likely in the failed condition.

For quick reproduce, with a system installed, do the following:

/sbin/service cumin stop
cumin-admin drop-schema
cumin-admin create-schema
cumin-admin add-user cumin cumin  # or guest, or whoever
/sbin/service cumin start

Log back in to cumin.  Broker will likely be missing on the messaging tab until qpid-stat -c or some such is run.

Comment 7 Jan Sarenik 2011-02-23 07:03:46 UTC
BTW, all I have to do to lose the broker presence
is restarting the cumin service.

That is on cumin-0.1.4546-1.el5

Comment 8 Trevor McKay 2011-02-23 18:00:22 UTC
Created attachment 480542 [details]
Debug line showing deferred link resolution for broker

This line is decidedly absent when running with the broken dictionary implementation.  The link is deferred, but never realized.

Comment 9 Trevor McKay 2011-02-23 18:06:45 UTC
Fixed in revision 4554.

The local implementation of defaultdict() to extend Python 2.4 had a bug, and this broke deferred link handling in cumin-data.  It turns out this BZ is a result of the deferred link handling not working.  With the corrected dictionary implementation, this BZ is solved.  

Attached is a file showing a debug output line as evidence.  With the broken dictionary implementation, this line is not present.

It is possible that this may affect other BZs as well.

Comment 10 Jan Sarenik 2011-02-24 14:15:41 UTC
Verified in cumin-0.1.4554-1.el5

Comment 11 Trevor McKay 2011-03-15 20:10:52 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
    An error in cumin under Python 2.4 prevented resolution of dangling references to QMF objects when a reference was received before the object to which it referred.  (Not present in later versions of Python)

Consequence
    Certain objects would not be visible in the user interface if they contained a dangling reference to another object.

Fix
    Repaired the programming error so that cumin operates correctly under Python 2.4.

Result
    Dangling references are now resolved whenever an object previously referenced is received by cumin.

Comment 12 errata-xmlrpc 2011-06-23 15:39:59 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/RHEA-2011-0889.html