我在Linux機器上運行Java 6(RHEL 5),我的程序偶爾鎖定了輸入到計算機的內容。沒有鼠標點擊或鍵盤筆畫工作。奇怪的是,鼠標光標可以移動並且CTRL + ALT + F2命令可以工作(儘管它不會顯示終端)。什麼可能導致JVM鎖定機器的鼠標點擊和鍵盤輸入?
使用top
和jvisualvm
我看不到內存泄漏或其他問題。但是,解凍電腦的唯一方法是從另一臺計算機中取出ssh
並殺死java進程。什麼可能是這種行爲的原因?
我可以通過降低內存天花板偶爾重現它。這似乎是僵局可能會在這裏:
"Java2D Disposer" daemon prio=10 tid=0xae7d6800 nid=0x4451 in Object.wait() [0xae6ad000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0xb3253070> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
- locked <0xb3253070> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134)
at sun.java2d.Disposer.run(Disposer.java:127)
at java.lang.Thread.run(Thread.java:662)
*「解凍電腦的唯一方法是從另一臺計算機ssh並殺死java進程」* ...這將是一個相當糟糕的Linux設置; )如果這證明是一個問題,重新編譯一個內含MagicSysRQ的內核(你可能已經擁有了它)。除此之外,它還提供了在低得多的級別攔截擊鍵並殺死進程等的可能性。當你有6個月的正常運行時間和/或不想重新啓動並且無法通過SSH進入時,可以變得方便。 – TacticalCoder 2012-03-23 15:48:00
@GarretHall:如果CTRL + ALT + F2是「有點」工作,我敢肯定,允許殺死你的X服務器的捷徑仍然可以工作。我的觀點是:SSH很可能*不是*解鎖系統的唯一方式; )(+1表示你的問題) – TacticalCoder 2012-03-23 15:49:13