Code in the NegotiatorObject for setting configuration values checks for valid names based on 'a-z','A-Z','0-9','_','.'. However, a dot '.' is not allowed in classad attribute names. Thus, we need more fine-grained checking.
Impossible (and likely unnecessary) to distinguish between a config var that contains a '.' (OK) and a ClassAd param that does (not OK).
Re-opening. Forgot that we were using this func in SchedulerObject.
FH sha 6f0856d4
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: param names and gorup/user names have differing sets of valid chars Consequences: valid param names were rejected on negotiator object methods by single check Fix: created two distinct check methods for each case Result: negotiator object impl properly discriminates between valid param and group/user names
Informations for reproducing are missing. Please, could you add info on which version we can reproduce it, which one was patched and some steps how we can reproduce it?
Created attachment 476203 [details] Unit test of various good and bad attribute names
Created attachment 476204 [details] Py test driver of SetJobAttribute
7.4.4-0.15 should be the repro package
Technical note updated. If any revisions are required, please edit the "Technical Notes" field accordingly. All revisions will be proofread by the Engineering Content Services team. Diffed Contents: @@ -1,4 +1,4 @@ -Cause: param names and gorup/user names have differing sets of valid chars +Cause: param names and group/user names have differing sets of valid chars Consequences: valid param names were rejected on negotiator object methods by single check Fix: created two distinct check methods for each case Result: negotiator object impl properly discriminates between valid param and group/user names
Created attachment 476224 [details] submit py script needed by test-attr.sh
Reproduced on x86/RHEL5 with condor-7.4.4-0.15. # ./test-attrs.sh step #1 - SubmitJob step #2 - set good attribute name attr test - step #2 failed Good attributes refused by condor.
Retested over all supported platforms RHEL4,RHEL5/x86,x86_64 with: condor-7.4.5-0.7.el4 condor-7.4.5-0.7.el5 # ./test-attrs.sh step #1 - SubmitJob step #2 - set good attribute name step #3 - set really bad attribute name step #4 - set slightly bad attribute name all tests passed All good attributes accepted by condor. No regression found. >>> VERIFIED
Technical note updated. If any revisions are required, please edit the "Technical Notes" field accordingly. All revisions will be proofread by the Engineering Content Services team. Diffed Contents: @@ -1,4 +1 @@ -Cause: param names and group/user names have differing sets of valid chars +Previously, a single check could reject valid parameter names on negotiator object methods, due to differing sets of valid characters for parameter names and group/user names. This update uses two distinct check methods for each case. Now, the negotiator object impl correctly discriminates between valid parameter and group/user names.-Consequences: valid param names were rejected on negotiator object methods by single check -Fix: created two distinct check methods for each case -Result: negotiator object impl properly discriminates between valid param and group/user names
Technical note updated. If any revisions are required, please edit the "Technical Notes" field accordingly. All revisions will be proofread by the Engineering Content Services team. Diffed Contents: @@ -1 +1 @@ -Previously, a single check could reject valid parameter names on negotiator object methods, due to differing sets of valid characters for parameter names and group/user names. This update uses two distinct check methods for each case. Now, the negotiator object impl correctly discriminates between valid parameter and group/user names.+Due to differing sets of valid characters for parameter names and group/user names, a single check could reject valid parameter names on negotiator object methods. This update uses two distinct check methods for each case. Now, the negotiator object impl correctly discriminates between valid parameter and group/user names.
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/RHBA-2011-0217.html