無料で使えるシステムトレードフレームワーク「Jiji」 をリリースしました!

・OANDA Trade APIを利用した、オープンソースのシステムトレードフレームワークです。
・自分だけの取引アルゴリズムで、誰でも、いますぐ、かんたんに、自動取引を開始できます。

TracError: Missing "youngest_rev" in cache metadata

ビルドマシンがディスクエラーでご臨終したため、再インストールする羽目に。

で、tracにアクセスするも、次のようなエラーになってこける。

Traceback (most recent call last):
  File "/usr/lib/python2.4/site-packages/trac/web/main.py", line 406, in dispatch_request
    dispatcher.dispatch(req)
  File "/usr/lib/python2.4/site-packages/trac/web/main.py", line 191, in dispatch
    chosen_handler = self._pre_process_request(req, chosen_handler)
  File "/usr/lib/python2.4/site-packages/trac/web/main.py", line 263, in _pre_process_request
    chosen_handler = f.pre_process_request(req, chosen_handler)
  File "/usr/lib/python2.4/site-packages/trac/versioncontrol/api.py", line 73, in pre_process_request
    self.get_repository(req.authname).sync()
  File "/usr/lib/python2.4/site-packages/trac/versioncontrol/cache.py", line 97, in sync
    raise TracError('Missing "youngest_rev" in cache metadata')
TracError: Missing "youngest_rev" in cache metadata

Googleさんに聞くと以下のサイトがヒット。
TracError: Missing "youngest_rev" in cache metadata
これの回答(→Re: TracError: Missing "youngest_rev" in cache metadata)に従って以下のコマンドを実行すると回復した。

$ sqlite3 <tracのリポジトリ>/db/trac.db "insert into system values ('youngest_rev', '')"

ということで、とりあえず参照はできるようになった。後は、ユーザー認証のやり方とか調べて設定すればtracは終わり(たぶん)。maven-proxyとかいうのとバックアップ環境の構築は明日だな。あー、メンドイ。

追記(2008-05-01)

空のyoungest_revを追加するだけではだめっぽいtracの「browse source」で復旧以降にコミットしたソースを閲覧するとエラー(Internal Error)になる。

このときのtracのログは以下(→tracのログ設定についてはここが参考になる。)

2008-05-01 19:44:49,000 Trac[cache] DEBUG: cache metadata undefined (youngest_rev=u'')
2008-05-01 19:44:49,002 Trac[cache] INFO: repos rev [6815] != cached rev [None]
2008-05-01 19:44:49,056 Trac[main] WARNING: 500 Internal Error (No changeset 6814 in the repository)

例によってGoogleで検索するとこのサイトがヒット。

table system record youngest_rev was empty, after i updated it to 1491 it worked properly. now it is at 1501 - the newest revision in our svn. the 1491 is last rev viewed by trac 0.10, and http://localhost/trac/changeset/1491 works ok.

とのことなので、systemテーブルのyoungest_revに最新のリビジョンを設定し復旧。

$ sqlite3 <tracのリポジトリ>/db/trac.db "update system set 'value'=6814 where name='youngest_rev'"