<div dir="auto">if that in fact is a valid option to the configure script for binutils; could you check?</div><div dir="auto"><br></div><div dir="auto">oe</div><div dir="auto"><br></div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, 5 May 2021 at 17:08 Andrey Kutuzov <<a href="mailto:andreku@ifi.uio.no">andreku@ifi.uio.no</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">No, I have not received this.<br>
<br>
So, we probably should try to add "--no-posix-fallocate" to the binutils <br>
easyconfig, right?<br>
<br>
On 05.05.2021 16:59, Stephan Oepen wrote:<br>
> a very helpful reply from CSC; see below.  did you get this from their<br>
> RT queue already, andrey?<br>
> <br>
> oe<br>
> <br>
> <br>
> ---------- Forwarded message ---------<br>
> From: Henrik Nortamo via RT <<a href="mailto:research-support@csc.fi" target="_blank">research-support@csc.fi</a>><br>
> Date: Wed, May 5, 2021 at 10:02 AM<br>
> Subject: [CSC #479570] lustre-related error in custom installation of binutils<br>
> To: <<a href="mailto:oe@ifi.uio.no" target="_blank">oe@ifi.uio.no</a>><br>
> <br>
> <br>
> Hi,<br>
> <br>
> Binutils is not provided as a module on Puhti, but the versions which<br>
> gcc 8.3.0 uses can be found under<br>
> /appl/spack/install-tree/gcc-4.8.5/binutils-2.31.1-xbslr3/lib/.<br>
> <br>
> That particular error comes from our version of  lustre ( 2.12.6 ) not<br>
> supporting the "fallocate" systemcall (it has been implemented in<br>
> lustre  2.14.0, <a href="https://jira.whamcloud.com/browse/LU-3606" rel="noreferrer" target="_blank">https://jira.whamcloud.com/browse/LU-3606</a>). The<br>
> returned error code might also not be correct (see<br>
> <a href="https://jira.whamcloud.com/browse/LU-14301" rel="noreferrer" target="_blank">https://jira.whamcloud.com/browse/LU-14301</a>), which means that some<br>
> program fallbacks from fallocate is not working properly.<br>
> <br>
> So I'm guessing easybuild builds binutils on a non lustre filesystem<br>
> e.g /tmp, /local_scratch, $TMPIDR or similar<br>
> checks that fallocate is supported and then when you try to compile on<br>
> lustre it fails. Not fully certain, but you might also<br>
> be able to disable fallocate support manually when building binutils<br>
> (could require patching the configure scripts).<br>
> <br>
> A temporary workaround is to add "--no-posix-fallocate " to LD_FLAGS<br>
> when compiling.<br>
> <br>
> <br>
> Br.<br>
> Henrik Nortamo<br>
> CSC<br>
> <br>
> <br>
> On Tue May 04 23:19:05 2021, <a href="mailto:oe@ifi.uio.no" target="_blank">oe@ifi.uio.no</a> wrote:<br>
>> dear colleagues:<br>
>><br>
>> in the context of the NLPL use case in EOSC-Nordic, we are preparing<br>
>> an updated version of what we call the NLPL virtual laboratory,<br>
>> essentially a community-maintained collection of core software and<br>
>> data resources for natural language processing.  on Puhti, our virtual<br>
>> laboratory resides in '/projapp/nlpl/' and is collectively maintained<br>
>> by EOSC-Nordic project members at helsinki and oslo universities.<br>
>><br>
>> for perfect parallelism of the installed software, we have now fully<br>
>> automated the process of compiling and installing a collection of<br>
>> dozens of packages, using EasyBuild.  in doing so, we use system-wide<br>
>> modules where they are available (in the exact same versions and<br>
>> configurations) and let EasyBuild fall back on building dependencies<br>
>> as needed.  on Puhti, that means we end up compiling, among other<br>
>> things, our own versions of gcc and GNU binutils.<br>
>><br>
>> it now appears that the version of binutils created by the stock<br>
>> EasyBuild recipe on Puhti ends up incompatible with the lustre<br>
>> filesystem below '/projapp/'.  we have isolated the problem outside<br>
>> the EasyBuild environment, and it appears to boil down to ld.gold<br>
>> failing in fallocate(2) with<br>
>><br>
>> [oe@puhti-login1 ~]$ module purge<br>
>> [oe@puhti-login1 ~]$ module use -a /projappl/nlpl/software/20/etc<br>
>> [oe@puhti-login1 ~]$ module load GCCcore/8.3.0 binutils/2.32<br>
>> [oe@puhti-login1 ~]$ module list<br>
>><br>
>> Currently Loaded Modules:<br>
>>    1) GCCcore/8.3.0   2) binutils/2.32<br>
>><br>
>><br>
>><br>
>> [oe@puhti-login1 ~]$ cat conftest.c<br>
>> int main (void) {<br>
>>    ;<br>
>>    return 0;<br>
>> }<br>
>> [oe@puhti-login1 ~]$ gcc conftest.c<br>
>> /projappl/nlpl/software/20/packages/binutils/2.32/bin/ld.gold: fatal<br>
>> error: a.out: Unknown error 524<br>
>> collect2: error: ld returned 1 exit status<br>
>> [oe@puhti-login1 ~]$ strace -f gcc conftest.c 2>&1 | grep fallocate<br>
>> [pid 110197] fallocate(21, 0, 0, 7840)  = -1 ENOTSUPP (Unknown error 524)<br>
>><br>
>> our current hypothesis is that the standard way of EasyBuild<br>
>> bootstrapping gcc and binutils on Puhti ends up with a configuration<br>
>> that is incompatible with creating binaries on the lustre filesystem.<br>
>> when moving the above file to '/tmp/', say, i can compile it without<br>
>> errors.<br>
>><br>
>> i realize that we are off the beaten track here and well outside of<br>
>> what i would expect as regular support from your end.  but our hope is<br>
>> that you might see the abstract appeal in fully parallel software<br>
>> installations across different systems, maybe even more so where this<br>
>> is managed within our researcher community, i.e. has the potential to<br>
>> shift some of the maintenance and support burden for<br>
>> discipline-specific software towards us (semi-expert) users :-).<br>
>><br>
>> does the above error from ld.gold ring a bell for someone, by any chance?<br>
>><br>
>> i see that the system-wide gcc 8.3.0 module on Puhti does not include<br>
>> binutils and was built using Spack; in fact, it appears there is no<br>
>> separate binutils module beyond the stock RHEL 7 binaries (binutils<br>
>> 2.27), is that correct?  we could of course try dropping our custom<br>
>> binutils from the EasyBuild dependency tree, but that would (a) reduce<br>
>> the degree of 'full' parallelism across systems and (b) require us to<br>
>> modify core EasyBuild recipes.  hence, if possible we would much<br>
>> rather understand the underlying nature of the above problem and<br>
>> resolve it.  i imagine this may lead to a refinement of the EasyBuild<br>
>> recipe for binutils, which we could then submit upstream.<br>
>><br>
>> any comments on the above or suggestions for how to debug further will<br>
>> be warmly appreciated.<br>
>><br>
>> with thanks in advance, oe<br>
>><br>
>><br>
<br>
<br>
-- <br>
Andrey<br>
Language Technology Group (LTG)<br>
University of Oslo<br>
</blockquote></div></div>