【Let's Encrypt】エラー「ABRT has detected 1 problem(s). For more info run: abrt-cli list --since 1509764113」

先日「さくらVPS」のCentOS7サーバーにログインし、「sudo su -」コマンドを実行したところ「ABRT has detected 1 problem(s). For more info run: abrt-cli list --since 1509764113」のメッセージが表示されました。

原因を調査してみます。

 

certbot(Let's Encrypt)のエラーが原因

「ABRT has detected 1 problem(s). For more info run: abrt-cli list --since 1509764113」のメッセージで、もっと情報が欲しければ「abrt-cli list --since 150976411」コマンドを実行するように言っているので実行します。

[test@SAKURA_VPS ~]$ sudo su - ← sudo su - コマンドを実行したところ、以下のメッセージが出力されました。
最終ログイン: 2017/11/04 (土) 11:55:13 JST日時 pts/0
ABRT has detected 1 problem(s). For more info run: abrt-cli list --since 1509764113
[root@SAKURA_VPS ~]#
[root@SAKURA_VPS ~]#
[root@SAKURA_VPS ~]# abrt-cli list --since 1509764113 ← メッセージの通り、そのまま実行します。
id 3eab4cfb354078c56acf2562b8714260b31c5b9b
reason:         requirements.py:59::TypeError: __call__() takes exactly 2 arguments (1 given)
time:           2017年11月05日 00時00分03秒
cmdline:        /usr/bin/python2 /usr/bin/certbot renew
package:        certbot-0.18.1-1.el7
uid:            0 (root)
count:          2
Directory:      /var/spool/abrt/Python-2017-11-05-00:00:03-10720

自動報告機能は無効になっています。root の特権を持つユーザーで
'abrt-auto-reporting enabled' を発行し、この機能を有効にすることを検討してみてください
[root@SAKURA_VPS ~]#
[root@SAKURA_VPS ~]#

 

 

「/var/log/messages」も確認します。

ログを確認するとcertbotのメッセージが出力されています。

Nov 12 00:00:02 tk2-xxx-xxxx1 python2: detected unhandled Python exception in '/usr/bin/certbot'
Nov 12 00:00:04 tk2-xxx-xxxx1 abrt-server: Duplicate: core backtrace
Nov 12 00:00:04 tk2-xxx-xxxx1 abrt-server: DUP_OF_DIR: /var/spool/abrt/Python-2017-11-05-00:00:03-10720
Nov 12 00:00:04 tk2-xxx-xxxx1 abrt-server: Deleting problem directory Python-2017-11-12-00:00:03-27638 (dup of Python-2017-11-05-00:00:03-10720)
Nov 12 00:00:04 tk2-xxx-xxxx1 dbus[579]: [system] Activating service name='org.freedesktop.problems' (using servicehelper)
Nov 12 00:00:04 tk2-xxx-xxxx1 dbus-daemon: dbus[579]: [system] Activating service name='org.freedesktop.problems' (using servicehelper)
Nov 12 00:00:04 tk2-xxx-xxxx1 dbus[579]: [system] Successfully activated service 'org.freedesktop.problems'
Nov 12 00:00:04 tk2-xxx-xxxx1 dbus-daemon: dbus[579]: [system] Successfully activated service 'org.freedesktop.problems'
Nov 12 00:00:04 tk2-xxx-xxxx1 abrt-server: sender の電子メールアドレスが指定されませんでした。今すぐ設定したいですか? 設定しなければ、'user@localhost' が使用されます。 [y/N]
Nov 12 00:00:04 tk2-xxx-xxxx1 abrt-server: receiver の電子メールアドレスが指定されませんでした。今すぐ設定したいですか? 設定しなければ、'root@localhost' が使用されます。 [y/N]
Nov 12 00:00:04 tk2-xxx-xxxx1 abrt-server: 電子メールを送信しています... 
Nov 12 00:00:04 tk2-xxx-xxxx1 abrt-server: 電子メール通知を送信しています: root@localhost
Nov 12 00:00:04 tk2-xxx-xxxx1 abrt-server: /usr/sbin/sendmail: そのようなファイルやディレクトリはありま せん
Nov 12 00:00:04 tk2-xxx-xxxx1 abrt-server: . . . message not sent.
Nov 12 00:00:04 tk2-xxx-xxxx1 abrt-server: Error running '/bin/mailx'

 

 

12時に certbot が実行されているログを確認し、毎週月曜日の 00時00分に cron により「certbot renew」コマンドが実行されていることを思い出しました。

crontab -l コマンドで cron の確認をします。

[root@SAKURA_VPS html]# crontab -l
# 毎週月曜日の0時にcertbot renewコマンドを実行する
00 00 * * 0 certbot renew

[root@SAKURA_VPS html]#

 

 

動作確認のため手動で certbot コマンドを実行してみます。

エラーになります。

[root@SAKURA_VPS html]# certbot
Traceback (most recent call last):
  File "/bin/certbot", line 5, in 
    from pkg_resources import load_entry_point
  File "/usr/lib/python2.7/site-packages/pkg_resources/__init__.py", line 72, in 
    import packaging.requirements
  File "/usr/lib/python2.7/site-packages/packaging/requirements.py", line 59, in 
    MARKER_EXPR = originalTextFor(MARKER_EXPR())("marker")
TypeError: __call__() takes exactly 2 arguments (1 given)

 

 

pipをアップグレードしてみる

stackoverflowのサイトでも同じような現象が発生した書き込みがあったので参考にして pip をアップグレードしてみます。

【参考サイト】

pip is error,TypeError: __call__() takes exactly 2 arguments (1 given)

https://stackoverflow.com/questions/42029545/pip-is-error-typeerror-call-takes-exactly-2-arguments-1-given

[root@SAKURA_VPS html]# python -m pip install --upgrade --force pip
Collecting pip
  Using cached pip-9.0.1-py2.py3-none-any.whl
Installing collected packages: pip
  Found existing installation: pip 9.0.1
    Uninstalling pip-9.0.1:
      Successfully uninstalled pip-9.0.1
Successfully installed pip-9.0.1
[root@SAKURA_VPS html]# pip install setuptools==33.1.1
Collecting setuptools==33.1.1
  Downloading setuptools-33.1.1-py2.py3-none-any.whl (472kB)
    100% |????????????????????????????????| 481kB 2.1MB/s
Installing collected packages: setuptools
  Found existing installation: setuptools 18.2
    Uninstalling setuptools-18.2:
      Successfully uninstalled setuptools-18.2
Successfully installed setuptools-33.1.1

 

 

しかし、現象は変わらずです。

[root@SAKURA_VPS html]# certbot
Traceback (most recent call last):
  File "/bin/certbot", line 5, in 
    from pkg_resources import load_entry_point
  File "/usr/lib/python2.7/site-packages/pkg_resources/__init__.py", line 72, in 
    import packaging.requirements
  File "/usr/lib/python2.7/site-packages/packaging/requirements.py", line 59, in 
    MARKER_EXPR = originalTextFor(MARKER_EXPR())("marker")
TypeError: __call__() takes exactly 2 arguments (1 given)
[root@SAKURA_VPS html]# certbot renew
Traceback (most recent call last):
  File "/bin/certbot", line 5, in 
    from pkg_resources import load_entry_point
  File "/usr/lib/python2.7/site-packages/pkg_resources/__init__.py", line 72, in 
    import packaging.requirements
  File "/usr/lib/python2.7/site-packages/packaging/requirements.py", line 59, in 
    MARKER_EXPR = originalTextFor(MARKER_EXPR())("marker")
TypeError: __call__() takes exactly 2 arguments (1 given)
[root@SAKURA_VPS html]#

 

 

 

 

以下のサイトを参考に対処してみました。

pyparsing を独自にダウンロードしてインストールする方法です。

https://www.isvee.com/archives/1886

[root@SAKURA_VPS ~]# wget https://pypi.python.org/packages/d2/f9/60bebd372903c3ca2e9216086ac375d4991cce6261b186e6cf908ef5d49d/pyparsing-2.0.3.tar.gz#md5=0fe479be09fc2cf005f753d3acc35939
--2017-11-12 23:00:21--  https://pypi.python.org/packages/d2/f9/60bebd372903c3ca2e9216086ac375d4991cce6261b186e6cf908ef5d49d/pyparsing-2.0.3.tar.gz
pypi.python.org (pypi.python.org) をDNSに問いあわせています... 151.101.72.223, 2a04:4e42:11::223
pypi.python.org (pypi.python.org)|151.101.72.223|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 1462653 (1.4M) [application/octet-stream]
`pyparsing-2.0.3.tar.gz' に保存中

100%[========================================================================================>] 1,462,653   --.-K/s 時間 0.1s

2017-11-12 23:00:21 (11.4 MB/s) - `pyparsing-2.0.3.tar.gz' へ保存完了 [1462653/1462653]

[root@SAKURA_VPS ~]# ls
Desktop    Maildir   Public     ai          htaccess_test                         pyparsing-2.0.3.tar.gz
Documents  Music     Templates  backup      le-redirect-www.autotrade.click.conf  python2
Downloads  Pictures  Videos     get-pip.py  pyOpenSSL-0.15.1-1.el7.noarch.rpm     test_python
[root@SAKURA_VPS ~]# tar -xvzf pyparsing-2.0.3.tar.gz
pyparsing-2.0.3/
pyparsing-2.0.3/CHANGES
pyparsing-2.0.3/docs/

 

~ 省略 ~

pyparsing-2.0.3/htmldoc/toc-pyparsing.pyparsing-module.html
pyparsing-2.0.3/htmldoc/toc.html
pyparsing-2.0.3/LICENSE
pyparsing-2.0.3/PKG-INFO
pyparsing-2.0.3/pyparsing.py
pyparsing-2.0.3/pyparsingClassDiagram.JPG
pyparsing-2.0.3/pyparsingClassDiagram.PNG
pyparsing-2.0.3/README
pyparsing-2.0.3/robots.txt
pyparsing-2.0.3/setup.py
[root@SAKURA_VPS ~]# ls
Desktop    Maildir   Public     ai          htaccess_test                         pyparsing-2.0.3         test_python
Documents  Music     Templates  backup      le-redirect-www.autotrade.click.conf  pyparsing-2.0.3.tar.gz
Downloads  Pictures  Videos     get-pip.py  pyOpenSSL-0.15.1-1.el7.noarch.rpm     python2
[root@SAKURA_VPS ~]# cd pyparsing-2.0.3/
[root@SAKURA_VPS pyparsing-2.0.3]# ls
CHANGES                 LICENSE   README  examples  pyparsing.py               pyparsingClassDiagram.PNG  setup.py
HowToUsePyparsing.html  PKG-INFO  docs    htmldoc   pyparsingClassDiagram.JPG  robots.txt
[root@SAKURA_VPS pyparsing-2.0.3]# python setup.py install
running install
running build
running build_py
creating build
creating build/lib
copying pyparsing.py -> build/lib
running install_lib
running install_egg_info
Writing /root/.pyenv/versions/3.5.0/lib/python3.5/site-packages/pyparsing-2.0.3-py3.5.egg-info

 

 

しかし相変わらずエラーが出力されます。

[root@SAKURA_VPS pyparsing-2.0.3]# certbot
Traceback (most recent call last):
  File "/bin/certbot", line 5, in 
    from pkg_resources import load_entry_point
  File "/usr/lib/python2.7/site-packages/pkg_resources/__init__.py", line 72, in 
    import packaging.requirements
  File "/usr/lib/python2.7/site-packages/packaging/requirements.py", line 59, in 
    MARKER_EXPR = originalTextFor(MARKER_EXPR())("marker")
TypeError: __call__() takes exactly 2 arguments (1 given)

 

 

/usr/lib/python2.7/site-packages/packaging/requirements.py を修正

先ほど紹介した stackoverflow の同ページに「requirements.py」ファイルを書き換える方法があったので、これも試してみます。

【参考サイト】

pip is error,TypeError: __call__() takes exactly 2 arguments (1 given)

https://stackoverflow.com/questions/42029545/pip-is-error-typeerror-call-takes-exactly-2-arguments-1-given 

[root@SAKURA_VPS pyparsing-2.0.3]# cp -ip /usr/lib/python2.7/site-packages/packaging/requirements.py /usr/lib/python2.7/site-packages/packaging/requirements.py_20171112 ← いつでも元に戻せるようにバックアップを取得します。
[root@SAKURA_VPS pyparsing-2.0.3]# vi /usr/lib/python2.7/site-packages/packaging/requirements.py

# This file is dual licensed under the terms of the Apache License, Version
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
from __future__ import absolute_import, division, print_function

import string
import re

 

~ 省略 ~

#MARKER_EXPR = originalTextFor(MARKER_EXPR())("marker") ← コメントアウトします。
MARKER_EXPR = originalTextFor(MARKER_EXPR)("marker") ← 追加します。
MARKER_EXPR.setParseAction(
    lambda s, l, t: Marker(s[t._original_start:t._original_end])
)
MARKER_SEPERATOR = SEMICOLON
MARKER = MARKER_SEPERATOR + MARKER_EXPR

[root@SAKURA_VPS pyparsing-2.0.3]#

 

 

ファイルを修正後に certbot コマンドを実行したところ、コマンドを実行することができました。

[root@SAKURA_VPS pyparsing-2.0.3]# certbot
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator apache, Installer apache

Which names would you like to activate HTTPS for?
-------------------------------------------------------------------------------
1: box-cm.com
-------------------------------------------------------------------------------
Select the appropriate numbers separated by commas and/or spaces, or leave input
blank to select all options shown (Enter 'c' to cancel): c
Please specify --domains, or --installer that will help in domain names autodiscovery, or --cert-name for an existing certificate name.
[root@SAKURA_VPS pyparsing-2.0.3]# certbot renew
Saving debug log to /var/log/letsencrypt/letsencrypt.log

-------------------------------------------------------------------------------
Processing /etc/letsencrypt/renewal/www.autotrade.click.conf
-------------------------------------------------------------------------------
Cert not yet due for renewal

-------------------------------------------------------------------------------
Processing /etc/letsencrypt/renewal/box-cm.com.conf
-------------------------------------------------------------------------------
Cert not yet due for renewal

-------------------------------------------------------------------------------

The following certs are not due for renewal yet:
  /etc/letsencrypt/live/www.autotrade.click/fullchain.pem (skipped)
  /etc/letsencrypt/live/box-cm.com/fullchain.pem (skipped)
No renewals were attempted.
-------------------------------------------------------------------------------

 

 

しかし「403 Forbidden」が出力されます。

 

 

 

念のため再度 httpd.service を再起動します。

[root@SAKURA_VPS conf]# systemctl restart httpd.service
[root@SAKURA_VPS conf]# systemctl status httpd.service -l
 httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
   Active: active (running) since 日 2017-11-12 23:43:41 JST; 9s ago
     Docs: man:httpd(8)
           man:apachectl(8)
  Process: 20528 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=0/SUCCESS)
 Main PID: 20538 (httpd)
   Status: "Total requests: 0; Current requests/sec: 0; Current traffic:   0 B/sec"
   CGroup: /system.slice/httpd.service
           tq20538 /usr/sbin/httpd -DFOREGROUND
           tq20539 /usr/sbin/httpd -DFOREGROUND
           tq20540 /usr/sbin/httpd -DFOREGROUND
           tq20541 /usr/sbin/httpd -DFOREGROUND
           tq20542 /usr/sbin/httpd -DFOREGROUND
           mq20543 /usr/sbin/httpd -DFOREGROUND

11月 12 23:43:41 tk2-xxx-xxxx1.vs.sakura.ne.jp systemd[1]: Starting The Apache HTTP Server...
11月 12 23:43:41 tk2-xxx-xxxx1.vs.sakura.ne.jp systemd[1]: Started The Apache HTTP Server.
[root@SAKURA_VPS conf]#

 

 

今度はサイトが表示されました。

 

まとめ

今まで問題なく「Let's Encrypt」は動いていたと思いますが、突然 certbot renew での更新がエラーになりました。

思い当たる節としては、最近「yum update」コマンドでシステム全体をアップデートしたことです。

その結果、設定ファイルが更新され、エラーになったのでしょうか?とすると「Let's Encrypt」のバグなのでしょうか?

 

 

 

 

Posted by 100%レンタルサーバーを使いこなすサイト管理人

コメントを残す

メールアドレスが公開されることはありません。