チケット #21766

リポジトリブラウザでマージ情報を持ったチェンジセットが表示できない

登録: 2010-05-17 21:06 最終更新: 2010-05-20 21:06

報告者:
担当者:
(未割り当て)
チケットの種類:
状況:
完了
コンポーネント:
マイルストーン:
優先度:
5 - 中
重要度:
9 - 最高
解決法:
なし
ファイル:
なし

詳細

How to Reproduce

While doing a GET operation on /changeset/4/WebProject, Trac issued an internal error.

Request parameters:

{'new': u'4', 'new_path': u'/WebProject'}

User Agent was: Mozilla/5.0 (Windows; U; Windows NT 6.1; ja; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 ( .NET CLR 3.5.30729)

System Information
Trac 0.11.7.ja1
Python 2.5.2 (r252:60911, Feb 21 2008, 13:11:45) v.1310 32 bit (Intel)
setuptools 0.6c9
Genshi 0.5
CustomFieldAdmin 0.2.2.1
SQLite 3.6.13
pysqlite 2.3.2
jQuery: 1.2.6
Python Traceback
Traceback (most recent call last):
  File "c:\traclight\python\lib\site-packages\TraM-0.3-py2.5.egg\tram\main.py", line 280, in dispatch_request
    dispatcher.dispatch(req)
  File "c:\traclight\python\lib\site-packages\Trac-0.11.7.ja1-py2.5.egg\trac\web\main.py", line 206, in dispatch
    resp = chosen_handler.process_request(req)
  File "c:\traclight\python\lib\site-packages\Trac-0.11.7.ja1-py2.5.egg\trac\versioncontrol\web_ui\changeset.py", line 321, in process_request
    self._render_html(req, repos, chgset, restricted, xhr, data)
  File "c:\traclight\python\lib\site-packages\Trac-0.11.7.ja1-py2.5.egg\trac\versioncontrol\web_ui\changeset.py", line 567, in _render_html
    for old_node, new_node, kind, change in get_changes():
  File "c:\traclight\python\lib\site-packages\Trac-0.11.7.ja1-py2.5.egg\trac\versioncontrol\web_ui\changeset.py", line 362, in get_changes
    for npath, kind, change, opath, orev in chgset.get_changes():
  File "c:\traclight\python\lib\site-packages\Trac-0.11.7.ja1-py2.5.egg\trac\versioncontrol\cache.py", line 366, in get_changes
    path.strip('/'))):
  File "c:\traclight\python\lib\site-packages\Trac-0.11.7.ja1-py2.5.egg\trac\versioncontrol\svn_authz.py", line 92, in has_permission
    for perm in self._get_section(self.module_name + ':' + p):
  File "c:\traclight\python\lib\site-packages\Trac-0.11.7.ja1-py2.5.egg\trac\versioncontrol\svn_authz.py", line 146, in _get_section
    yield self._get_permission(section, self.auth_name)
  File "c:\traclight\python\lib\site-packages\Trac-0.11.7.ja1-py2.5.egg\trac\versioncontrol\svn_authz.py", line 162, in _get_permission
    print("authuser:".encode("utf-8")+subject.encode("utf-8"))
AttributeError: 'NoneType' object has no attribute 'encode'

チケットの履歴 (10 件中 3 件表示)

2010-05-17 21:06 更新者: suzz
  • 新しいチケット "リポジトリブラウザでマージ情報を持ったチェンジセットが表示できない" が作成されました
2010-05-17 21:14 更新者: suzz
  • 詳細が更新されました
  • 重要度5 - 中 から 9 - 最高 に更新されました
2010-05-17 22:00 更新者: okamototk
コメント

上記のエラーを発生させるリポジトリの作成手順をよろしければ教えて頂けますか? (できればsvnコマンドをどう打ったかのレベルで)

よろしくお願いいたします。

2010-05-18 10:10 更新者: None
コメント

同件が発生しています。まだ、2.5.0beta2 ですが…
2.5.0beta2を上書きインストールしてから発症しました。上書き前の環境は、2.4.2(+Tram0.2…その他プラグイン幾つか…)。
残念ながら、発症しているチェンジセットは、14ヶ月前のチェンジセットなので、コミット方法は判りません。(私以外コミットしないので、TortoiseSVN使用だとは思いますが…)

ちなみに…こちらでは、一部のブランチをリポジトリブラウザから選択すると類似エラーが発生します。

