SVN リポジトリにアクセスすると、Eclipse が固まる。
スポンサーリンク
スレッドを解析したら、Subversion プラグインのスレッドが、あるオブジェクトのロックを保持したまま
WinNTFileSystem#getBooleanAttributes というメソッドを呼び出している所で待たされていて、
そのオブジェクトのロックが解放されるのを待っている Eclipse の main スレッドがブロックされていることが分かった。
しかし、プラグインが何のファイル/ディレクトリにアクセスしようとしているのかまでは分からなかった。
そこでまず、Eclipse の環境設定ダイアログの「チーム」>「SVN」>「パフォーマンス」にある各項目を弄ってみたけど、問題は解決しなかった。
次に、Eclipse プロジェクトがあるフォルダ階層に対するアンチウイルスソフトのオンアクセススキャン機能を無効にしたら、問題は発生しなくなった。
アンチウイルスソフトと Subversion って相性良くないのか。。
参考資料:
- Bug 65135 – Excessive calls to File.isDirectory() cause performance problems (2005/9/26)
- Bug 230461 – Precise Team menu enablements must be disabled by default (2008/5/6)
- Eclipse Community Forums: Subversive » Subversive blocks main application thread (2008/5/13)
- Bug 168389 – 15-63s in WinNTFileSystem.getBooleanAttributes (2009/7/10)
- log4j RollingFileAppender hangs in WinNTFileSystem.getBooleanAttributes - Stack Overflow (2010/8/16)