easybuilders / easybuild

EasyBuild - building software with ease
http://easybuild.io
GNU General Public License v2.0
461 stars 143 forks source link

Easybuild fails to build (ssl.SSLError: [SSL] malloc failure (_ssl.c:2805)) #826

Closed adrianreber closed 5 months ago

adrianreber commented 1 year ago

Trying to build Easybuild in the OpenHPC build system currently only fails on Leap x86_64 (works on aarch64) with following error:

[   96s] [[INFO]] +++ STAGE 2: installing EasyBuild in /home/abuild/rpmbuild/BUILDROOT/EasyBuild-ohpc-4.6.0-3.1.ohpc.2.6.x86_64/opt/ohpc/pub/libs/easybuild/4.6.0 with EasyBuild from stage 1...
[   96s] 
[   96s] Traceback (most recent call last):
[   96s]   File "./bootstrap_eb.py", line 1157, in <module>
[   96s]     main()
[   96s]   File "./bootstrap_eb.py", line 956, in main
[   96s]     stage2(tmpdir, templates, install_path, distribute_egg_dir, sourcepath)
[   96s]   File "./bootstrap_eb.py", line 723, in stage2
[   96s]     pkg_simple = std_urllib.urlopen('https://pypi.python.org/simple/%s' % pkg, timeout=10).read()
[   96s]   File "/usr/lib64/python3.6/urllib/request.py", line 223, in urlopen
[   96s]     return opener.open(url, data, timeout)
[   96s]   File "/usr/lib64/python3.6/urllib/request.py", line 526, in open
[   96s]     response = self._open(req, data)
[   96s]   File "/usr/lib64/python3.6/urllib/request.py", line 544, in _open
[   96s]     '_open', req)
[   96s]   File "/usr/lib64/python3.6/urllib/request.py", line 504, in _call_chain
[   96s]     result = func(*args)
[   96s]   File "/usr/lib64/python3.6/urllib/request.py", line 1392, in https_open
[   96s]     context=self._context, check_hostname=self._check_hostname)
[   96s]   File "/usr/lib64/python3.6/urllib/request.py", line 1317, in do_open
[   96s]     h = http_class(host, timeout=req.timeout, **http_conn_args)
[   96s]   File "/usr/lib64/python3.6/http/client.py", line 1425, in __init__
[   96s]     context = ssl._create_default_https_context()
[   96s]   File "/usr/lib64/python3.6/ssl.py", line 502, in create_default_context
[   96s]     context = SSLContext(PROTOCOL_TLS)
[   96s]   File "/usr/lib64/python3.6/ssl.py", line 391, in __new__
[   96s]     self = _SSLContext.__new__(cls, protocol)
[   96s] ssl.SSLError: [SSL] malloc failure (_ssl.c:2805)
[   96s] error: Bad exit status from /var/tmp/rpm-tmp.JMu4Uh (%build)

It seems this is not an Easybuild failure but somehow connected to OpenSSL and the underlying OS:

https://github.com/openssl/openssl/issues/10015

https://stackoverflow.com/questions/62172522/pip-sslerror-malloc-failure-in-chroot

Just wanted to let you know. This can probably be just closed. But I wanted to open it for awareness.

adrianreber commented 1 year ago

build.log

boegel commented 1 year ago

This is indeed not an EasyBuild problem, it can probably be easily triggered with a small Python script as well. @adrianreber Did you figure out the underlying cause?

adrianreber commented 1 year ago

Really old kernel and building easybuild in a chroot with new userspace packages.

We fixed it by moving to a different builder.

This can be closed.