Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

{tools}[GCCcore/11.3.0] JupyterHub v3.0.0, configurable-http-proxy v4.5.3 w/ Python 3.10.4 #16424

Merged

Conversation

casparvl
Copy link
Contributor

@casparvl casparvl commented Oct 17, 2022

@casparvl casparvl added this to the 4.x milestone Oct 17, 2022
@boegelbot

This comment was marked as outdated.

@boegelbot

This comment was marked as outdated.

…ine in jupyter-server. Add binutils to jupyterlmod as builddep.
@verdurin
Copy link
Member

@casparvl I saw this error:

== 2022-10-21 12:00:45,674 build_log.py:169 ERROR EasyBuild crashed with an error (at easybuild/base/exceptions.py:124 in __init__): Sanity check failed: extensions sanity check failed for 2 extensions: certipy, pyOpenSSL
failing sanity check for 'certipy' extension: command "python -c "import certipy"" failed; output:
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/eb/maint/software/JupyterHub/3.0.0-GCCcore-11.3.0/lib/python3.10/site-packages/certipy/__init__.py", line 62, in <module>
    from certipy.certipy import (
  File "/eb/maint/software/JupyterHub/3.0.0-GCCcore-11.3.0/lib/python3.10/site-packages/certipy/certipy.py", line 68, in <module>
    from OpenSSL import crypto
  File "/eb/maint/software/JupyterHub/3.0.0-GCCcore-11.3.0/lib/python3.10/site-packages/OpenSSL/__init__.py", line 8, in <module>
    from OpenSSL import crypto, SSL
  File "/eb/maint/software/JupyterHub/3.0.0-GCCcore-11.3.0/lib/python3.10/site-packages/OpenSSL/crypto.py", line 17, in <module>
    from OpenSSL._util import (
  File "/eb/maint/software/JupyterHub/3.0.0-GCCcore-11.3.0/lib/python3.10/site-packages/OpenSSL/_util.py", line 6, in <module>
    from cryptography.hazmat.bindings.openssl.binding import Binding
  File "/eb/maint/software/Python/3.10.4-GCCcore-11.3.0/lib/python3.10/site-packages/cryptography/hazmat/bindings/openssl/binding.py", line 14, in <module>
    from cryptography.hazmat.bindings._openssl import ffi, lib
ImportError: /eb/maint/software/Python/3.10.4-GCCcore-11.3.0/lib/python3.10/site-packages/cryptography/hazmat/bindings/_openssl.abi3.so: symbol EC_POINT_get_affine_coordinates_GF2m, version OPENSSL_1_1_0 not defined in file libcrypto.so.1.1 with link time reference,
failing sanity check for 'pyOpenSSL' extension: command "python -c "import OpenSSL"" failed; output:
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/eb/maint/software/JupyterHub/3.0.0-GCCcore-11.3.0/lib/python3.10/site-packages/OpenSSL/__init__.py", line 8, in <module>
    from OpenSSL import crypto, SSL
  File "/eb/maint/software/JupyterHub/3.0.0-GCCcore-11.3.0/lib/python3.10/site-packages/OpenSSL/crypto.py", line 17, in <module>
    from OpenSSL._util import (
  File "/eb/maint/software/JupyterHub/3.0.0-GCCcore-11.3.0/lib/python3.10/site-packages/OpenSSL/_util.py", line 6, in <module>
    from cryptography.hazmat.bindings.openssl.binding import Binding
  File "/eb/maint/software/Python/3.10.4-GCCcore-11.3.0/lib/python3.10/site-packages/cryptography/hazmat/bindings/openssl/binding.py", line 14, in <module>
    from cryptography.hazmat.bindings._openssl import ffi, lib
ImportError: /eb/maint/software/Python/3.10.4-GCCcore-11.3.0/lib/python3.10/site-packages/cryptography/hazmat/bindings/_openssl.abi3.so: symbol EC_POINT_get_affine_coordinates_GF2m, version OPENSSL_1_1_0 not defined in file libcrypto.so.1.1 with link time reference,  (at easybuild/framework/easyblock.py:3479 in _sanity_check_step)

I know there have been changes in this area of late - do I need to rebuild anything?

@casparvl
Copy link
Contributor Author

casparvl commented Nov 1, 2022

@verdurin I'm not sure, for me it just works. If anything, it's probably the OpenSSL 1.1 dependency. As you may know, this can either just wrap your system OpenSSL or install one from EasyBuild. Maybe it wrapped your system OpenSSL and that fails to provide some symbol? I'm not sure...

Anyway, I'll upload two test reports from our systems. Not sure if that's enough to convince you ;-) If not, you might look into rebuilding OpenSSL (maybe the system version underneath got updated?) and see if that helps. Or maybe we you can force OpenSSL-1.1.eb to install a new OpenSSL anyway, and see if it works with that? (if it does, the issue is somehow on your system OpenSSL side, and I'd think in that case it shouldn't block the merge of this PR).

N.B. I checked, and on our systems OpenSSL-1.1 wraps our system install. That means that

/sw/arch/Debian10/EB_production/2022/software/OpenSSL/1.1/lib64:
total 0
dr-xr-sr-x 4 jenkins jenkins 152 Oct 26 01:34 .
dr-xr-sr-x 6 jenkins jenkins  97 Oct 26 01:34 ..
dr-xr-sr-x 2 jenkins jenkins  71 Oct 26 01:34 engines-1.1
lrwxrwxrwx 1 jenkins jenkins  16 Oct 26 01:34 libcrypto.so -> libcrypto.so.1.1
lrwxrwxrwx 1 jenkins jenkins  42 Oct 26 01:34 libcrypto.so.1.1 -> /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1
lrwxrwxrwx 1 jenkins jenkins  13 Oct 26 01:34 libssl.so -> libssl.so.1.1
lrwxrwxrwx 1 jenkins jenkins  39 Oct 26 01:34 libssl.so.1.1 -> /usr/lib/x86_64-linux-gnu/libssl.so.1.1
dr-xr-sr-x 2 jenkins jenkins  77 Oct 26 01:34 pkgconfig

i.e. libcrypto, the one that's giving you issues, refers to our system libcrypto. If I do a readelf on that:

readelf -a /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1 | grep OPENSSL_1_1_0 | head
0000002d6440  08ed00000001 R_X86_64_64       00000000002d5840 ACCESS_DESCRIPTION_it@@OPENSSL_1_1_0 + 0
0000002dbe68  08ed00000001 R_X86_64_64       00000000002d5840 ACCESS_DESCRIPTION_it@@OPENSSL_1_1_0 + 0
0000002e01c0  08ed00000001 R_X86_64_64       00000000002d5840 ACCESS_DESCRIPTION_it@@OPENSSL_1_1_0 + 0
0000002e5ea0  08ed00000006 R_X86_64_GLOB_DAT 00000000002d5840 ACCESS_DESCRIPTION_it@@OPENSSL_1_1_0 + 0
0000002d6448  070b00000001 R_X86_64_64       00000000002d5240 ASIdOrRange_it@@OPENSSL_1_1_0 + 0
0000002df0e8  070b00000001 R_X86_64_64       00000000002d5240 ASIdOrRange_it@@OPENSSL_1_1_0 + 0
0000002e5e58  070b00000006 R_X86_64_GLOB_DAT 00000000002d5240 ASIdOrRange_it@@OPENSSL_1_1_0 + 0
0000002d6450  049400000001 R_X86_64_64       00000000002d5200 ASIdentifierChoice_it@@OPENSSL_1_1_0 + 0
0000002df060  049400000001 R_X86_64_64       00000000002d5200 ASIdentifierChoice_it@@OPENSSL_1_1_0 + 0
0000002df088  049400000001 R_X86_64_64       00000000002d5200 ASIdentifierChoice_it@@OPENSSL_1_1_0 + 0

so in our libcrypto, there are OPENSSL_1_1_0 symbols... maybe check which libcrypto it is picking upt for you, and if it contains the OPENSSL_1_1_0 symbols?

@casparvl
Copy link
Contributor Author

casparvl commented Nov 1, 2022

Test report by @casparvl
SUCCESS
Build succeeded for 7 out of 7 (7 easyconfigs in total)
gcn1.local.snellius.surf.nl - Linux RHEL 8.4, x86_64, Intel(R) Xeon(R) Platinum 8360Y CPU @ 2.40GHz, 4 x NVIDIA NVIDIA A100-SXM4-40GB, 515.43.04, Python 3.6.8
See https://gist.github.com/f81d6d88d26c2c114fee005316634a62 for a full test report.

@casparvl
Copy link
Contributor Author

casparvl commented Nov 1, 2022

Test report by @casparvl
SUCCESS
Build succeeded for 7 out of 7 (7 easyconfigs in total)
software2.lisa.surfsara.nl - Linux debian 10.13, x86_64, Intel(R) Xeon(R) Bronze 3104 CPU @ 1.70GHz, 4 x NVIDIA NVIDIA TITAN V, 470.103.01, Python 3.7.3
See https://gist.github.com/5306cb5051b126a527374c9aba29fa1c for a full test report.

@boegelbot
Copy link
Collaborator

Test report by @boegelbot
SUCCESS
Build succeeded for 3 out of 3 (3 easyconfigs in total)
cns1 - Linux Rocky Linux 8.5, x86_64, Intel(R) Xeon(R) CPU E5-2667 v3 @ 3.20GHz (haswell), Python 3.6.8
See https://gist.github.com/8fe1385c7210aa2cc977a7b82143e2ff for a full test report.

Caspar van Leeuwen added 2 commits February 13, 2023 13:39
…epend on JupyterLab, nor on JupyterHub, since it can be used with either of those. Thus, lowered this to IPython.
…epend on JupyterLab, nor on JupyterHub, since it can be used with either of those. Thus, lowered this to IPython.
@casparvl
Copy link
Contributor Author

@boegelbot please test @ generoso

@casparvl
Copy link
Contributor Author

casparvl commented Feb 13, 2023

@boegelbot please test @ jsc-zen2

@boegelbot
Copy link
Collaborator

@casparvl: Request for testing this PR well received on jsczen2l1.int.jsc-zen2.easybuild-test.cluster

PR test command 'EB_PR=16424 EB_ARGS= /opt/software/slurm/bin/sbatch --mem-per-cpu=4000M --job-name test_PR_16424 --ntasks=8 ~/boegelbot/eb_from_pr_upload_jsc-zen2.sh' executed!

  • exit code: 0
  • output:
Submitted batch job 2181

Test results coming soon (I hope)...

- notification for comment with ID 1427877694 processed

Message to humans: this is just bookkeeping information for me,
it is of no use to you (unless you think I have a bug, which I don't).

@boegelbot
Copy link
Collaborator

Test report by @boegelbot
FAILED
Build succeeded for 2 out of 4 (4 easyconfigs in total)
jsczen2c1.int.jsc-zen2.easybuild-test.cluster - Linux Rocky Linux 8.5, x86_64, AMD EPYC 7742 64-Core Processor (zen2), Python 3.6.8
See https://gist.github.com/a0df4924dd77d613d9fd1d8efd44445a for a full test report.

@verdurin
Copy link
Member

Test report by @verdurin
FAILED
Build succeeded for 2 out of 4 (4 easyconfigs in total)
easybuild-c7.novalocal - Linux CentOS Linux 7.9.2009, x86_64, Intel Xeon Processor (Skylake, IBRS), Python 3.6.8
See https://gist.github.com/54981411207e4242277fa7432ccd515f for a full test report.

@verdurin
Copy link
Member

Here's where it failed for me:

== FAILED: Installation ended unsuccessfully (build directory: /dev/shm/jupyterserverproxy/3.2.2/GCCcore-11.3.0): build failed (first 300 chars): `/eb/maint/software/Python/3.10.4-GCCcore-11.3.0/bin/python -m pip check` failed:
jupyter-server-proxy 3.2.2 requires jupyter-server, which is not installed.

@lexming
Copy link
Contributor

lexming commented Feb 13, 2023

@boegelbot: please test @ generoso

@boegelbot
Copy link
Collaborator

@lexming: Request for testing this PR well received on login1

PR test command 'EB_PR=16424 EB_ARGS= EB_CONTAINER= /opt/software/slurm/bin/sbatch --job-name test_PR_16424 --ntasks=4 ~/boegelbot/eb_from_pr_upload_generoso.sh' executed!

  • exit code: 0
  • output:
Submitted batch job 10219

Test results coming soon (I hope)...

- notification for comment with ID 1427953692 processed

Message to humans: this is just bookkeeping information for me,
it is of no use to you (unless you think I have a bug, which I don't).

@boegelbot
Copy link
Collaborator

Test report by @boegelbot
SUCCESS
Build succeeded for 4 out of 4 (4 easyconfigs in total)
cns1 - Linux Rocky Linux 8.5, x86_64, Intel(R) Xeon(R) CPU E5-2667 v3 @ 3.20GHz (haswell), Python 3.6.8
See https://gist.github.com/ea86f9da94dd6f766b57b40bf397d343 for a full test report.

Copy link
Contributor

@lexming lexming left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@lexming
Copy link
Contributor

lexming commented Feb 13, 2023

@verdurin can you test again please?

@lexming
Copy link
Contributor

lexming commented Feb 13, 2023

@boegelbot please test @ jsc-zen2

@boegelbot
Copy link
Collaborator

@lexming: Request for testing this PR well received on jsczen2l1.int.jsc-zen2.easybuild-test.cluster

PR test command 'EB_PR=16424 EB_ARGS= /opt/software/slurm/bin/sbatch --mem-per-cpu=4000M --job-name test_PR_16424 --ntasks=8 ~/boegelbot/eb_from_pr_upload_jsc-zen2.sh' executed!

  • exit code: 0
  • output:
Submitted batch job 2182

Test results coming soon (I hope)...

- notification for comment with ID 1427985339 processed

Message to humans: this is just bookkeeping information for me,
it is of no use to you (unless you think I have a bug, which I don't).

@boegelbot
Copy link
Collaborator

Test report by @boegelbot
SUCCESS
Build succeeded for 4 out of 4 (4 easyconfigs in total)
jsczen2c1.int.jsc-zen2.easybuild-test.cluster - Linux Rocky Linux 8.5, x86_64, AMD EPYC 7742 64-Core Processor (zen2), Python 3.6.8
See https://gist.github.com/22afede7ef93b2f0c3cdae9e13de328d for a full test report.

@casparvl
Copy link
Contributor Author

Test report by @casparvl
SUCCESS
Build succeeded for 4 out of 4 (4 easyconfigs in total)
software1.lisa.surfsara.nl - Linux debian 10.13, x86_64, Intel(R) Xeon(R) Silver 4110 CPU @ 2.10GHz, Python 3.7.3
See https://gist.github.com/c0d36ea89a88c41b21923b0505726721 for a full test report.

@casparvl
Copy link
Contributor Author

Test report by @casparvl
SUCCESS
Build succeeded for 4 out of 4 (4 easyconfigs in total)
gcn1.local.snellius.surf.nl - Linux Rocky Linux 8.7, x86_64, Intel(R) Xeon(R) Platinum 8360Y CPU @ 2.40GHz, 4 x NVIDIA NVIDIA A100-SXM4-40GB, 515.86.01, Python 3.6.8
See https://gist.github.com/3e06881b5c9210d86cf3035a119a7370 for a full test report.

@verdurin
Copy link
Member

Test report by @verdurin
FAILED
Build succeeded for 3 out of 4 (4 easyconfigs in total)
easybuild-c7.novalocal - Linux CentOS Linux 7.9.2009, x86_64, Intel Xeon Processor (Skylake, IBRS), Python 3.6.8
See https://gist.github.com/ac736ffe14b950b484e2c2b4115d4658 for a full test report.

@verdurin
Copy link
Member

A different failure for me this time, the same one mentioned above regarding OpenSSL:

== 2023-02-13 16:54:16,391 build_log.py:171 ERROR EasyBuild crashed with an error (at easybuild/base/exceptions.py:126 in __init__): Sanity check failed: extensions sanity check failed for 2 extensions: certipy, pyOpenSSL
failing sanity check for 'certipy' extension: command "python -c "import certipy"" failed; output:
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/eb/maint/software/JupyterHub/3.0.0-GCCcore-11.3.0/lib/python3.10/site-packages/certipy/__init__.py", line 62, in <module>
    from certipy.certipy import (
  File "/eb/maint/software/JupyterHub/3.0.0-GCCcore-11.3.0/lib/python3.10/site-packages/certipy/certipy.py", line 68, in <module>
    from OpenSSL import crypto
  File "/eb/maint/software/JupyterHub/3.0.0-GCCcore-11.3.0/lib/python3.10/site-packages/OpenSSL/__init__.py", line 8, in <module>
    from OpenSSL import crypto, SSL
  File "/eb/maint/software/JupyterHub/3.0.0-GCCcore-11.3.0/lib/python3.10/site-packages/OpenSSL/crypto.py", line 17, in <module>
    from OpenSSL._util import (
  File "/eb/maint/software/JupyterHub/3.0.0-GCCcore-11.3.0/lib/python3.10/site-packages/OpenSSL/_util.py", line 6, in <module>
    from cryptography.hazmat.bindings.openssl.binding import Binding
  File "/eb/maint/software/Python/3.10.4-GCCcore-11.3.0/lib/python3.10/site-packages/cryptography/hazmat/bindings/openssl/binding.py", line 14, in <module>
    from cryptography.hazmat.bindings._openssl import ffi, lib
ImportError: /eb/maint/software/Python/3.10.4-GCCcore-11.3.0/lib/python3.10/site-packages/cryptography/hazmat/bindings/_openssl.abi3.so: symbol EC_POINT_get_affine_coordinates_GF2m, version OPENSSL_1_1_0 not defined in file libcrypto.so.1.1 with link time reference,
failing sanity check for 'pyOpenSSL' extension: command "python -c "import OpenSSL"" failed; output:
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/eb/maint/software/JupyterHub/3.0.0-GCCcore-11.3.0/lib/python3.10/site-packages/OpenSSL/__init__.py", line 8, in <module>
    from OpenSSL import crypto, SSL
  File "/eb/maint/software/JupyterHub/3.0.0-GCCcore-11.3.0/lib/python3.10/site-packages/OpenSSL/crypto.py", line 17, in <module>
    from OpenSSL._util import (
  File "/eb/maint/software/JupyterHub/3.0.0-GCCcore-11.3.0/lib/python3.10/site-packages/OpenSSL/_util.py", line 6, in <module>
    from cryptography.hazmat.bindings.openssl.binding import Binding
  File "/eb/maint/software/Python/3.10.4-GCCcore-11.3.0/lib/python3.10/site-packages/cryptography/hazmat/bindings/openssl/binding.py", line 14, in <module>
    from cryptography.hazmat.bindings._openssl import ffi, lib
ImportError: /eb/maint/software/Python/3.10.4-GCCcore-11.3.0/lib/python3.10/site-packages/cryptography/hazmat/bindings/_openssl.abi3.so: symbol EC_POINT_get_affine_coordinates_GF2m, version OPENSSL_1_1_0 not defined in file libcrypto.so.1.1 with link time reference,  (at easybuild/framework/easyblock.py:3585 in _sanity_check_step)

@verdurin
Copy link
Member

Test report by @verdurin
FAILED
Build succeeded for 3 out of 4 (4 easyconfigs in total)
easybuild-c7.novalocal - Linux CentOS Linux 7.9.2009, x86_64, Intel Xeon Processor (Skylake, IBRS), Python 3.6.8
See https://gist.github.com/33decbc7cafb81e2ae11c2b079157e23 for a full test report.

@lexming
Copy link
Contributor

lexming commented Feb 14, 2023

@verdurin can you check the contents of your $EBROOTOPENSSL/lib? and also the symbols in your libcrypto with

nm -gDC $EBROOTOPENSSL/lib/libcrypto.so | grep OPENSSL_1_1

@lexming
Copy link
Contributor

lexming commented Feb 15, 2023

@verdurin since it is unlikely that your failed tests are related to the changed in this PR I'll go ahead and merge it before it gets lost in my memory stack 🙂
We can continue with the troubleshooting here or in Slack.

@lexming
Copy link
Contributor

lexming commented Feb 15, 2023

Going in, thanks @casparvl !

@lexming lexming merged commit cb79ba5 into easybuilders:develop Feb 15, 2023
@lexming lexming modified the milestones: 4.x, next release (4.7.1?) Feb 15, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants