-
Notifications
You must be signed in to change notification settings - Fork 213
Description
We use easystack files for our software stack, and I've run into weird issues several times where a build would fail due to what looked like an issue with the temporary directory. In all cases, the temporary directory looked like:
/tmp/eb_something/eb_something/eb_something/....etc...
and sometimes the error clearly stated that this path got too long.
It seems that each easystack item sets its own temporary directory as a subdirectory of the previous one, leading to this nested structure. While looking into it a bit more, I found that it's probably being caused by this call to set_up_configuration
, which sets up the eb_tmpdir
:
https://github.com/easybuilders/easybuild-framework/blob/develop/easybuild/main.py#L277
Adding a print
there indeed shows the issue with a simple easystack:
$ cat test.yml
easyconfigs:
- GCCcore-11.2.0.eb
- foss-2021b.eb
- attr-2.5.1-GCCcore-11.2.0.eb
- zlib-1.2.12.eb
$ $ eb -M --experimental --easystack ./test.yml
== Temporary log file in case of crash /tmp/eb-5_bt16c0/easybuild-0qwq_ptk.log
eb_tmpdir = /tmp/eb-5_bt16c0/eb-rmkj0yno
== found valid index for /home/bob/easybuild/cit-hpc-easybuild/easyconfigs, so using it...
== found valid index for /home/bob/easybuild/easybuild-easyconfigs/easybuild/easyconfigs, so using it...
== found valid index for /home/bob/easybuild/cit-hpc-easybuild/easyconfigs, so using it...
== found valid index for /home/bob/easybuild/easybuild-easyconfigs/easybuild/easyconfigs, so using it...
No missing modules!
eb_tmpdir = /tmp/eb-5_bt16c0/eb-rmkj0yno/eb-x1tle_ow
== found valid index for /home/bob/easybuild/cit-hpc-easybuild/easyconfigs, so using it...
== found valid index for /home/bob/easybuild/easybuild-easyconfigs/easybuild/easyconfigs, so using it...
1 out of 61 required modules missing:
* pkgconf/1.8.0 (pkgconf-1.8.0.eb)
eb_tmpdir = /tmp/eb-5_bt16c0/eb-rmkj0yno/eb-x1tle_ow/eb-9m3qhlsm
== found valid index for /home/bob/easybuild/cit-hpc-easybuild/easyconfigs, so using it...
== found valid index for /home/bob/easybuild/easybuild-easyconfigs/easybuild/easyconfigs, so using it...
No missing modules!
eb_tmpdir = /tmp/eb-5_bt16c0/eb-rmkj0yno/eb-x1tle_ow/eb-9m3qhlsm/eb-u43uav4s
== found valid index for /home/bob/easybuild/cit-hpc-easybuild/easyconfigs, so using it...
== found valid index for /home/bob/easybuild/easybuild-easyconfigs/easybuild/easyconfigs, so using it...
No missing modules!
== Temporary log file(s) /tmp/eb-5_bt16c0/easybuild-0qwq_ptk.log* have been removed.
== Temporary directory /tmp/eb-5_bt16c0 has been removed.