現在、私はコラボレーション的な開発(開発者が色々違う場所に居る)に携わっており、いろんな場所で働く人たちが居るのでタスクとソースをKanon(trac+Subversion)で管理する事にした。

ところが、チケットを見ようとすると

Error: TypeError: unsupported type for timedelta microseconds component: unicode

なるエラーを吐いてKanonが泣きを入れるようになってしまった。根本的な原因は分からないが、どうもTrac管理者がチケットのコメントを削除した時にこうなるようだ(再現性はランダムでコメントを削除してもこうならない事もある)。

チケット単体もこのチケットがヒットするようなレポートもこのエラーで見れない状況になったのでとりあえず場当たり的な対処をする事にした。

/var/opt/kanon/trac/projectname/db/trac.dbにこのtrac用のデータベースがあるので、この中のチケット関連のデータを見てみると、問題のチケットはticketテーブルのtime列がintegerなのに1970-01-01 00:00:00+00:00とか訳分からんデータが入ってる。これを適当な数字で上書きする事で直った。

KanonというよりかはTrac 0.12.2.ja1の問題だと思われる。まぁこんな値を入れようとしたTracもさることながらintegerなのにこんな値がセットできてしまうsqliteもか。