History | Log In     View a printable version of the current page.  
Issue Details (XML | Word | Printable)

Key: QB-915
Type: Bug Bug
Status: Closed Closed
Resolution: Won't Fix
Priority: Major Major
Assignee: Robin Shen
Reporter: Don Ross
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
QuickBuild

when appropriate node is not available, job runs on inappropriate node

Created: 20/May/11 02:05 PM   Updated: 26/May/11 11:38 PM
Component/s: None
Affects Version/s: 3.1.38
Fix Version/s: None

Original Estimate: Unknown Remaining Estimate: Unknown Time Spent: Unknown
Environment: Centos5 server; Windows 2008 or Windows 2003 agents


 Description  « Hide
I have a farm consisting of twelve agents; six Windows 2008 amd64, and six Windows 2003 x86.
These are further subdivided into agents running in two different Windows domains (englab.qa and englab.local).

My node selection criteria is 'matching all specified criteria'
- on Windows node
- on any build agent
- script evaluating to true:
    groovy: node.getAttribute("PROCESSOR_ARCHITECTURE").compareToIgnoreCase(vars.getValue("param_serverBitness")) == 0
- script evaluating to true:
   groovy: node.getAttribute("USERDNSDOMAIN").compareToIgnoreCase(vars.getValue("param_serverDomain")) == 0
The requestor is then able to specify values for param_serverBitness and param_serverDomain from drop-down lists.

I also have a semaphore lock to prevent multiple jobs running on the same system at the same time:
  groovy: node.getResource("SingleThread", new java.util.concurrent.Semaphore(1)).acquire();
  groovy: node.getResource("SingleThread").release();

I have found that, if I trigger four jobs all with the same values for param_serverBitness and param_serverDomain, the first three run on the nodes which satisfy those criteria. The fourth job runs on a randome node with the correct USERDNSDOMAIN, but the wrong PROCESSOR_ARCHITECTURE.


 All   Comments   Work Log   Change History      Sort Order:
Don Ross [20/May/11 02:21 PM]
I tried with a much simpler rule, only one script query:
   groovy: node.getAttribute("COMPUTERNAME").compareToIgnoreCase(vars.getValue("param_runHostName").tokenize('.')[0]) == 0
and it was not reproducible. So it may be because I have multiple criteria.

Robin Shen [21/May/11 12:43 AM]
I tried the same, but can not reproduce. Can you please send backup of your database to [robin AT pmease DOT com] so that I can test here to see what happens?

Don Ross [26/May/11 11:06 PM]
I am sorry, I identified the problem. I had installed the 32-bit agent on my 64-bit system, so PROCESSOR_ARCHITECTURE was coming back wrong.

User error.