Bug 632476 - "+AccountingGroup" setting from job submit needs to be made case insensitive
Summary: "+AccountingGroup" setting from job submit needs to be made case insensitive
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise MRG
Classification: Red Hat
Component: condor
Version: beta
Hardware: All
OS: All
low
high
Target Milestone: 1.3
: ---
Assignee: Erik Erlandson
QA Contact: Lubos Trilety
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2010-09-10 03:51 UTC by Erik Erlandson
Modified: 2011-02-07 13:05 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2010-10-20 11:29:50 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)
test for submitted fix (or bug repro) (795 bytes, application/x-gzip)
2010-09-10 06:21 UTC, Erik Erlandson
no flags Details
Negotiator log (48.70 KB, text/plain)
2010-10-04 12:51 UTC, Lubos Trilety
no flags Details


Links
System ID Private Priority Status Summary Last Updated
Red Hat Bugzilla 675703 0 medium CLOSED Case sensitivity of hfs groups 2021-02-22 00:41:40 UTC

Internal Links: 675703

Description Erik Erlandson 2010-09-10 03:51:20 UTC
Description of problem: accounting groups are supposed to be case insensitive, but they are only working in lower-case.

Steps to Reproduce:
define groups A and B:

+AccountingGroup="A.user" -> FAIL
+AccountingGroup="a.user" -> SUCCESS


Expected results:
either case should work correctly

Comment 1 Erik Erlandson 2010-09-10 06:21:13 UTC
Created attachment 446438 [details]
test for submitted fix (or bug repro)

README file describes how to run test and what to expect if fix is working, or for bug repro.

Comment 2 Erik Erlandson 2010-09-10 06:23:00 UTC
Pushed a fix for this bug to V7_4-HFS-branch.

Added case folding to group names pulled off submitter ads so that they match up properly with group names pulled from GROUP_NAMES.

Comment 3 Lubos Trilety 2010-10-04 12:51:16 UTC
Created attachment 451391 [details]
Negotiator log

Tried to with:
condor-7.4.4-0.16

configuration:
NEGOTIATOR_DEBUG = D_FULLDEBUG | D_MATCH
SCHEDD_INTERVAL	= 15
NEGOTIATOR_USE_SLOT_WEIGHTS = FALSE
NUM_CPUS = 20
GROUP_NAMES = A, B
GROUP_QUOTA_DYNAMIC_A = 0.25
GROUP_QUOTA_DYNAMIC_B = 0.2
GROUP_AUTOREGROUP_A = FALSE
GROUP_AUTOREGROUP_B = FALSE

submit file:
$ cat test.submit 
universe = vanilla
cmd = /bin/sleep
args = 5m
+AccountingGroup = "a.user"
queue 5
+AccountingGroup = "A.user"
queue 5
+AccountingGroup = "b.user"
queue 5
+AccountingGroup = "B.user"
queue 5

Scenario:
1. submit jobs
$ condor_submit test.submit 
Submitting job(s)....................
20 job(s) submitted to cluster 1.

2. see running jobs
$ condor_q -run -l | grep AccountingGroup | sort | uniq -c
      2 AccountingGroup = "a.user"
      2 AccountingGroup = "A.user"
      1 AccountingGroup = "b.user"
      2 AccountingGroup = "B.user"

The number of running processes are not OK. The negotiator still distinguish "a.user" and "A.user".

Comment 4 Erik Erlandson 2010-10-04 18:35:13 UTC
> The number of running processes are not OK. The negotiator still distinguish
> "a.user" and "A.user".

The log output shows it negotiating with both a.user and A.user against group "a" (and similarly group "b), which indicates that the case insensitivity is operating correctly.

The actual value of AccountingGroup in the job ads is *not* case folded, which is why you see both a/A and b/B in the condor_q query.

I notice that the negotiator only saw 16 slots when it entered its cycle, which is why you are seeing only 4 slots allocated to A/a and 3 slots for B/b.  (I assume you were expecting 5 slots for A/a and 4 slots for B/b).  My guess is the system just needs to spool up a bit longer so it sees all 20 slots.

Comment 5 Lubos Trilety 2010-10-05 07:24:06 UTC
OK, I didn't notice that the whole pool is not up, my bad. And I understand that it could be OK for job classads that there are both "a" and "A", but I still think that something is wrong because when I list condor_userprio (classads from negotiator) it still distinguish group "A" from group "a".

$ condor_userprio -l
LastUpdate = 1286262730
Name1 = "b.user.eng.bos.redhat.com"
Priority1 = 0.504585
ResourcesUsed1 = 2
...
Name2 = "B.user.eng.bos.redhat.com"
Priority2 = 0.504585
ResourcesUsed2 = 2
...
Name3 = "a.user.eng.bos.redhat.com"
Priority3 = 0.505067
ResourcesUsed3 = 3
...
Name4 = "A.user.eng.bos.redhat.com"
Priority4 = 0.507183
ResourcesUsed4 = 2
...
Name5 = "A"
Priority5 = 0.507183
ResourcesUsed5 = 2
...
Name6 = "B"
Priority6 = 0.504585
ResourcesUsed6 = 2
...
Name7 = "a"
Priority7 = 0.505067
ResourcesUsed7 = 3
...
Name8 = "b"
Priority8 = 0.504585
ResourcesUsed8 = 2


I expect it should show that group "A" ("a") uses 5 resources.

Comment 6 Erik Erlandson 2010-10-05 15:02:00 UTC
> when I list condor_userprio
> (classads from negotiator) it still distinguish group "A" from group "a".

This is a separate bug in accountant and/or userprio.  I logged a new bz for it:
https://bugzilla.redhat.com/show_bug.cgi?id=640326

Comment 7 Lubos Trilety 2010-10-06 13:18:23 UTC
The negotiator correctly count number of slots per group. New bug 640326 was created for correct showing of groups by condor_userprio.

Tested with (version):
condor-7.4.4-0.16

Tested on:
RHEL5 x86_64,i386  - passed
RHEL4 x86_64,i386  - passed

>>> VERIFIED


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