-
Bug
-
Resolution: Fixed
-
Minor
-
None
-
Jenkins 1.620 with 2500+ jobs and 8 executors on the master node
-
-
1.28
The recomputation of module descriptors is not properly synchronized and may prevent a properties file from being read properly.
The Ivy Build Trigger copies files (ivy.xml and ivy.properties) from the workspace to the project directory to keep them accessible if the workspace files are unavailable for some reason. To determine whether a copy is necessary, time stamps on the files are compared. It uses a single timestamp, the one from ivy.xml, to compare with, however. This is an error by itself as it causes any properties file to never or always be copied depending on how its modification date compares to the one from ivy.xml. In our scenario, the properties file always gets copied.
In a multi-executor build environment, multiple jobs may trigger the recomputation of a single module descriptor simultaneously. Since the operation is not properly synchronized, this causes a race condition in copyFileFromWorkspaceIfNecessary. A properties file that is in active use by some thread may be truncated (and overwritten) by another one. Depending on your Ivy settings, this can result in a configuration error or a silent fallback to default values.