Property collectors on agents

Hi guys,

I have some trouble understanding when the property collectors on agents are working and when the results are included into the UI. Usually everything with the property collectors works fine but sometimes the agent compatibility matrix or agent status seems to be out of sync. We added a custom property to all our Continua CI agents to give them specific roles in our build environment (project specific build servers, unit tests, automatic UI testing, etc.). The property is a simple string with a comma separated list of role names (e.g. UnitTests,AutomatedTest or BuildRelease,BuildDebug). To assign stages to specific agent we added agent requirements to look for the role name in the agent’s property (e.g. property contains "UnitTests)

Whenever we need to change the value of the property on any of the agents the agent compatability matrix is not updated and we have to unauthorize and reauhorize the agent to get the matrix updated. The build process and the agent view of a configuration seem to get the updated immidiately.

In another case we restarted the Continua CI server host and all agent’s hosts after installing Windows updates and one agent was not usable until another system restart. During a build that needs this specially configured agent for a stage Continua CI was waiting for the agent although everything was setup correctly and Continua CI was able to comminucate with the agent. It turned out that the agent did not yet finish the “Initial property collection”. After the system restart the agent went back to work immediately. Is there a strict order advisable to restart Continua CI server and agents?

Kind regards

Kay Zumbusch

Hi Kay,

Thank you for reporting this. We cache the agent compatibility information as it can take some time to gather details of all the properties from all the agents. It turns out that we were updating this cache when the project, configuration or agent status changed but not when the agent properties changed. I have now fixed this code for the next version.

There is no required order for server and agent startup. When the agent starts up it attempts to register with the server. The first time it connects to the server the agent properties are loaded. If a build is run before this finishes then the “Initial agent property collection is not complete” message is displayed and the build will stay on the queue. This is to ensure that it doesn’t fail due to a missing property. The build should however then continue once the agent properties are loaded. If it is not continuing after few seconds than we would like to see a debug log, as I have not been able to reproduce this.