Bug 856646

Summary: getSubmissionID() by qdate returning duplicates
Product: Red Hat Enterprise MRG Reporter: Trevor McKay <tmckay>
Component: condor-aviaryAssignee: Pete MacKinnon <pmackinn>
Status: CLOSED ERRATA QA Contact: Martin Kudlej <mkudlej>
Severity: medium Docs Contact:
Priority: medium    
Version: DevelopmentCC: matt, mkudlej, tstclair
Target Milestone: 2.3   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: condor-7.8.5-0.1 Doc Type: Bug Fix
Doc Text:
Cause: Retrieving submission IDs with a BEFORE mode. Consequence: Duplicate submission IDs are returned. Fix: Fixed problems in the getSubmissionID implementation that could not process the specified time range query parameters. Result: Unique submission IDs are returned to the client.
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-03-06 18:45:45 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:

Description Trevor McKay 2012-09-12 14:09:48 UTC
Description of problem:

When using getSubmissionID() to scan by qdate, mode = BEFORE, Aviary returns duplicate submission records.  The results of getSubmissionSummary() and getSubmissionID() scanning by name do not return duplicates.

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

condor-aviary-7.8.3-0.1.el5

How reproducible:

100%

Steps to Reproduce:
1. Set up a condor installation with condor_aviary (I used the locator)
2. Submit multiple jobs 
3. Use the test programs in /usr/share/condor/aviary to retrieve submissions (shown below under Actual Results)
  
Actual results:

[root@somehost aviary]# ./locator.py --type=ANY
SCHEDULER | JOB | job.com | http://somehost.redhat.com:59108/services/job/
CUSTOM | QUERY_SERVER | query.com | http://somehost.redhat.com:45405/services/query/

[root@somehost aviary]# ./submissions.py --u=http://somehost.redhat.com:45405/services/query/getSubmissionSummary
[(SubmissionSummary){
   id = 
      (SubmissionID){
         name = "cat"
         owner = "admin"
         qdate = 1343740287
      }
   status = 
      (Status){
         code = "OK"
      }
   completed = 4
   held = 0
   idle = 0
   removed = 3
   running = 0
   suspended = 0
   transferring_output = 0
 }, (SubmissionSummary){
   id = 
      (SubmissionID){
         name = "dan"
         owner = "tmckay"
         qdate = 1345136722
      }
   status = 
      (Status){
         code = "OK"
      }
   completed = 0
   held = 0
   idle = 0
   removed = 1
   running = 0
   suspended = 0
   transferring_output = 0
 }, (SubmissionSummary){
   id = 
      (SubmissionID){
         name = "dog"
         owner = "admin"
         qdate = 1343740373
      }
   status = 
      (Status){
         code = "OK"
      }
   completed = 1
   held = 0
   idle = 0
   removed = 1
   running = 0
   suspended = 0
   transferring_output = 0
 }, (SubmissionSummary){
   id = 
      (SubmissionID){
         name = "george"
         owner = "tmckay"
         qdate = 1344006972
      }
   status = 
      (Status){
         code = "OK"
      }
   completed = 212
   held = 0
   idle = 0
   removed = 39
   running = 1
   suspended = 0
   transferring_output = 0
 }, (SubmissionSummary){
   id = 
      (SubmissionID){
         name = "jack"
         owner = "tmckay"
         qdate = 1345134766
      }
   status = 
      (Status){
         code = "OK"
      }
   completed = 0
   held = 0
   idle = 0
   removed = 0
   running = 1
   suspended = 0
   transferring_output = 0
 }, (SubmissionSummary){
   id = 
      (SubmissionID){
         name = "joe"
         owner = "joe"
         qdate = 1345048823
      }
   status = 
      (Status){
         code = "OK"
      }
   completed = 0
   held = 0
   idle = 0
   removed = 1
   running = 0
   suspended = 0
   transferring_output = 0
 }, (SubmissionSummary){
   id = 
      (SubmissionID){
         name = "test"
         owner = "tmckay"
         qdate = 1345048400
      }
   status = 
      (Status){
         code = "OK"
      }
   completed = 3
   held = 0
   idle = 0
   removed = 2
   running = 0
   suspended = 0
   transferring_output = 0
 }]


[root@somehost aviary]# ./submission_ids.py --u=http://somehost.redhat.com:45405/services/query/getSubmissionID --size=24 --name=cat
(reply){
   ids[] = 
      (SubmissionID){
         name = "cat"
         owner = "admin"
         qdate = 1343740287
      },
      (SubmissionID){
         name = "dan"
         owner = "tmckay"
         qdate = 1345136722
      },
      (SubmissionID){
         name = "dog"
         owner = "admin"
         qdate = 1343740373
      },
      (SubmissionID){
         name = "george"
         owner = "tmckay"
         qdate = 1344006972
      },
      (SubmissionID){
         name = "jack"
         owner = "tmckay"
         qdate = 1345134766
      },
      (SubmissionID){
         name = "joe"
         owner = "joe"
         qdate = 1345048823
      },
      (SubmissionID){
         name = "test"
         owner = "tmckay"
         qdate = 1345048400
      },
   remaining = 0
 }

