Skip to content

nested temporary directories for easystack items #4291

@bedroge

Description

@bedroge

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    EESSIRelated to EESSI projectbug reporteasystackIssues and PRs related to easystack files

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions