After running updates, carbon-cache throws the folling error on a service restart.
systemctl status carbon-cache
● carbon-cache.service - Graphite Carbon Cache
Loaded: loaded (/usr/lib/systemd/system/carbon-cache.service; enabled; vendor preset: disabled)
Active: failed (Result: exit-code) since Mon 2017-03-06 11:04:37 PST; 6s ago
Process: 31672 ExecStart=/usr/bin/carbon-cache --config=/etc/carbon/carbon.conf --pidfile=/var/run/carbon-cache.pid --logdir=/var/log/carbon/ start (code=exited, status=1/FAILURE)
Main PID: 16619 (code=exited, status=0/SUCCESS)
Mar 06 11:04:37 acme.com carbon-cache[31672]: from twisted.protocols.tls import TLSMemoryBIOFactory, TLSMemoryBIOProtocol
Mar 06 11:04:37 acme.com carbon-cache[31672]: File "/usr/lib64/python2.7/site-packages/twisted/protocols/tls.py", line 63, in <module>
Mar 06 11:04:37 acme.com carbon-cache[31672]: from twisted.internet._sslverify import _setAcceptableProtocols
Mar 06 11:04:37 acme.com carbon-cache[31672]: File "/usr/lib64/python2.7/site-packages/twisted/internet/_sslverify.py", line 38, in <module>
Mar 06 11:04:37 adme.com carbon-cache[31672]: TLSVersion.TLSv1_1: SSL.OP_NO_TLSv1_1,
Mar 06 11:04:37 acme.com carbon-cache[31672]: AttributeError: 'module' object has no attribute 'OP_NO_TLSv1_1'
Mar 06 11:04:37 acme.com systemd[1]: carbon-cache.service: control process exited, code=exited status=1
Mar 06 11:04:37 acme.com systemd[1]: Failed to start Graphite Carbon Cache.
Mar 06 11:04:37 acme.com systemd[1]: Unit carbon-cache.service entered failed state.
Mar 06 11:04:37 acme.com systemd[1]: carbon-cache.service failed.
This seems to relate to changes to TLS version support in pyOpenSSL/OpenSSL. I’m not using TLS for carbon-cache, I don’t think, so disabling the reference in Twisted framework’s respective file should be fine. Comment out the lines referenced in the above error, like so:
sed -i 's/TLSVersion.TLSv1_1: SSL.OP_NO_TLSv1_1,/#TLSVersion.TLSv1_1: SSL.OP_NO_TLSv1_1,/g' /usr/lib64/python2.7/site-packages/twisted/internet/_sslverify.py
sed -i 's/TLSVersion.TLSv1_2: SSL.OP_NO_TLSv1_2,/#TLSVersion.TLSv1_2: SSL.OP_NO_TLSv1_2,/g' /usr/lib64/python2.7/site-packages/twisted/internet/_sslverify.py