Description of problem: This should be checking fabs(s), not fabs(surplus): double s = hgq_allocate_surplus(groups[j], allocated[j]); if (fabs(surplus) > 0.00001) { dprintf(D_ALWAYS, "group quotas: WARNING: allocate-surplus (3): surplus= %g\n", s); } In cases where there is remaining surplus, this will output the warning message for no good reason.
upstream: https://condor-wiki.cs.wisc.edu/index.cgi/tktview?tn=2262
Fix upstream on V7_6-branch
repro/test Use this config: CLAIM_WORKLIFE = 0 NEGOTIATOR_CONSIDER_PREEMPTION = FALSE NEGOTIATOR_DEBUG = D_FULLDEBUG NEGOTIATOR_USE_SLOT_WEIGHTS = FALSE GROUP_QUOTA_MAX_ALLOCATION_ROUNDS = 1 NEGOTIATOR_INTERVAL = 30 SCHEDD_INTERVAL = 15 NUM_CPUS = 20 GROUP_NAMES = a, b, a.a1 GROUP_QUOTA_a = 10 GROUP_QUOTA_b = 10 GROUP_QUOTA_a.a1 = 5 GROUP_ACCEPT_SURPLUS = TRUE Submit the following job, that invokes the use of surplus for "a.a1" (but does not use all of it) universe = vanilla cmd = /bin/sleep args = 60 should_transfer_files = if_needed when_to_transfer_output = on_exit +AccountingGroup="a.a1.user" queue 7 Before fix: the sanity check looks at the wrong variable, and emits a warning message even though it worked correctly $ tail -f NegotiatorLog | grep WARNING 06/22/11 11:20:14 group quotas: WARNING: allocate-surplus (3): surplus= 0 After fix: the spurious warning will not appear.
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: Sanity check on group quota surplus allocation was examining wrong variable. Consequence: A spurious warning message could be output when there was remaining surplus, even though allocation was correct. Fix: Update sanity check to examine the correct variable. Result: Spurious warning no longer appears.
Reproduced with condor-7.6.1-0.10.el5.x86_64 (MRG 2.0) group quotas: WARNING: allocate-surplus (3): surplus= 0
Verified and reproduced with condor-7.6.3-0.2.el5.i386 condor-7.6.3-0.2.el5.x86_64 condor-7.6.3-0.2.el6.i686 condor-7.6.3-0.2.el6.x86_64 Verification: no WARNING after running reproducer
Created attachment 515572 [details] Simple reproducer/verification script To reproduce, run include/clean.sh; MRG_REPO=stable ./runtest.sh To verify, run include/clean.sh; unset MRG_REPO; ./runtest.sh
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