Vine Linux バグトラッキングシステム

課題の詳細を表示 コメントにジャンプ ] 課題の履歴 ] 印刷 ]
IDプロジェクトカテゴリ登録日最終更新
0000484Vine Linux1 バグ2007-02-21 19:562007-12-25 23:56
報告者anonymous 
担当者 
優先度再現性不明 
状態完了解決状況不明 
バージョン 
修正予定バージョン修正済バージョン 
概要0000484: fgrepでの日本語検索時の不具合
説明環境はVine4.0(3.2からのバージョンアップ)です。PCはNEC Lavie M LM60H/7。
テストにVine3.2のIBM Thinkpad i1620も使用しています。

Vine4.0のfgrepコマンドで
  $ echo a | fgrep -i "あ"
のように"-i"オプションをつけて日本語で検索しようとすると処理が固まってしまいます。Vine3.2では問題なく処理できます。システムの文字コードはja_JP.eucJPですが、これも関連しているように思われます。

この問題により、howmにおいて.emacs.my.elに以下のように検索にgrepを使用する設定して検索すると処理が固まってしまい、検索できなくなります。
  (setq howm-view-use-grep t)
  (setq howm-view-grep-command "grep")
  (setq howm-view-fgrep-command "grep")
  (setq howm-view-grep-extended-option "-E")
  (setq howm-view-grep-fixed-option "-F")
現時点ではhowmの作者さんに応急的な対策をとってもらっており、howmでは検索できるようになっています。
http://howm.sourceforge.jp/cgi-bin/hiki/hiki.cgi?BugReportPaste [^]
タグ設定されていません。
archx86
パッケージgrep-2.5.1-50vl2, howm
添付ファイルpatch file icon grep-2.5.1-egf-non-utf8-null-break.patch [^] (348 バイト) 2007-03-19 22:14 [表示]

- 関連

-  コメント
(0002428)
anonymous (参照)
2007-03-19 22:14

> Vine4.0のfgrepコマンドで
> $ echo a | fgrep -i "あ"
> のように"-i"オプションをつけて日本語で検索しようとすると処理が固まってし
> まいます。Vine3.2では問題なく処理できます。システムの文字コードは
> ja_JP.eucJPですが、これも関連しているように思われます。
>

M.Hと申します。

echo AあA | grep -F -i あ
で試してみたんですが、確かに無限ループしてますね。
echo AあA | grep -F -i aあ
とか
echo AあA | grep -F -i あa
だと正常終了するのが奇妙です。

ja_JP.eucJPロケールな環境で、grepのオプションに-Fと-iを指定して、
検索文字列が全部マルチバイト文字だと無限ループするみたいです。
検索文字列が全部マルチバイト文字の時は、-iオプションを指定しない
ようにするのが現実的な解のような気もします。

ソースをのぞいてみたんですが、Fedoraのパッチが激しく当たっていて、
gdbでガラゴロ回してみても絶望的な雰囲気…
無限ループの原因は、grep-2.5.1-egf-speedup.patchのせいだと思います。
しかし、どこをどう修正すればいいのかが?????

とりあえず勘で、Fexecute関数の中のmbrlenの戻り値を
チェックしていないところにbreakを入れてみました。
手元の環境では特に問題は無さそうなんですが、
正直、副作用の方が心配です。
パッチを添付しますので、試してみたい方は試してみてください。
grep-2.5.1-50vl2.src.rpmへの追加パッチです。ではでは。
(0002429)
daisuke (管理者)
2007-11-13 03:30

> とりあえず勘で、Fexecute関数の中のmbrlenの戻り値を
> チェックしていないところにbreakを入れてみました。
> 手元の環境では特に問題は無さそうなんですが、
> 正直、副作用の方が心配です。
> パッチを添付しますので、試してみたい方は試してみてください。
> grep-2.5.1-50vl2.src.rpmへの追加パッチです。ではでは。

遅くなりましたが、
VineSeed: grep-2.5.1-57vl1
Vine-4.x: grep-2.5.1-57vl0.1
でM.Hさんのパッチを適用しました。

4.x 向けは 4.2 test repo に入れておきますが、errata も
出すかもしれません。
(0002430)
kazutaka (開発者)
2007-12-25 23:56

> 4.x 向けは 4.2 test repo に入れておきますが、errata も
> 出すかもしれません。

4.2 で対応されたので完了とします。

ハラダ

- 課題の履歴
変更日 ユーザー名 項目 変更内容
2007-02-21 19:56 anonymous 新規課題
2007-03-19 22:14 anonymous 添付ファイル追加: grep-2.5.1-egf-non-utf8-null-break.patch
2007-03-19 22:14 anonymous コメント追加: 0002428
2007-11-13 03:30 daisuke バージョン 4.0 => 4.0,4.1,VineSeed
2007-11-13 03:30 daisuke 状態 新規 => テスト待ち
2007-11-13 03:30 daisuke コメント追加: 0002429
2007-12-25 23:56 kazutaka 状態 テスト待ち => 完了
2007-12-25 23:56 kazutaka コメント追加: 0002430


Copyright © 2000 - 2024 MantisBT Team
Copyright © 2012 - 2024 Project Vine
Powered by Mantis Bugtracker