easybuilders / easybuild-easyconfigs

A collection of easyconfig files that describe which software to build using which build options with EasyBuild.
https://easybuild.io
GNU General Public License v2.0
378 stars 701 forks source link

R-4.1.0-foss-2021a.eb -- gWidgets2tcltk #13975

Open scicomp-moffitt opened 3 years ago

scicomp-moffitt commented 3 years ago

Bummer, 4 hours compile time and it seems I need to start from scratch, or is there a way to ignore failing extensions or not having to start from scratch ?

== installing extension gWidgets2tcltk 1.0-6 (884/970)...
==      ... (took 1 secs)
== ... (took 4 hours 19 mins 29 secs)
== FAILED: Installation ended unsuccessfully (build directory: /app/eb/build/R/4.1.0/foss-2021a): build failed (first 300 chars): cmd "xvfb-run  R CMD INSTALL /app/eb/build/R/4.1.0/foss-2021a/gWidgets2tcltk/gWidgets2tcltk   --library=/app/eb/software/R/4.1.0-foss-2021a/lib64/R/library --no-clean-on-error " exited with exit code 1 and output:
* installing *source* package gWidgets2tcltk ...
** package gWidgets2tcltk successfull (took 4 hours 22 mins 51 secs)
== Results of the build can be found in the log file(s) /tmp/eb-8anrt4mw/easybuild-R-4.1.0-20210911.151024.ueSds.log
ERROR: Build of /home/scicomp/.local/easybuild/easyconfigs/r/R/R-4.1.0-foss-2021a.eb failed (err: 'build failed (first 300 chars): cmd "xvfb-run  R CMD INSTALL /app/eb/build/R/4.1.0/foss-2021a/gWidgets2tcltk/gWidgets2tcltk   --library=/app/eb/software/R/4.1.0-foss-2021a/lib64/R/library --no-clean-on-error " exited with exit code 1 and output:\n* installing *source* package gWidgets2tcltk ...\n** package gWidgets2tcltk successfull')

not too much info in the log?

e: 'libscalapack.a,libflexiblas.a,libgfortran.a,libpthread.a')
== 2021-09-11 19:33:15,232 environment.py:91 INFO Environment variable SCALAPACK_SHARED_LIBS set to libscalapack.so,libflexiblas.so,libgfortran.so (previous value: 'libscalapack.so,libflexiblas.so,libgfortran.so')
== 2021-09-11 19:33:15,232 environment.py:91 INFO Environment variable EBVARSCALAPACK_SHARED_LIBS set to libscalapack.so,libflexiblas.so,libgfortran.so (previous value: 'libscalapack.so,libflexiblas.so,libgfortran.so')
== 2021-09-11 19:33:15,232 environment.py:91 INFO Environment variable SCALAPACK_STATIC_LIBS set to libscalapack.a,libflexiblas.a,libgfortran.a (previous value: 'libscalapack.a,libflexiblas.a,libgfortran.a')
== 2021-09-11 19:33:15,232 environment.py:91 INFO Environment variable EBVARSCALAPACK_STATIC_LIBS set to libscalapack.a,libflexiblas.a,libgfortran.a (previous value: 'libscalapack.a,libflexiblas.a,libgfortran.a')
== 2021-09-11 19:33:15,232 run.py:233 INFO running cmd: R RHOME
== 2021-09-11 19:33:15,288 run.py:582 INFO cmd "R RHOME" exited with exit code 0 and output:
/app/eb/software/R/4.1.0-foss-2021a/lib64/R

== 2021-09-11 19:33:15,288 filetools.py:1783 INFO Creating directory /app/eb/build/R/4.1.0/foss-2021a/gWidgets2tcltk (parents: True, set_gid: False, sticky: False)
== 2021-09-11 19:33:15,288 run.py:233 INFO running cmd: tar xzf /app/eb/sources/r/R/extensions/gWidgets2tcltk_1.0-6.tar.gz
== 2021-09-11 19:33:15,362 run.py:233 INFO running cmd: xvfb-run  R CMD INSTALL /app/eb/build/R/4.1.0/foss-2021a/gWidgets2tcltk/gWidgets2tcltk   --library=/app/eb/software/R/4.1.0-foss-2021a/lib64/R/library --no-clean-on-error
== 2021-09-11 19:33:16,532 build_log.py:169 ERROR EasyBuild crashed with an error (at easybuild/base/exceptions.py:124 in __init__): cmd "xvfb-run  R CMD INSTALL /app/eb/build/R/4.1.0/foss-2021a/gWidgets2tcltk/gWidgets2tcltk   --library=/app/eb/software/R/4.1.0-foss-2021a/lib64/R/library --no-clean-on-error " exited with exit code 1 and output:
* installing *source* package gWidgets2tcltk ...
** package gWidgets2tcltk successfully unpacked and MD5 sums checked
** using staged installation
** R
** demo
** inst
** byte-compile and prepare package for lazy loading
Error in structure(.External(.C_dotTclObjv, objv), class = "tclObj") :
  [tcl] failed to allocate font due to internal system font engine problem.

