Hi,

I found the reason why builds on the Jenkins machine (policeman) get slower and slower especially on MacOS and Windows. The reason is also affecting Linux, but depending on filesystem it does not slow down too much. ZFS was fine, EXT4 is slow.

Basically what happens: Looks like for each runner (and there are many), Gradle produces a file in ~/.gradle/.tmp with name gradle-worker-classpathXXXXXXXX (with XXX some random hash). It does not create any subdirectories all those files are accumulating in that folder and are never cleaned up. On the MacOS node, I tried a "rm -rf ~/.gradle/.tmp" hich never ended and finaly ran out of memory!!!!! An ls in the directory also takes hours.

The effect of that number of files is: each update of the directory takes forever, so Gradle wants to create a new directory, but depending of filesystem (APFS) also creating a file needs to insert the directory entry and that takes forever. We should open a bug report at Gradle about this, I think this is insane!

On Windows the same happens, but I was able to move the folder to trash and started an async trashing cycle which took half an hour.

I am about to create a Jenkins addition that nukes the whole ~/.gradle/.tmp file before each build on all our Jenkins nodes to prevent this from happening again. You may also be advised to add a cronjob in your user directory to nuke the gradle folder (I have the feeling from time to time, you should trash it completely). The .gradle folder collects all bullshit from each previously used Gradle version. On The Jenkins node it was 10 Gigabytes!

Uwe

--
Uwe Schindler
Achterdiek 19, D-28357 Bremen
https://www.thetaphi.de
eMail: u...@thetaphi.de


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org

Reply via email to