Traceback (most recent call last):
  File "d:\traclight\python\lib\site-packages\TraM-0.3-py2.5.egg\tram\main.py", line 280, in dispatch_request
    dispatcher.dispatch(req)
  File "d:\traclight\python\lib\site-packages\Trac-0.11.7.ja1-py2.5.egg\trac\web\main.py", line 206, in dispatch
    resp = chosen_handler.process_request(req)
  File "d:\traclight\python\lib\site-packages\Trac-0.11.7.ja1-py2.5.egg\trac\versioncontrol\web_ui\browser.py", line 358, in process_request
    'dir': node.isdir and self._render_dir(req, repos, node, rev),
  File "d:\traclight\python\lib\site-packages\Trac-0.11.7.ja1-py2.5.egg\trac\versioncontrol\web_ui\browser.py", line 404, in _render_dir
    entries = [entry(n) for n in node.get_entries()]
  File "d:\traclight\python\lib\site-packages\Trac-0.11.7.ja1-py2.5.egg\trac\versioncontrol\svn_fs.py", line 711, in get_entries
    path.strip('/'))):
  File "d:\traclight\python\lib\site-packages\Trac-0.11.7.ja1-py2.5.egg\trac\versioncontrol\svn_authz.py", line 92, in has_permission
    for perm in self._get_section(self.module_name + ':' + p):
  File "d:\traclight\python\lib\site-packages\Trac-0.11.7.ja1-py2.5.egg\trac\versioncontrol\svn_authz.py", line 146, in _get_section
    yield self._get_permission(section, self.auth_name)
  File "d:\traclight\python\lib\site-packages\Trac-0.11.7.ja1-py2.5.egg\trac\versioncontrol\svn_authz.py", line 162, in _get_permission
    print("authuser:".encode("utf-8")+subject.encode("utf-8"))
AttributeError: 'NoneType' object has no attribute 'encode'
カレントエントリ及び8ヶ月ほど前に造った同ブランチが幾つか参照できません。(他にもブランチは存在しますが、それらは問題なし)
当方では、問題のブランチをリポジトリブラウザの展開ボタン(三角のあれ)でフォルダ展開して中のフォルダやファイルを選択すれば参照は可能ですので、 緊急性はそれほど高くありませんが、症状としてはかなり重篤な気はします…

2010-05-18 11:20 更新者: okamototk
コメント

ご報告ありがとうございます。2件も報告を頂いているので結構、問題になりそうですね。

ちなみに、ユーザでログインせずにリポジトリにアクセスした際に発生するのでしょうか。 あと、具体的なアクセスしたパス名と、svnauthの内容をよろしければ教えて頂けませんか?

# セキュリティ上、ここに報告するのがまずければ、okamototk at users.sourceforge.jpまで # 直接メールで頂ければと思います。

よろしくお願いします。

2010-05-18 20:51 更新者: okamototk
コメント

TracLightning2.5.0rc2で該当の箇所を修正してみたので、お手数ですがお試し頂けますか?

手元で再現しないので確証が持てないのですが、また不具合があればレポート頂ければ と思います。

よろしくお願いします、

2010-05-19 00:36 更新者: suzz
コメント

以下のようなチェンジセットで不具合現象を再現させました。(コマンドラインでなくて申し訳ない。。。)

TracLightning をインストールしてできる SampleProject のリポジトリに対して、

  1. WebProject/trunk から WebProject/branches/TRY-HOGE にブランチを作成 (Rev.2)
  2. 上記で作成したブランチの SampleClass.java を変更してコミット (Rev.3)
  3. branches/TRY-HOGE の内容を trunk/ マージしてコミット (Rev.4)
  4. Trac のリポジトリブラウザから Rev.4 のチェンジセットを閲覧 (http://localhost/trac/SampleProject/changeset/4/WebProject/trunk)

svnauthz の内容は以下のとおりです。

[groups]

[/]
admin = rw
* = rw
guest = r

[SampleProject:/]
guest = rw

2010-05-19 01:08 更新者: None
コメント

おかもとさん、 2.5.0rc2 で正しく表示できることを確認しました。

2010-05-19 01:12 更新者: suzz
コメント

ログインしてなかった... ちなみに私も職場の運用環境では、該当の print 文を削除して暫定回避しました。

2010-05-20 21:06 更新者: okamototk
  • 状況オープン から 完了 に更新されました
  • チケット完了時刻2010-05-20 21:06 に更新されました

添付ファイルリスト

添付ファイルはありません

編集

このチケットにコメントを追加するには、ログインが必要です » ログインする