[tahoe-lafs-trac-stream] [Tahoe-LAFS] #3914: Loading a huge RSA key is _extremely_ slow on Ubuntu 22.04

Tahoe-LAFS trac at tahoe-lafs.org
Fri Dec 2 16:17:46 UTC 2022


#3914: Loading a huge RSA key is _extremely_ slow on Ubuntu 22.04
--------------------------+-----------------------
     Reporter:  itamarst  |      Owner:
         Type:  defect    |     Status:  new
     Priority:  normal    |  Milestone:  undecided
    Component:  unknown   |    Version:  n/a
   Resolution:            |   Keywords:
Launchpad Bug:            |
--------------------------+-----------------------

Comment (by exarkun):

 On CircleCI, this is reported as the slowest test, taking more than 4
 minutes to run on at least 95% of test runs.

 I can reproduce this locally with tox where these versions are installed:

 {{{
 appdirs==1.4.4
 attrs==22.1.0
 autobahn==22.7.1
 Automat==22.10.0
 bcrypt==4.0.1
 beautifulsoup4==4.11.1
 boltons==21.0.0
 cbor2==5.4.5
 certifi==2022.9.24
 cffi==1.15.1
 cfgv==3.3.1
 charset-normalizer==2.1.1
 click==8.1.3
 click-default-group==1.2.2
 collections-extended==2.0.2
 constantly==15.1.0
 coverage==5.5
 cryptography==38.0.4
 decorator==5.1.1
 distlib==0.3.6
 distro==1.8.0
 eliot==1.14.0
 exceptiongroup==1.0.4
 extras==1.0.0
 filelock==3.8.0
 fixtures==4.0.1
 flake8==3.8.4
 foolscap==21.7.0
 future==0.18.2
 greenlet==2.0.1
 hkdf==0.0.3
 html5lib==1.1
 humanize==4.4.0
 hyperlink==21.0.0
 hypothesis==6.59.0
 identify==2.5.9
 idna==3.4
 incremental==22.10.0
 [30/129]
 iniconfig==1.1.1
 Jinja2==3.1.2
 junitxml==0.7
 klein==21.8.0
 magic-wormhole==0.12.0
 MarkupSafe==2.1.1
 mccabe==0.6.1
 mock==4.0.3
 netifaces==0.11.0
 nodeenv==1.7.0
 packaging==21.3
 paramiko==2.8.1
 Parsley==1.3
 pbr==5.11.0
 platformdirs==2.5.4
 pluggy==1.0.0
 pre-commit==2.20.0
 prometheus-client==0.11.0
 psutil==5.9.4
 py==1.11.0
 pyasn1==0.4.8
 pyasn1-modules==0.2.8
 pycddl==0.2.2
 pycodestyle==2.6.0
 pycparser==2.21
 pyflakes==2.2.0
 PyNaCl==1.5.0
 pyOpenSSL==22.1.0
 pyparsing==3.0.9
 pyrsistent==0.19.2
 pytest==7.2.0
 pytest-timeout==2.1.0
 pytest-twisted==1.14.0
 python-subunit==1.4.2
 pyutil==3.3.0
 PyYAML==6.0
 requests==2.28.1
 service-identity==21.1.0
 six==1.16.0
 sortedcontainers==2.4.0
 soupsieve==2.3.2.post1
 spake2==0.8
 subunitreporter==22.2.0
 tahoe-lafs @ file:///home/exarkun/Work/python/tahoe-
 lafs/.tox/.tmp/package/1/tahoe-lafs-1.18.1.dev172%2Bgb56f53b77.zip
 tenacity==8.1.0
 testtools==2.5.0
 toml==0.10.2
 tomli==2.0.1
 towncrier==22.8.0
 tox==3.27.1
 tqdm==4.64.1
 treq==22.2.0
 Tubes==0.2.1
 Twisted==22.10.0
 txaio==22.2.1
 txi2p-tahoe==0.3.7
 txtorcon==22.0.0
 typing_extensions==4.4.0
 urllib3==1.26.13
 virtualenv==20.17.0
 webencodings==0.5.1
 Werkzeug==2.2.2
 zfec==1.5.7.2
 zope.interface==5.5.2
 }}}

 but I fail to reproduce it in a different virtualenv (the test takes about
 4 seconds there):

 {{{
 aniso8601==9.0.1
 appdirs==1.4.4
 attrs==21.4.0
 autobahn==21.11.1
 Automat==20.2.0
 bcrypt==3.2.0
 beautifulsoup4==4.10.0
 black==22.3.0
 boltons==21.0.0
 build==0.9.0
 cbor2==5.4.2
 certifi==2021.10.8
 cffi==1.15.0
 characteristic==14.3.0
 charset-normalizer==2.0.10
 click==8.0.3
 click-default-group==1.2.2
 collections-extended==2.0.2
 colorama==0.4.6
 colored==1.4.3
 compose==1.4.8
 constantly==15.1.0
 coverage==5.5
 cryptography==36.0.1
 decorator==4.4.2
 distlib==0.3.4
 distro==1.6.0
 eliot==1.14.0
 eliot-tree==21.0.0
 execnet==1.9.0
 extras==1.0.0
 filelock==3.4.2
 fixtures==3.0.0
 flake8==3.8.4
 foolscap==21.7.0
 future==0.18.2
 greenlet==1.1.2
 hkdf==0.0.3
 html5lib==1.1
 humanize==3.13.1
 hyperlink==21.0.0
 hypothesis==6.36.0
 idna==3.3
 incremental==21.3.0
 iniconfig==1.1.1
 iso8601==1.0.2
 isort==5.10.1
 Jinja2==3.0.3
 jmespath==1.0.1
 junitxml==0.7
 klein==21.8.0
 magic-wormhole==0.12.0
 MarkupSafe==2.0.1
 mccabe==0.6.1
 mock==4.0.3
 mypy==0.981
 mypy-clean-slate==0.1.5
 mypy-extensions==0.4.3
 mypy-zope==0.3.11
 netifaces==0.11.0
 packaging==21.3
 paramiko==2.8.1
 Parsley==1.3
 pathspec==0.9.0
 pbr==5.8.0
 pep517==0.13.0
 pip-tools==6.10.0
 platformdirs==2.4.1
 pluggy==1.0.0
 prometheus-client==0.11.0
 psutil==5.9.2
 py==1.11.0
 pyasn1==0.4.8
 pyasn1-modules==0.2.8
 pycddl==0.2.2
 pycodestyle==2.6.0
 pycparser==2.21
 pyflakes==2.2.0
 PyHamcrest==2.0.3
 PyNaCl==1.5.0
 pyOpenSSL==21.0.0
 pyparsing==3.0.6
 pyrsistent==0.18.1
 pytest==6.2.5
 pytest-forked==1.4.0
 pytest-timeout==2.1.0
 pytest-twisted==1.13.4
 pytest-xdist==2.5.0
 python-challenge-bypass-ristretto==2022.6.30
 pytz==2022.6
 pyutil==3.3.0
 PyYAML==6.0
 requests==2.27.1
 service-identity==21.1.0
 setuptools-scm==7.0.5
 six==1.16.0
 sortedcontainers==2.4.0
 soupsieve==2.3.1
 spake2==0.8
 sqlparse==0.4.3
 -e git+ssh://git@github.com/tahoe-lafs/tahoe-
 lafs at b56f53b77c7c5f4f184cd82dca5d03c96664389a#egg=tahoe_lafs
 tenacity==8.0.1
 testtools==2.5.0
 toml==0.10.2
 tomli==2.0.1
 toolz==0.12.0
 towncrier==21.3.0
 tox==3.24.5
 tqdm==4.62.3
 treq==21.5.0
 Tubes==0.2.0
 Twisted==22.10.0
 txaio==21.2.1
 -e git+ssh://git@github.com/tahoe-
 lafs/txi2p at a2e23a2a38f1bb110f90eb77b60fd9a6be62e42d#egg=txi2p_tahoe
 txtorcon==21.1.0
 types-cryptography==3.3.23.2
 types-mock==4.0.15.2
 types-pkg-resources==0.1.3
 types-pyOpenSSL==22.1.0.2
 types-PyYAML==6.0.12.2
 types-six==1.16.21.4
 typing_extensions==4.0.1
 urllib3==1.26.8
 virtualenv==20.13.0
 webencodings==0.5.1
 Werkzeug==2.0.2
 zero-knowledge-access-pass-authorizer==2022.8.21
 zfec==1.5.5
 zope.event==4.5.0
 zope.interface==5.4.0
 zope.schema==6.2.0
 }}}

 There's a *lot* that's different between the two envs.  However, jumping
 straight to cryptography on the assumption that that's where a lot of the
 work is happening...

 When I upgrade cryptography (36.0.1) and pyopenssl (21.0.0) in the fast
 env to the versions in the slow env (38.0.4 and 22.0.0 respectively), the
 fast env gets slow.

 And with cryptography 37.0.0 it's still slow but with 36.0.2 it's fast
 again.

--
Ticket URL: <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3914#comment:2>
Tahoe-LAFS <https://Tahoe-LAFS.org>
secure decentralized storage


More information about the tahoe-lafs-trac-stream mailing list