Error: unable to load R code in package gWidgets2tcltk
Execution halted
ERROR: lazy loading failed for package gWidgets2tcltk
 (at easybuild/tools/run.py:577 in parse_cmd_output)
== 2021-09-11 19:33:16,533 build_log.py:265 INFO        ... (took 1 secs)
== 2021-09-11 19:33:16,534 build_log.py:265 INFO ... (took 4 hours 19 mins 29 secs)
== 2021-09-11 19:33:16,534 filetools.py:1884 INFO Removing lock /app/eb/software/.locks/_app_eb_software_R_4.1.0-foss-2021a.lock...
== 2021-09-11 19:33:16,534 filetools.py:359 INFO Path /app/eb/software/.locks/_app_eb_software_R_4.1.0-foss-2021a.lock successfully removed.
== 2021-09-11 19:33:16,534 filetools.py:1888 INFO Lock removed: /app/eb/software/.locks/_app_eb_software_R_4.1.0-foss-2021a.lock
== 2021-09-11 19:33:16,534 easyblock.py:3726 WARNING build failed (first 300 chars): cmd "xvfb-run  R CMD INSTALL /app/eb/build/R/4.1.0/foss-2021a/gWidgets2tcltk/gWidgets2tcltk   --library=/app/eb/software/R/4.1.0-foss-2021a/lib64/R/library --no-clean-on-error " exited with exit code 1 and output:
* installing *source* package gWidgets2tcltk ...
** package gWidgets2tcltk successfull
== 2021-09-11 19:33:16,534 easyblock.py:300 INFO Closing log for application name R version 4.1.0
boegel commented 3 years ago

@scicomp-moffitt You're hitting a known problem that we haven't worked out a solution for yet, see https://github.com/easybuilders/easybuild-easyconfigs/issues/11917 .

You don't need to start over from scratch though.

You can first generate a module file for your R installation, using: eb R-4.1.0-foss-2021a.eb --module-only --skip-extensions.

Then you can install only the missing extensions using eb R-4.1.0-foss-2021a.eb --rebuild --skip, which will skip both the installation of R itself, and any extensions which are already installed. It will still take a while to let it figure out what's installed already, but it'll be significantly faster than installing from scratch.

We're working on installing R extensions in parallel (cfr. https://github.com/easybuilders/easybuild-easyblocks/pull/2408), I hope to find time to get that in place for the next EasyBuild release...

scicomp-moffitt commented 3 years ago

Thanks @boegel got it. My proposal would be to remove all failing extensions from the easyconfig until the error is fixed. It would be useful to have an option to skip over all failing extensions. In this case I don't really care about gWidgets2tcltk

scicomp-moffitt commented 3 years ago

same error occurs with R-4.0.5-foss-2020b.eb

nickgreensgithub commented 2 years ago

I had the same error with R-4.0.5-foss-2020b.eb, to fix it I added xvfb as a dependency, and tried to build the module. Once I had the error I used eb R-4.0.5-foss-2020b.eb --module-only --skip-extensions, then loaded the resulting module

Then I ran the command that failed, but with the added parameters -e /dev/stdout, which puts the error details in to stdout, in my case:

xvfb-run -e /dev/stdout R CMD INSTALL /tmp/easybuild/R/4.0.5/foss-2020b/gWidgets2tcltk/gWidgets2tcltk   --library=/shared/software_stack/software/R/4.0.5-foss-2020b/lib/R/library --no-clean-on-error  

which gave me the error:

(EE) 
Fatal server error:
(EE) Server is already active for display 99
        If this server is no longer running, remove /tmp/.X99-lock
        and start again.
(EE) 
xvfb-run: error: Xvfb failed to start

So I deleted /tmp/.X99-lock, and killed any XServer processes that were running, then ran eb R-4.0.5-foss-2020b.eb --rebuild --skip again.

I've added -e /dev/stdout to the preinstallopts property of the gWidgets2tcltk extension in my R .eb file so I can see the error if I have to build it again