Hi Victor,

On 13/01/16 16:12, ПРОСОФТ HPC wrote:
Hi Kenneth,

thanks for your effort and assistance!

I got learned about EasyBuild at a PRACE training course few years ago . That 
time I just maked a note about existence of such nice tool :) Now I will use 
EasyBuild routinely to make SW setup on a HPC cluster in moreless automatic 
fashion, indeed.

Regarding your request to provide more detailed logs, enclosed please find the 
requested log files with debug information included. Hope that helps to spot 
the problem.

By default, on Cent OS almost all memory limits are unlimited except stack 
size. However, even the stack size is unlimited it doesn't solve the problem. 
Indeed, I just remove the default limit on stack size

%ulimit -s unlimited

, then went directly to

~/.local/easybuild/build/Clang/3.7.0/GNU-4.9.3-2.25/llvm.obj.1

and ran tests by executing the following command line:

%make check-all

But still the 3 tests are unexpectedly failed. Now I will try your hint to 
remove stack size limit and rebuild Clang by means of EasyBuild.

According to our findings, "ulimit -v" must be set to 'unlimited', while "ulimit -s" must be set to something else than 'unlimited' for the tests to work. There may be more going on though, since that's exactly what you have according to your debug log.
Maybe the stack size limit should be higher? Not sure...

Ward has issued a PR to add a new option to hard disable only the sanitizer checks, see https://github.com/hpcugent/easybuild-easyblocks/pull/806. That should go in very soon, and so will be part of the next release (EasyBuild v2.6.0).

With that in place, adding "skip_sanitizer_tests = True" will be sufficient to dance around this issue, as opposed to having to skip *all* tests and disable bootstrapping, as I mentioned earlier. We should consider having that enabled by default to skip these troublesome tests... Ward?


regards,

Kenneth

With best regards,
Victor
13.01.2016, 15:32, "Kenneth Hoste" <[email protected]>:
Hi Victor,

First of all: welcome to EasyBuild.

One question I like to ask to newcomers is how they learned about
EasyBuild, and what they are planning to use it for.
Feel free to ignore this, up to you whether you want to share that info...

On 13/01/16 12:36, ПРОСОФТ HPC wrote:
  Dear All,

  I am facing a problem with installation of Clang-3.7.0-GNU-4.9.3-2.25.eb 
under Cent OS v6.6 As far as I understand, the installation fails at the stage 
of sanity-checking due to unexpected failures. More specifically, three 
Sanitizers's tests fail:

  AddressSanitizer-x86_64-linux :: TestCases/Linux/nohugepage_test.cc
  LeakSanitizer-AddressSanitizer :: TestCases/stale_stack_leak.cc
  SanitizerCommon-Unit :: 
Sanitizer-x86_64-Test/SanitizerLinux.ThreadDescriptorSize
We have seen issues like this before, and have tried to dance around them.
Our testing (mainly on Scientific Linux 6 and CentOS 7) seemed to
confirm we managed to solve these problems, but apparently not.

Thank you for reaching out with this.

The easyblock for Clang disables these sanitizer tests under certain
conditions, e.g. when user limits for memory/stacksize are set to
'unlimited', see
https://github.com/hpcugent/easybuild-easyblocks/blob/master/easybuild/easyblocks/c/clang.py#L170
.

Apparently, that's not enough...

Can you share the output of "ulimit -a" in your environment (we should
change the Clang easyblock to collect that information such that it's
included in the log)?

  Enclosed please find the corresponding log file. I have also tried to install 
Clang-3.7 by means of EB under Cent OS v6.7 without success. Within Cent OS 
v6.7 problem remains the same. Now I am wondering whether the 
Clang-3.7.0-GNU-4.9.3-2.25.eb config was tested and approved under Cent OS v6.*?
The log file is showing that the installation fails during the build
step, it never got to 'make install' (let alone the actual sanity check
step).
The tests that are failing are a part of what "make check-all" does,
which is being run as a part of the build step when a bootstrap
installation is performed (see
https://github.com/hpcugent/easybuild-easyblocks/blob/master/easybuild/easyblocks/c/clang.py#L291).

For future bug reports: please include a debug log, i.e. collect the log
while having --debug or -d enabled, it will provide some more
information (but in this case, an info-level log file is good enough).

  Would it be possible to force EB to complete installation and create a module 
file, regardless the result of sanity-checking?
EasyBuild has good support for only rerunning a sanity check (after
fixing the sanity_check_paths, for example) and creating the module file
via --module-only, cfr.
http://easybuild.readthedocs.org/en/latest/Partial_installations.html#module-only
.

Since this problem occurs during the build step, it's not that simple
here though, the install step was never executed, so there's no
installation yet... The sanity check mostly checks whether some files
are in place in the installation (e.g. bin/clang & co are actually there).

One thing you can try though is to make the Clang easyblock skip running
"make check-all" entirely.
This does imply that you:

*) disable the 'bootstrap' install procedure (enabled by default), since
during a bootstrapped install of Clang "make check-all" is run after
every stage; you can do this by adding "bootstrap = False" to the Clang
easyconfig file (just copy the one you find via "eb --search Clang-3.7",
and pass the path to your modified copy to 'eb')

*) skipping the 'test' step, which is run after the 'build' step, and
will also run "make check-all"; you can do this by adding "skipsteps =
['test']" to the Clang easyconfig file

Note that you will have to do both of the above to avoid that EasyBuild
runs "make check-all".

Of course, this may not be what you want to do in the end, since you'll
get a different installation of Clang this way (not bootstrapped, but
just a Clang built with whatever system compiler you have).

Let us know if this helps, or if you have any further question.

regards,

Kenneth

Reply via email to