From nagaoka.home @ gmail.com Thu Aug 26 02:06:11 2010 From: nagaoka.home @ gmail.com (home nagaoka) Date: Thu, 26 Aug 2010 02:06:11 +0900 Subject: [Pysilhouette-users] =?iso-2022-jp?b?GyRCRVBPPyQ3JD8lOCVnJVYbKEI=?= =?iso-2022-jp?b?GyRCJCw8QjlUJDUkbCRKJCQbKEI=?= Message-ID: お世話になります。ながおかと申します。 pysilhouette を趣味での使用を検討しています。 CentOS-5.5-i386 最小インストール環境 (+追加パッケージ) に、 pysilhouette-0.7.0-1.noarch.rpm をインストールしました。 INSTALL ファイルを参考にコマンドラインからジョブを登録してみたところ、 [CRITICAL] エラーが発生しており正常にジョブが実行されません。 この事象を回避する方法がありましたら、ご教授頂けないでしょうか? エラーが再現した手順は以下となります。 ### ★ CentOS-5.5-i386 最小インストール環境 (+追加パッケージ) の構築 # yum -y upgrade # sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux # yum -y install vim-common vim-enhanced wget ntpd make traceroute tree yum-cron ntp # ntpdata ntp.hde.co.jp # chkconfig --list | grep :on crond 0:off 1:off 2:on 3:on 4:on 5:on 6:off haldaemon 0:off 1:off 2:off 3:on 4:on 5:on 6:off lvm2-monitor 0:off 1:on 2:on 3:on 4:on 5:on 6:off messagebus 0:off 1:off 2:on 3:on 4:on 5:on 6:off network 0:off 1:off 2:on 3:on 4:on 5:on 6:off sshd 0:off 1:off 2:on 3:on 4:on 5:on 6:off syslog 0:off 1:off 2:on 3:on 4:on 5:on 6:off # reboot ### ★ pysilhouette-0.7.0-1.noarch.rpm のインストール # wget 'http://sourceforge.jp/frs/redir.php?m=jaist&f=%2Fpysilhouette%2F48282%2Fpysilhouette-0.7.0-1.noarch.rpm' # rpm -ihv pysilhouette-0.7.0-1.noarch.rpm # touch /var/opt/pysilhouette/pysilhouette.db ### ★ データベースの初期化 (ImportError: No module named pysilhouette.prep) # python /opt/pysilhouette/bin/psil-cleandb --config /etc/opt/pysilhouette/silhouette.conf Traceback (most recent call last): File "/opt/pysilhouette/bin/psil-cleandb", line 35, in ? from pysilhouette.prep import getopts, readconf, chkopts ImportError: No module named pysilhouette.prep ### ★ データベースの初期化 (ImportError: No module named sqlalchemy) # PYTHONPATH=/opt/pysilhouette/lib/python/ python /opt/pysilhouette/bin/psil-cleandb --config /etc/opt/pysilhouette/silhouette.conf Traceback (most recent call last): File "/opt/pysilhouette/bin/psil-cleandb", line 36, in ? from pysilhouette.db import Database, reload_mappers File "/opt/pysilhouette/lib/python/pysilhouette/db/__init__.py", line 33, in ? from sqlalchemy import create_engine, MetaData ImportError: No module named sqlalchemy ### ★ SQLAlchemy-0.6.3 のインストール # yum -y install curl # curl -O http://peak.telecommunity.com/dist/ez_setup.py # python ez_setup.py # easy_install SQLAlchemy # ll /usr/lib/python2.4/site-packages/ | grep SQLAlchemy drwxr-xr-x 4 root root 4096 8月 26 00:56 SQLAlchemy-0.6.3-py2.4.egg ### ★ データベースの初期化 (ImportError: No module named pysqlite2) # PYTHONPATH=/opt/pysilhouette/lib/python/ python /opt/pysilhouette/bin/psil-cleandb --config /etc/opt/pysilhouette/silhouette.conf Initializing a database error Traceback (most recent call last): File "/opt/pysilhouette/bin/psil-cleandb", line 83, in ? sys.exit(main()) File "/opt/pysilhouette/bin/psil-cleandb", line 62, in main echo_pool=True # TODO File "/opt/pysilhouette/lib/python/pysilhouette/db/__init__.py", line 87, in __init__ self.get_engine(*args, **kwargs) File "/opt/pysilhouette/lib/python/pysilhouette/db/__init__.py", line 92, in get_engine self.__engine = create_engine(*args, **kwargs) File "/usr/lib/python2.4/site-packages/SQLAlchemy-0.6.3-py2.4.egg/sqlalchemy/engine/__init__.py", line 244, in create_engine return strategy.create(*args, **kwargs) File "/usr/lib/python2.4/site-packages/SQLAlchemy-0.6.3-py2.4.egg/sqlalchemy/engine/strategies.py", line 60, in create dbapi = dialect_cls.dbapi(**dbapi_args) File "/usr/lib/python2.4/site-packages/SQLAlchemy-0.6.3-py2.4.egg/sqlalchemy/dialects/sqlite/pysqlite.py", line 208, in dbapi raise e ImportError: No module named pysqlite2 ### ★ pysqlite-2.6.0 のインストール # yum -y install gcc python-devel sqlite-devel # easy_install pysqlite # ll /usr/lib/python2.4/site-packages/ | grep pysqlite -rw-r--r-- 1 root root 135954 8月 26 01:03 pysqlite-2.6.0-py2.4-linux-i686.egg ### ★ データベースの初期化 (成功) # PYTHONPATH=/opt/pysilhouette/lib/python/ python /opt/pysilhouette/bin/psil-cleandb --config /etc/opt/pysilhouette/silhouette.conf (中略) Cleanup Database [OK] ### ★ ホワイトリストの設定 # cat < /etc/opt/pysilhouette/whitelist.conf /bin/touch /bin/echo /bin/pwd EOS ### ★ コマンドの登録 (成功) # PYTHONPATH=/opt/pysilhouette/lib/python/ python /opt/pysilhouette/bin/psil-set --config /etc/opt/pysilhouette/silhouette.conf --action "/bin/touch /tmp/test_file" --name=hoge --type=serial 2010-08-26 01:16:37,080 INFO sqlalchemy.engine.base.Engine.0x...cb74 BEGIN 2010-08-26 01:16:37,082 INFO sqlalchemy.engine.base.Engine.0x...cb74 INSERT INTO jobgroup (name, uniq_key, finish_command, type, status, register, created, modified) VALUES (?, ?, ?, ?, ?, ?, datetime(?, ?), datetime(?, ?)) 2010-08-26 01:16:37,082 INFO sqlalchemy.engine.base.Engine.0x...cb74 (u'hoge-0', u'aaaaaaaa-0000-0000-0000-aaaaaaaaaaaa', None, 0, u'101', None, 'now', 'localtime', 'now', 'localtime') 2010-08-26 01:16:37,086 INFO sqlalchemy.engine.base.Engine.0x...cb74 INSERT INTO job (jobgroup_id, name, "order", action_command, rollback_command, status, action_exit_code, action_stdout, action_stderr, rollback_exit_code, rollback_stdout, rollback_stderr, progress, created, modified) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, datetime(?, ?), datetime(?, ?)) 2010-08-26 01:16:37,086 INFO sqlalchemy.engine.base.Engine.0x...cb74 (1, u'hoge-0', 0, u'/bin/touch /tmp/test_file', None, u'101', None, None, None, None, None, None, 0, 'now', 'localtime', 'now', 'localtime') 2010-08-26 01:16:37,087 INFO sqlalchemy.engine.base.Engine.0x...cb74 COMMIT Insert JobGroup and Job. num=1 [OK] ### ★ サービスの起動 # /etc/init.d/silhouetted start Starting silhouetted (Daemon): [ OK ] ### ★ 各種ログファイルの確認 # ll /var/log/pysilhouette 合計 12 -rw-r--r-- 1 root root 2133 8月 26 01:19 application.log -rw-r--r-- 1 root root 0 8月 26 01:19 error.log -rw-r--r-- 1 root root 0 8月 26 01:19 sql.log -rw-rw-rw- 1 root root 1382 8月 26 01:19 stderr.log -rw-rw-rw- 1 root root 1236 8月 26 01:19 stdout.log ### ★ application.log # cat /var/log/pysilhouette/application.log [26/Aug/2010:01:19:11 (JST)] [INFO] [3077] [pysilhouette.silhouette] [100] Daemon Running!! pid=3077 [26/Aug/2010:01:19:11 (JST)] [INFO] [3077] [pysilhouette.observer] [143] performer : [start] - pid=3078, count=5/5 [26/Aug/2010:01:19:11 (JST)] [INFO] [3077] [pysilhouette.observer] [146] scheduler : [start] - pid=3079, count=5/5 [26/Aug/2010:01:19:11 (JST)] [INFO] [3077] [pysilhouette.observer] [150] asynperformer : [start] - pid=3078, count=5/5 [26/Aug/2010:01:19:11 (JST)] [INFO] [3077] [pysilhouette.observer] [154] asynscheduler : [start] - pid=3079, count=5/5 [26/Aug/2010:01:19:12 (JST)] [INFO] [3077] [pysilhouette.observer] [218] 'performer (running) - count=5/5', 'scheduler (running) - count=5/5', 'asynperformer (running) - count=5/5', 'asynscheduler (running) - count=5/5' [26/Aug/2010:01:19:12 (JST)] [INFO] [3078] [pysilhouette.performer] [65] The fifo file was created. - file=/tmp/pysilhouette-performer.fifo [26/Aug/2010:01:19:12 (JST)] [INFO] [3078] [pysilhouette.performer] [78] The process file was created. - file=/var/run/performerd.pid [26/Aug/2010:01:19:12 (JST)] [INFO] [3079] [pysilhouette.scheduler] [78] The process file was created. - file=/var/run/schedulerd.pid [26/Aug/2010:01:19:12 (JST)] [INFO] [3078] [pysilhouette.performer] [56] performer : [started] [26/Aug/2010:01:19:12 (JST)] [INFO] [3079] [pysilhouette.scheduler] [58] scheduler : [started] [26/Aug/2010:01:19:12 (JST)] [INFO] [3079] [pysilhouette.scheduler] [67] Activity Information. - [fifo code=0] [26/Aug/2010:01:19:12 (JST)] [INFO] [3078] [pysilhouette.performer] [69] Activity Information. - [fifo_code=0, type=serial, jobgroup_num=1] [26/Aug/2010:01:19:12 (JST)] [INFO] [3078] [pysilhouette.performer] [77] Failed to perform the job group. Exceptions are not expected. - jobgroup_id=1 : ("'ScopedSession' object has no attribute 'update'",) [26/Aug/2010:01:19:12 (JST)] [CRITICAL] [3078] [pysilhouette.performer] [140] System error has occurred. - ("global name 'logger' is not defined",) [26/Aug/2010:01:19:12 (JST)] [INFO] [3078] [pysilhouette.performer] [150] Process file has been deleted.. - pidfile=/var/run/performerd.pid ### ★ stderr.log # cat /var/log/pysilhouette/stderr.log /usr/lib/python2.4/site-packages/SQLAlchemy-0.6.3-py2.4.egg/sqlalchemy/engine/default.py:495: SAWarning: Unicode type received non-unicode bind param value. param.append(processors[key](compiled_params[key])) Traceback (most recent call last): File "/opt/pysilhouette/lib/python/pysilhouette/performer.py", line 75, in process w.process() File "/opt/pysilhouette/lib/python/pysilhouette/worker.py", line 63, in process jobgroup_update(session, self._m_jg, JOBGROUP_STATUS['RUN']) # JobGroup UPDATE File "/opt/pysilhouette/lib/python/pysilhouette/db/access.py", line 80, in jobgroup_update ret = update(session, m_jg) File "/opt/pysilhouette/lib/python/pysilhouette/db/__init__.py", line 156, in wrapper func(*args, **kwargs) File "/opt/pysilhouette/lib/python/pysilhouette/db/access.py", line 92, in update return session.update(model) AttributeError: 'ScopedSession' object has no attribute 'update' System error has occurred. - ("global name 'logger' is not defined",) Traceback (most recent call last): File "/opt/pysilhouette/lib/python/pysilhouette/performer.py", line 134, in main ret = performer.process() # start!! File "/opt/pysilhouette/lib/python/pysilhouette/performer.py", line 88, in process logger.error('Failed to change the status of the job group. - jobgroup_id=%d : %s' NameError: global name 'logger' is not defined ### ★ stdout.log # cat /var/log/pysilhouette/stdout.log [26/Aug/2010:01:19:12] [ERROR] Traceback (most recent call last): File "/opt/pysilhouette/lib/python/pysilhouette/performer.py", line 75, in process w.process() File "/opt/pysilhouette/lib/python/pysilhouette/worker.py", line 63, in process jobgroup_update(session, self._m_jg, JOBGROUP_STATUS['RUN']) # JobGroup UPDATE File "/opt/pysilhouette/lib/python/pysilhouette/db/access.py", line 80, in jobgroup_update ret = update(session, m_jg) File "/opt/pysilhouette/lib/python/pysilhouette/db/__init__.py", line 156, in wrapper func(*args, **kwargs) File "/opt/pysilhouette/lib/python/pysilhouette/db/access.py", line 92, in update return session.update(model) AttributeError: 'ScopedSession' object has no attribute 'update' [26/Aug/2010:01:19:12] [CRITICAL] global name 'logger' is not defined [26/Aug/2010:01:19:12] [CRITICAL] Traceback (most recent call last): File "/opt/pysilhouette/lib/python/pysilhouette/performer.py", line 134, in main ret = performer.process() # start!! File "/opt/pysilhouette/lib/python/pysilhouette/performer.py", line 88, in process logger.error('Failed to change the status of the job group. - jobgroup_id=%d : %s' NameError: global name 'logger' is not defined なお /etc/opt/pysilhouette/{silhouette.conf,log.conf} には手を加えていません。 他に必要な情報が足りない箇所がありましたら、ご指摘願います。 以上、よろしくお願いいたします。 -- ながおか From kei.topaz @ gmail.com Thu Aug 26 12:29:03 2010 From: kei.topaz @ gmail.com (Kei Funagayama) Date: Thu, 26 Aug 2010 12:29:03 +0900 Subject: [Pysilhouette-users] =?iso-2022-jp?b?UmUgIBskQkVQTz8kNyQ/JTgbKEI=?= =?iso-2022-jp?b?GyRCJWclViQsPEI5VCQ1JGwkSiQkGyhC?= Message-ID: 船ヶ山です。 http://sourceforge.jp/projects/pysilhouette/lists/archive/users/2010-August/000000.html でいただいた情報から、再現させることができかつ原因も判明しました。 [原因] SQLAlchemyが想定していた0.5系ではなく0.6系を利用しているのが原因 [解決方法] SQLAlchemyを0.5系に変更する [修正方法] rm -rf /usr/lib/python2.4/site-packages/SQLAlchemy-0.6.3-py2.4.egg/ # 既存のライブラリを削除 easy_install "SQLAlchemy<0.5.99" # 0.5.99 より低いバージョンをインストール 以上です。よろしくお願いします。 PS. 時間があればSQLAlchemyのバージョンチェックをつけるようにします。 -- Kei Funagayama e-mail : kei.topaz @ gmail.com From nagaoka.home @ gmail.com Sat Aug 28 00:03:42 2010 From: nagaoka.home @ gmail.com (home nagaoka) Date: Sat, 28 Aug 2010 00:03:42 +0900 Subject: [Pysilhouette-users] =?iso-2022-jp?b?UmUgGyRCRVBPPyQ3JD8lOCVnGyhC?= =?iso-2022-jp?b?GyRCJVYkLDxCOVQkNSRsJEokJBsoQg==?= In-Reply-To: References: Message-ID: お世話になります。ながおかです。 ご連絡が遅れ申し訳ございません。 頂いた手順で SQLAlchemy-0.5.8 をインストールしたところ、 登録したジョブの実行が正常にできました。 ありがとうございました! 2010年8月26日12:29 Kei Funagayama : > 船ヶ山です。 > > http://sourceforge.jp/projects/pysilhouette/lists/archive/users/2010-August/000000.html > でいただいた情報から、再現させることができかつ原因も判明しました。 > > [原因] > SQLAlchemyが想定していた0.5系ではなく0.6系を利用しているのが原因 > > [解決方法] > SQLAlchemyを0.5系に変更する > > [修正方法] > rm -rf /usr/lib/python2.4/site-packages/SQLAlchemy-0.6.3-py2.4.egg/ # > 既存のライブラリを削除 > easy_install "SQLAlchemy<0.5.99" # 0.5.99 より低いバージョンをインストール > > 以上です。よろしくお願いします。 > > PS. 時間があればSQLAlchemyのバージョンチェックをつけるようにします。 > > -- > Kei Funagayama > e-mail : kei.topaz @ gmail.com > > _______________________________________________ > Pysilhouette-users mailing list > Pysilhouette-users @ lists.sourceforge.jp > http://lists.sourceforge.jp/mailman/listinfo/pysilhouette-users >