[root@somehost aviary]# ./submission_ids.py --u=http://somehost.redhat.com:45405/services/query/getSubmissionID --size=24 --qdate=2000000000 --mode=BEFORE
(reply){
   ids[] = 
      (SubmissionID){
         name = "jack"
         owner = "tmckay"
         qdate = 1345134766
      },
      (SubmissionID){
         name = "george"
         owner = "tmckay"
         qdate = 1344006972
      },
      (SubmissionID){
         name = "george"
         owner = "tmckay"
         qdate = 1344006972
      },
      (SubmissionID){
         name = "dan"
         owner = "tmckay"
         qdate = 1345136722
      },
      (SubmissionID){
         name = "test"
         owner = "tmckay"
         qdate = 1345048400
      },
      (SubmissionID){
         name = "test"
         owner = "tmckay"
         qdate = 1345048400
      },
      (SubmissionID){
         name = "dog"
         owner = "admin"
         qdate = 1343740373
      },
      (SubmissionID){
         name = "cat"
         owner = "admin"
         qdate = 1343740287
      },
      (SubmissionID){
         name = "cat"
         owner = "admin"
         qdate = 1343740287
      },
      (SubmissionID){
         name = "cat"
         owner = "admin"
         qdate = 1343740287
      },
      (SubmissionID){
         name = "cat"
         owner = "admin"
         qdate = 1343740287
      },
      (SubmissionID){
         name = "joe"
         owner = "joe"
         qdate = 1345048823
      },
      (SubmissionID){
         name = "cat"
         owner = "admin"
         qdate = 1343740287
      },
      (SubmissionID){
         name = "test"
         owner = "tmckay"
         qdate = 1345048400
      },
      (SubmissionID){
         name = "test"
         owner = "tmckay"
         qdate = 1345048400
      },
      (SubmissionID){
         name = "test"
         owner = "tmckay"
         qdate = 1345048400
      },
      (SubmissionID){
         name = "george"
         owner = "tmckay"
         qdate = 1344006972
      },
      (SubmissionID){
         name = "george"
         owner = "tmckay"
         qdate = 1344006972
      },
      (SubmissionID){
         name = "george"
         owner = "tmckay"
         qdate = 1344006972
      },
      (SubmissionID){
         name = "george"
         owner = "tmckay"
         qdate = 1344006972
      },
      (SubmissionID){
         name = "george"
         owner = "tmckay"
         qdate = 1344006972
      },
      (SubmissionID){
         name = "cat"
         owner = "admin"
         qdate = 1343740287
      },
      (SubmissionID){
         name = "dog"
         owner = "admin"
         qdate = 1343740373
      },
      (SubmissionID){
         name = "cat"
         owner = "admin"
         qdate = 1343740287
      },
   remaining = 0
 }

Expected results:

Scans by qdate should not include duplicates

Additional info:

Comment 1 Trevor McKay 2012-09-12 14:13:36 UTC
Is it possible this is related to Bug 855449?

Comment 4 Martin Kudlej 2012-12-20 14:28:01 UTC
Tested on RHEL 5.9/6.4 x x86_64/i386 with
condor-7.8.7-0.6.el6_3.x86_64
condor-aviary-7.8.7-0.6.el6_3.x86_64
condor-classads-7.8.7-0.6.el6_3.x86_64
condor-wallaby-base-db-1.25-1.el6_3.noarch
condor-wallaby-client-5.0.4-1.el6_3.noarch
condor-wallaby-tools-5.0.4-1.el6_3.noarch
python-condorutils-1.5-6.el6.noarch
python-qpid-0.18-4.el6.noarch
python-qpid-qmf-0.18-12.el6_3.x86_64
python-wallabyclient-5.0.4-1.el6_3.noarch
qpid-cpp-client-0.18-12.el6_3.x86_64
qpid-cpp-server-0.18-12.el6_3.x86_64
qpid-qmf-0.18-12.el6_3.x86_64
qpid-tools-0.18-7.el6_3.noarch
ruby-condor-wallaby-5.0.4-1.el6_3.noarch
ruby-qpid-qmf-0.18-12.el6_3.x86_64
ruby-wallaby-0.16.1-2.el6.noarch
wallaby-0.16.1-2.el6.noarch
wallaby-utils-0.16.1-2.el6.noarch

and it works. --> VERIFIED

Comment 6 errata-xmlrpc 2013-03-06 18:45:45 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

http://rhn.redhat.com/errata/RHSA-2013-0564.html