Summary
CloudBees Accelerator distributes the jobs in multiple agents in different machines. So the differences between these machines may cause the commands from a job to fail in a machine while succeed in another machine.
Problem
The problem from such differences varies a lot. There can be lots of different errors depends the command and the machine on which the command runs.
The following is an example of such errors. In this case, the program "sh.exe" run fine when the build is run locally. In other words, "sh.exe" run successfully on the emake machine. However, the following error happens when the job is distributed by emake to another machine when the build is running with emake:
U:\Newcor_Externals\MakeTools\bin\sh.exe _main: memory allocation error during startup. make[4]: *** [Rel/exalog_schema.cxx] Error 127
The cause of this error is that the operating system on the emake machine and the operation system on the agent host are different. "sh.exe" runs successfully on the emake machine does not guarantee that "sh.exe" will run successfully on the agent host (especially when the operating system is different).
Solution
To avoid any error caused by the different between the emake machine and the agent host, we should try our best to keep agent hosts are identical to emake machine. This means:
-
the operating systems are same
-
the build tools are same version and have identical configurations
This may not be possible in cases where an agent host may be used by different builds which are started from different emake machines which may have different operating systems (or build tools). But it’s important to understand that such different is an often cause of many errors. This will help us to diagnose build errors.