Ticket #5983

CPU ロードアベレージがあがりっぱなし
Open Date: 2005-05-13 13:20 Last Update: 2005-05-16 22:28

Reporter:
Owner:
(None)
Type:
Status:
Closed
Component:
(None)
MileStone:
(None)
Priority:
5 - Medium
Severity:
5 - Medium
Resolution:
None
File:
None

Details

動作中 CPU のロードアベレージがあがりっぱなしの OS があ
るようです.
現象確認がとれているのは MacOS X です.
また,VineLinux でもなっている模様です.

Ticket History (3/8 Histories)

2005-05-13 14:43 Updated by: (del#13001)
Comment
Logged In: YES
user_id=13001

フォーラムの方にも報告しましたが、Vine3.1(i386) では使用する
jreを1.4.2にしたら、CPUのロードアベレージがあがりっぱなしに
なることはありませんでした。
2005-05-13 15:09 Updated by: (del#13001)
Comment
Logged In: YES
user_id=13001

何度も済みませんが情報が正確ではありせんでした。
Vine3.1(i386)での状況ですが、CPUを占有しっぱなしになるのは、
gnome2.4のパネルのランチャーから立ち上げた場合だけでした。
この場合は、jre1.5でも1.4.2でも同じようになります。
gnome-terminalから、
java -jar samurai-graph.jar
とやって立ち上げる場合、jre1.5でも1.4.2でもcpuの占有は起こり
ません。ところが、
java -jar samurai-graph.jar &
とやって、バックグラウンドに回そうとすると、jre1.5でも1.4.2
でも起動が完了せず、スプラッシュの後真っ白なウィンドウが出た
ところで止まってしまいます。
gnome2.4のパネルのランチャーから立ち上げる場合でも、「端末内
で起動する」オプションにチェックを入れておけば、CPUの占有は
起こりません(当り前ですが、ターミナルが意味もなく立ち上がっ
たままになりますが)。
2005-05-13 15:20 Updated by: orrisroot
Comment
Logged In: YES
user_id=8064

確かにバックグラウンドでやるとメインウィンドウを生成・表示す
る途中でどうやらtty入力を促しているようです.

FreeBSD では何も起こらずそのまま処理を中断.
[1] + 中断(tty入力) java -jar samurai-graph.jar

Linux FedoraCore 1 では,
java.io.IOException: Unknown error 512
at java.io.FileInputStream.readBytes(Native Method)
at
java.io.FileInputStream.read(FileInputStream.java:194)
at
java.io.BufferedInputStream.read1(BufferedInputStream.java:220)
at
java.io.BufferedInputStream.read(BufferedInputStream.java:277)
at
sun.nio.cs.StreamDecoder$CharsetSD.readBytes(StreamDecoder.java:408)
at
sun.nio.cs.StreamDecoder$CharsetSD.implRead(StreamDecoder.java:450)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:182)
at
java.io.InputStreamReader.read(InputStreamReader.java:167)
at java.io.BufferedReader.fill(BufferedReader.java:136)
at
java.io.BufferedReader.readLine(BufferedReader.java:299)
at
java.io.BufferedReader.readLine(BufferedReader.java:362)
at
jp.riken.brain.ni.samuraigraph.application.SGDrawingServer$Connect.run(Unknown
Source)
と例外を出しています.

2005-05-13 16:29 Updated by: (del#13001)
Comment
Logged In: YES
user_id=13001

さらに追試しました。
ここまでくると自明かもしれませんが、OSXでも、ターミナルから、
/Library/Java/Home/bin/java -jar /Applications/Samurai\
Graph.app/Contents/Resources/Java/samurai-graph.jar
とやって立ち上げれば、cpuの占有は起こりません(ただし、Aqua
のメニューバーは使われませんが)。
&をつけてバックグラウンドに回そうとすると、メインウィンドウ
が最後まで立ち上がらないのは、他のプラットフォームと同様です。
2005-05-13 18:45 Updated by: orrisroot
Comment
Logged In: YES
user_id=8064

こちらでも MacOS X で同様の現象を確認しました.
どうやらこの問題の根幹は,各OSに共通して GUI アプリのなのに
標準入力(tty)が促されているところにあるようです.
おそらく Windowsでは,標準入出力を必要としない javaw.exe が
うまくやってくれているだけではないかと思います.
2005-05-13 19:07 Updated by: orrisroot
Comment
Logged In: YES
user_id=8064

ソースコードの中で,外部プログラムへのAPI提供のために用意し
つつある命令待ち受けスレッドが標準入力をずっと待っていました.
これが直接の原因のようです.
ちょっと致命的な現象(特にMacOS Xユーザには)ですので,早め
にこれを修正しマイナーアップデートリリースしたいと思います.
2005-05-14 22:25 Updated by: orrisroot
Comment
Logged In: YES
user_id=8064

CVS に修正コードが入りました.
これで MacOS X でも CPU を占有しっぱなしになることがなくな
り,FreeBSD, Linux などでも & をつけたバックグラウンド動作も
OKなことを確認しました.
2005-05-16 22:28 Updated by: orrisroot
  • Ticket Close date is changed to 2005-05-16 22:28
  • Status Update from Open to Closed
Comment
Logged In: YES
user_id=8064

新規バージョンリリースに伴い close します.
必要があれば再オープンしてください.

Attachment File List

No attachments

Edit

You are not logged in. I you are not logged in, your comment will be treated as an anonymous post. » Login