-
-
Notifications
You must be signed in to change notification settings - Fork 3.4k
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
certbot-auto: Print link to doc on debugging pip install error [revision requested] #3473
Conversation
Also, update the doc to teach the user to workaround problem on a low memory system.
https://github.com/certbot/certbot/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20Killed I can see a few duplicated issues being filed because of low-memory kill, so I think a special instruction in the doc is justified. If that's not something should be in the doc, we should still point out better instructions (and pointers). |
echo "$PIP_OUT" | ||
echo "=====================================================" | ||
echo | ||
echo "Certbot has problem setting up the virtual environment." |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we grep "$PIP_OUT" for the relevant error strings, so that we're only printing the hint about swap space if that's the actual error the user encountered?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Which string 😝? internal compiler error: Killed (program cc1)
could happen because of other reasons. I don't feel particularly good to make unreliable guesses.
I can grep
that if you think that is the right string to grep.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Inconveniently, the error can crop up in a bunch of different ways, depending on which exact step the compilation gets to, and whether it's a specific compilation step that fails, or the kernel's OOM killer that steps in and breaks something. Here are a few different examples I've seen. These are all on DO droplets, using stress
to simulate low memory conditions (since apparently 512MB is now typically enough to run certbot-auto
, which is nice :)
Ubuntu 16.04, 26MB available:
(letsencrypt) root@certbot-auto-memtest:~# free
total used free shared buff/cache available
Mem: 500240 445120 16996 648 38124 26664
Swap: 0 0 0
(letsencrypt) root@certbot-auto-memtest:~# pip install cryptography
Collecting cryptography
Killed
CentOS 6.8 (31MB free)
(letsencrypt)[root@certbot-auto-memtest letsencrypt]# free
total used free shared buffers cached
Mem: 502000 470716 31284 148 4940 11312
-/+ buffers/cache: 454464 47536
Swap: 0 0 0
(letsencrypt)[root@certbot-auto-memtest letsencrypt]# pip install cryptography
DEPRECATION: Python 2.6 is no longer supported by the Python core team, please upgrade your Python. A future version of pip will drop support for Python 2.6
Collecting cryptography
/root/.local/share/letsencrypt/lib/python2.6/site-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:315: SNIMissingWarning: An HTTPS request has been made, but the SNI (Subject Name Indication) extension to TLS is not available on this platform. This may cause the server to present an incorrect TLS certificate, which can cause validation failures. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#snimissingwarning.
SNIMissingWarning
/root/.local/share/letsencrypt/lib/python2.6/site-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:120: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
InsecurePlatformWarning
Downloading cryptography-1.5.tar.gz (400kB)
100% |████████████████████████████████| 401kB 406kB/s
Error [Errno 12] Cannot allocate memory while executing command python setup.py egg_info
Exception:
Traceback (most recent call last):
File "/root/.local/share/letsencrypt/lib/python2.6/site-packages/pip/basecommand.py", line 209, in main
status = self.run(options, args)
File "/root/.local/share/letsencrypt/lib/python2.6/site-packages/pip/commands/install.py", line 310, in run
wb.build(autobuilding=True)
File "/root/.local/share/letsencrypt/lib/python2.6/site-packages/pip/wheel.py", line 747, in build
self.requirement_set.prepare_files(self.finder)
File "/root/.local/share/letsencrypt/lib/python2.6/site-packages/pip/req/req_set.py", line 359, in prepare_files
ignore_dependencies=self.ignore_dependencies))
File "/root/.local/share/letsencrypt/lib/python2.6/site-packages/pip/req/req_set.py", line 590, in _prepare_file
abstract_dist.prep_for_dist()
File "/root/.local/share/letsencrypt/lib/python2.6/site-packages/pip/req/req_set.py", line 127, in prep_for_dist
self.req_to_install.run_egg_info()
File "/root/.local/share/letsencrypt/lib/python2.6/site-packages/pip/req/req_install.py", line 440, in run_egg_info
command_desc='python setup.py egg_info')
File "/root/.local/share/letsencrypt/lib/python2.6/site-packages/pip/utils/__init__.py", line 677, in call_subprocess
cwd=cwd, env=env)
File "/usr/lib64/python2.6/subprocess.py", line 642, in __init__
errread, errwrite)
File "/usr/lib64/python2.6/subprocess.py", line 1144, in _execute_child
self.pid = os.fork()
OSError: [Errno 12] Cannot allocate memory
You are using pip version 8.0.3, however version 8.1.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
CentOS 6.x, ~100MB free:
letsencrypt)[root@certbot-auto-memtest letsencrypt]# free
total used free shared buffers cached
Mem: 502000 405212 96788 148 5296 26732
-/+ buffers/cache: 373184 128816
Swap: 0 0 0
(letsencrypt)[root@certbot-auto-memtest letsencrypt]# pip install cryptography
DEPRECATION: Python 2.6 is no longer supported by the Python core team, please upgrade your Python. A future version of pip will drop support for Python 2.6
Collecting cryptography
/root/.local/share/letsencrypt/lib/python2.6/site-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:315: SNIMissingWarning: An HTTPS request has been made, but the SNI (Subject Name Indication) extension to TLS is not available on this platform. This may cause the server to present an incorrect TLS certificate, which can cause validation failures. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#snimissingwarning.
SNIMissingWarning
/root/.local/share/letsencrypt/lib/python2.6/site-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:120: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
InsecurePlatformWarning
Using cached cryptography-1.5.tar.gz
Requirement already satisfied (use --upgrade to upgrade): idna>=2.0 in ./lib/python2.6/site-packages (from cryptography)
Requirement already satisfied (use --upgrade to upgrade): pyasn1>=0.1.8 in ./lib/python2.6/site-packages (from cryptography)
Requirement already satisfied (use --upgrade to upgrade): six>=1.4.1 in ./lib/python2.6/site-packages (from cryptography)
Requirement already satisfied (use --upgrade to upgrade): setuptools>=11.3 in ./lib/python2.6/site-packages (from cryptography)
Requirement already satisfied (use --upgrade to upgrade): enum34 in ./lib/python2.6/site-packages (from cryptography)
Requirement already satisfied (use --upgrade to upgrade): ipaddress in ./lib/python2.6/site-packages (from cryptography)
Requirement already satisfied (use --upgrade to upgrade): cffi>=1.4.1 in ./lib/python2.6/site-packages (from cryptography)
Requirement already satisfied (use --upgrade to upgrade): ordereddict in ./lib/python2.6/site-packages (from enum34->cryptography)
Requirement already satisfied (use --upgrade to upgrade): pycparser in ./lib/python2.6/site-packages (from cffi>=1.4.1->cryptography)
Building wheels for collected packages: cryptography
Running setup.py bdist_wheel for cryptography ... error
Complete output from command /root/.local/share/letsencrypt/bin/python2 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-NtR_nB/cryptography/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" bdist_wheel -d /tmp/tmpe_5tXapip-wheel- --python-tag cp26:
running bdist_wheel
running build
running build_py
creating build
creating build/lib.linux-x86_64-2.6
creating build/lib.linux-x86_64-2.6/cryptography
copying src/cryptography/fernet.py -> build/lib.linux-x86_64-2.6/cryptography
copying src/cryptography/__init__.py -> build/lib.linux-x86_64-2.6/cryptography
copying src/cryptography/__about__.py -> build/lib.linux-x86_64-2.6/cryptography
copying src/cryptography/utils.py -> build/lib.linux-x86_64-2.6/cryptography
copying src/cryptography/exceptions.py -> build/lib.linux-x86_64-2.6/cryptography
creating build/lib.linux-x86_64-2.6/cryptography/hazmat
copying src/cryptography/hazmat/__init__.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat
creating build/lib.linux-x86_64-2.6/cryptography/x509
copying src/cryptography/x509/base.py -> build/lib.linux-x86_64-2.6/cryptography/x509
copying src/cryptography/x509/__init__.py -> build/lib.linux-x86_64-2.6/cryptography/x509
copying src/cryptography/x509/general_name.py -> build/lib.linux-x86_64-2.6/cryptography/x509
copying src/cryptography/x509/extensions.py -> build/lib.linux-x86_64-2.6/cryptography/x509
copying src/cryptography/x509/oid.py -> build/lib.linux-x86_64-2.6/cryptography/x509
copying src/cryptography/x509/name.py -> build/lib.linux-x86_64-2.6/cryptography/x509
creating build/lib.linux-x86_64-2.6/cryptography/hazmat/bindings
copying src/cryptography/hazmat/bindings/__init__.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/bindings
creating build/lib.linux-x86_64-2.6/cryptography/hazmat/backends
copying src/cryptography/hazmat/backends/__init__.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/backends
copying src/cryptography/hazmat/backends/multibackend.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/backends
copying src/cryptography/hazmat/backends/interfaces.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/backends
creating build/lib.linux-x86_64-2.6/cryptography/hazmat/primitives
copying src/cryptography/hazmat/primitives/hmac.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/primitives
copying src/cryptography/hazmat/primitives/hashes.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/primitives
copying src/cryptography/hazmat/primitives/keywrap.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/primitives
copying src/cryptography/hazmat/primitives/__init__.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/primitives
copying src/cryptography/hazmat/primitives/serialization.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/primitives
copying src/cryptography/hazmat/primitives/constant_time.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/primitives
copying src/cryptography/hazmat/primitives/cmac.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/primitives
copying src/cryptography/hazmat/primitives/padding.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/primitives
creating build/lib.linux-x86_64-2.6/cryptography/hazmat/bindings/openssl
copying src/cryptography/hazmat/bindings/openssl/binding.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/bindings/openssl
copying src/cryptography/hazmat/bindings/openssl/_conditional.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/bindings/openssl
copying src/cryptography/hazmat/bindings/openssl/__init__.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/bindings/openssl
creating build/lib.linux-x86_64-2.6/cryptography/hazmat/bindings/commoncrypto
copying src/cryptography/hazmat/bindings/commoncrypto/binding.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/bindings/commoncrypto
copying src/cryptography/hazmat/bindings/commoncrypto/__init__.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/bindings/commoncrypto
creating build/lib.linux-x86_64-2.6/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/hmac.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/x509.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/ciphers.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/hashes.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/__init__.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/decode_asn1.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/utils.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/ec.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/dsa.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/backend.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/rsa.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/cmac.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/encode_asn1.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/backends/openssl
creating build/lib.linux-x86_64-2.6/cryptography/hazmat/backends/commoncrypto
copying src/cryptography/hazmat/backends/commoncrypto/hmac.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/backends/commoncrypto
copying src/cryptography/hazmat/backends/commoncrypto/ciphers.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/backends/commoncrypto
copying src/cryptography/hazmat/backends/commoncrypto/hashes.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/backends/commoncrypto
copying src/cryptography/hazmat/backends/commoncrypto/__init__.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/backends/commoncrypto
copying src/cryptography/hazmat/backends/commoncrypto/backend.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/backends/commoncrypto
creating build/lib.linux-x86_64-2.6/cryptography/hazmat/primitives/interfaces
copying src/cryptography/hazmat/primitives/interfaces/__init__.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/primitives/interfaces
creating build/lib.linux-x86_64-2.6/cryptography/hazmat/primitives/twofactor
copying src/cryptography/hazmat/primitives/twofactor/totp.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/primitives/twofactor
copying src/cryptography/hazmat/primitives/twofactor/__init__.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/primitives/twofactor
copying src/cryptography/hazmat/primitives/twofactor/hotp.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/primitives/twofactor
copying src/cryptography/hazmat/primitives/twofactor/utils.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/primitives/twofactor
creating build/lib.linux-x86_64-2.6/cryptography/hazmat/primitives/kdf
copying src/cryptography/hazmat/primitives/kdf/x963kdf.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/primitives/kdf
copying src/cryptography/hazmat/primitives/kdf/__init__.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/primitives/kdf
copying src/cryptography/hazmat/primitives/kdf/concatkdf.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/primitives/kdf
copying src/cryptography/hazmat/primitives/kdf/pbkdf2.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/primitives/kdf
copying src/cryptography/hazmat/primitives/kdf/kbkdf.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/primitives/kdf
copying src/cryptography/hazmat/primitives/kdf/hkdf.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/primitives/kdf
creating build/lib.linux-x86_64-2.6/cryptography/hazmat/primitives/asymmetric
copying src/cryptography/hazmat/primitives/asymmetric/__init__.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/primitives/asymmetric
copying src/cryptography/hazmat/primitives/asymmetric/dh.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/primitives/asymmetric
copying src/cryptography/hazmat/primitives/asymmetric/utils.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/primitives/asymmetric
copying src/cryptography/hazmat/primitives/asymmetric/ec.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/primitives/asymmetric
copying src/cryptography/hazmat/primitives/asymmetric/dsa.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/primitives/asymmetric
copying src/cryptography/hazmat/primitives/asymmetric/rsa.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/primitives/asymmetric
copying src/cryptography/hazmat/primitives/asymmetric/padding.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/primitives/asymmetric
creating build/lib.linux-x86_64-2.6/cryptography/hazmat/primitives/ciphers
copying src/cryptography/hazmat/primitives/ciphers/algorithms.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/primitives/ciphers
copying src/cryptography/hazmat/primitives/ciphers/modes.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/primitives/ciphers
copying src/cryptography/hazmat/primitives/ciphers/base.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/primitives/ciphers
copying src/cryptography/hazmat/primitives/ciphers/__init__.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/primitives/ciphers
running egg_info
writing requirements to src/cryptography.egg-info/requires.txt
writing src/cryptography.egg-info/PKG-INFO
writing top-level names to src/cryptography.egg-info/top_level.txt
writing dependency_links to src/cryptography.egg-info/dependency_links.txt
writing entry points to src/cryptography.egg-info/entry_points.txt
warning: manifest_maker: standard file '-c' not found
reading manifest file 'src/cryptography.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
no previously-included directories found matching 'docs/_build'
warning: no previously-included files matching '*' found under directory 'vectors'
writing manifest file 'src/cryptography.egg-info/SOURCES.txt'
running build_ext
generating cffi module 'build/temp.linux-x86_64-2.6/_padding.c'
creating build/temp.linux-x86_64-2.6
generating cffi module 'build/temp.linux-x86_64-2.6/_constant_time.c'
generating cffi module 'build/temp.linux-x86_64-2.6/_openssl.c'
building '_openssl' extension
creating build/temp.linux-x86_64-2.6/build
creating build/temp.linux-x86_64-2.6/build/temp.linux-x86_64-2.6
gcc -pthread -fno-strict-aliasing -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -fPIC -I/usr/include/python2.6 -c build/temp.linux-x86_64-2.6/_openssl.c -o build/temp.linux-x86_64-2.6/build/temp.linux-x86_64-2.6/_openssl.o
gcc: Internal error: Killed (program cc1)
Please submit a full bug report.
See <http://bugzilla.redhat.com/bugzilla> for instructions.
error: command 'gcc' failed with exit status 1
----------------------------------------
Failed building wheel for cryptography
Running setup.py clean for cryptography
Failed to build cryptography
Installing collected packages: cryptography
Running setup.py install for cryptography ... error
Complete output from command /root/.local/share/letsencrypt/bin/python2 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-NtR_nB/cryptography/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-OvGQ8O-record/install-record.txt --single-version-externally-managed --compile --install-headers /root/.local/share/letsencrypt/include/site/python2.6/cryptography:
running install
running build
running build_py
creating build
creating build/lib.linux-x86_64-2.6
creating build/lib.linux-x86_64-2.6/cryptography
copying src/cryptography/fernet.py -> build/lib.linux-x86_64-2.6/cryptography
copying src/cryptography/__init__.py -> build/lib.linux-x86_64-2.6/cryptography
copying src/cryptography/__about__.py -> build/lib.linux-x86_64-2.6/cryptography
copying src/cryptography/utils.py -> build/lib.linux-x86_64-2.6/cryptography
copying src/cryptography/exceptions.py -> build/lib.linux-x86_64-2.6/cryptography
creating build/lib.linux-x86_64-2.6/cryptography/hazmat
copying src/cryptography/hazmat/__init__.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat
creating build/lib.linux-x86_64-2.6/cryptography/x509
copying src/cryptography/x509/base.py -> build/lib.linux-x86_64-2.6/cryptography/x509
copying src/cryptography/x509/__init__.py -> build/lib.linux-x86_64-2.6/cryptography/x509
copying src/cryptography/x509/general_name.py -> build/lib.linux-x86_64-2.6/cryptography/x509
copying src/cryptography/x509/extensions.py -> build/lib.linux-x86_64-2.6/cryptography/x509
copying src/cryptography/x509/oid.py -> build/lib.linux-x86_64-2.6/cryptography/x509
copying src/cryptography/x509/name.py -> build/lib.linux-x86_64-2.6/cryptography/x509
creating build/lib.linux-x86_64-2.6/cryptography/hazmat/bindings
copying src/cryptography/hazmat/bindings/__init__.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/bindings
creating build/lib.linux-x86_64-2.6/cryptography/hazmat/backends
copying src/cryptography/hazmat/backends/__init__.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/backends
copying src/cryptography/hazmat/backends/multibackend.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/backends
copying src/cryptography/hazmat/backends/interfaces.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/backends
creating build/lib.linux-x86_64-2.6/cryptography/hazmat/primitives
copying src/cryptography/hazmat/primitives/hmac.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/primitives
copying src/cryptography/hazmat/primitives/hashes.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/primitives
copying src/cryptography/hazmat/primitives/keywrap.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/primitives
copying src/cryptography/hazmat/primitives/__init__.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/primitives
copying src/cryptography/hazmat/primitives/serialization.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/primitives
copying src/cryptography/hazmat/primitives/constant_time.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/primitives
copying src/cryptography/hazmat/primitives/cmac.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/primitives
copying src/cryptography/hazmat/primitives/padding.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/primitives
creating build/lib.linux-x86_64-2.6/cryptography/hazmat/bindings/openssl
copying src/cryptography/hazmat/bindings/openssl/binding.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/bindings/openssl
copying src/cryptography/hazmat/bindings/openssl/_conditional.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/bindings/openssl
copying src/cryptography/hazmat/bindings/openssl/__init__.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/bindings/openssl
creating build/lib.linux-x86_64-2.6/cryptography/hazmat/bindings/commoncrypto
copying src/cryptography/hazmat/bindings/commoncrypto/binding.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/bindings/commoncrypto
copying src/cryptography/hazmat/bindings/commoncrypto/__init__.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/bindings/commoncrypto
creating build/lib.linux-x86_64-2.6/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/hmac.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/x509.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/ciphers.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/hashes.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/__init__.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/decode_asn1.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/utils.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/ec.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/dsa.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/backend.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/rsa.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/cmac.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/encode_asn1.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/backends/openssl
creating build/lib.linux-x86_64-2.6/cryptography/hazmat/backends/commoncrypto
copying src/cryptography/hazmat/backends/commoncrypto/hmac.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/backends/commoncrypto
copying src/cryptography/hazmat/backends/commoncrypto/ciphers.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/backends/commoncrypto
copying src/cryptography/hazmat/backends/commoncrypto/hashes.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/backends/commoncrypto
copying src/cryptography/hazmat/backends/commoncrypto/__init__.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/backends/commoncrypto
copying src/cryptography/hazmat/backends/commoncrypto/backend.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/backends/commoncrypto
creating build/lib.linux-x86_64-2.6/cryptography/hazmat/primitives/interfaces
copying src/cryptography/hazmat/primitives/interfaces/__init__.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/primitives/interfaces
creating build/lib.linux-x86_64-2.6/cryptography/hazmat/primitives/twofactor
copying src/cryptography/hazmat/primitives/twofactor/totp.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/primitives/twofactor
copying src/cryptography/hazmat/primitives/twofactor/__init__.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/primitives/twofactor
copying src/cryptography/hazmat/primitives/twofactor/hotp.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/primitives/twofactor
copying src/cryptography/hazmat/primitives/twofactor/utils.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/primitives/twofactor
creating build/lib.linux-x86_64-2.6/cryptography/hazmat/primitives/kdf
copying src/cryptography/hazmat/primitives/kdf/x963kdf.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/primitives/kdf
copying src/cryptography/hazmat/primitives/kdf/__init__.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/primitives/kdf
copying src/cryptography/hazmat/primitives/kdf/concatkdf.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/primitives/kdf
copying src/cryptography/hazmat/primitives/kdf/pbkdf2.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/primitives/kdf
copying src/cryptography/hazmat/primitives/kdf/kbkdf.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/primitives/kdf
copying src/cryptography/hazmat/primitives/kdf/hkdf.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/primitives/kdf
creating build/lib.linux-x86_64-2.6/cryptography/hazmat/primitives/asymmetric
copying src/cryptography/hazmat/primitives/asymmetric/__init__.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/primitives/asymmetric
copying src/cryptography/hazmat/primitives/asymmetric/dh.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/primitives/asymmetric
copying src/cryptography/hazmat/primitives/asymmetric/utils.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/primitives/asymmetric
copying src/cryptography/hazmat/primitives/asymmetric/ec.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/primitives/asymmetric
copying src/cryptography/hazmat/primitives/asymmetric/dsa.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/primitives/asymmetric
copying src/cryptography/hazmat/primitives/asymmetric/rsa.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/primitives/asymmetric
copying src/cryptography/hazmat/primitives/asymmetric/padding.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/primitives/asymmetric
creating build/lib.linux-x86_64-2.6/cryptography/hazmat/primitives/ciphers
copying src/cryptography/hazmat/primitives/ciphers/algorithms.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/primitives/ciphers
copying src/cryptography/hazmat/primitives/ciphers/modes.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/primitives/ciphers
copying src/cryptography/hazmat/primitives/ciphers/base.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/primitives/ciphers
copying src/cryptography/hazmat/primitives/ciphers/__init__.py -> build/lib.linux-x86_64-2.6/cryptography/hazmat/primitives/ciphers
running egg_info
writing requirements to src/cryptography.egg-info/requires.txt
writing src/cryptography.egg-info/PKG-INFO
writing top-level names to src/cryptography.egg-info/top_level.txt
writing dependency_links to src/cryptography.egg-info/dependency_links.txt
writing entry points to src/cryptography.egg-info/entry_points.txt
warning: manifest_maker: standard file '-c' not found
reading manifest file 'src/cryptography.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
no previously-included directories found matching 'docs/_build'
warning: no previously-included files matching '*' found under directory 'vectors'
writing manifest file 'src/cryptography.egg-info/SOURCES.txt'
running build_ext
generating cffi module 'build/temp.linux-x86_64-2.6/_padding.c'
creating build/temp.linux-x86_64-2.6
generating cffi module 'build/temp.linux-x86_64-2.6/_constant_time.c'
generating cffi module 'build/temp.linux-x86_64-2.6/_openssl.c'
building '_openssl' extension
creating build/temp.linux-x86_64-2.6/build
creating build/temp.linux-x86_64-2.6/build/temp.linux-x86_64-2.6
gcc -pthread -fno-strict-aliasing -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -fPIC -I/usr/include/python2.6 -c build/temp.linux-x86_64-2.6/_openssl.c -o build/temp.linux-x86_64-2.6/build/temp.linux-x86_64-2.6/_openssl.o
gcc: Internal error: Killed (program cc1)
Please submit a full bug report.
See <http://bugzilla.redhat.com/bugzilla> for instructions.
error: command 'gcc' failed with exit status 1
----------------------------------------
Command "/root/.local/share/letsencrypt/bin/python2 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-NtR_nB/cryptography/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-OvGQ8O-record/install-record.txt --single-version-externally-managed --compile --install-headers /root/.local/share/letsencrypt/include/site/python2.6/cryptography" failed with error code 1 in /tmp/pip-build-NtR_nB/cryptography
You are using pip version 8.0.3, however version 8.1.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So maybe we should grep for the strings Killed
and allocate memory
, and print information suggesting that this might be the problem, and how to fix it, in those cases?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've just recreated the problem on my DO droplet again. On Ubuntu it does not seems to print allocate memory
, just Killed
.
@pde Should we grep for Killed
_or_ allocate memory
?
And thanks for the PR @timdream, I think this is a good approach to helping people who hit this problem! |
Sorry about the Travis failures. They were unrelated to this PR and have been fixed. Rerunning your Travis build. |
@bmw Do we still need this patch? |
Yes. We should still consider something like this, as running out of memory when using |
@bmw Thanks. Could you tell me what's left to do get this pull request merged? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good but I think you want to print this if either of those strings are in the output, not if they're both there?
echo | ||
echo "Certbot has problem setting up the virtual environment." | ||
|
||
if `echo $PIP_OUT | grep -q Killed` && `echo $PIP_OUT | grep -q "allocate memory"` ; then |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should be ||
not &&
.
@timdream just fix that one glitch and we should be able merge this for the 0.10.0 release. |
Move the added section from using.rst to install.rst
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
OK LGTM
Fixes: #3355 |
Also, update the doc to teach the user to workaround problem on a low
memory system.
This is a document- and log-only fix.
With instruction here and #3472, we would be able to allow the user to
create automation scripts to do that exact workaround.