Closed Blosberg closed 6 years ago
Unfortunately, this is not a problem with the pipelines, but with the interaction between glibc 2.26 and the old kernel on RHEL6 systems. glibc 2.26 assumes that kernels have an implementation of the syscall prlimit64
, which is correct for all kernels that glibc 2.26 supports (version 3.4 and up). The RHEL6 kernel is 2.6.32 with a bunch of patches to backport features and fixes from later kernels. Sadly, the patches don't include an implementation for the prlimit64
syscall.
As a result, software built with glibc 2.26 won't be usable if it uses getrlimits
, which is implemented in glibc 2.26 using prlimit64
. Going forward, we will patch glibc to provide an alternative implementation for older kernels that doesn't rely on prlimit64
.
For the time being I have reverted glibc to version 2.25 on branch rhel6
in the Guix repository, which works with old kernels down to the vanilla 2.6.32. We are rebuilding software with that glibc version, so that Java will work again even on clusters running close-to-end-of-life RHEL6.
This is fixed in the core-updates
and rhel6
branches. core-updates
will soon be merged into master
.
Error discovered yesterday: something about how Java builds a virtual machine but can't allocate a stack of a certain size. If the memory values are too low then we just run out of memory. If it's too high then we hit this error.