C
commie
This problem has me totally perplexed. It's in regards to my CoffeeMud
package, the full source is available on sourceforge or from
coffeemud.zimmers.net if you are interested.
Anyway, I'm getting periodic deadlocked threads, which Java5
brilliantly allows me to do a stacktrace dump on from a "watcher"
thread. Here's a trace dump:
6/8/2006 8:26 PM Debug UtiliDump java.io.PrintWriter:
write(PrintWriter.java: 352)
6/8/2006 8:26 PM Debug UtiliDump java.io.PrintWriter:
write(PrintWriter.java: 371)
6/8/2006 8:26 PM Debug UtiliDump
com.planet_ink.coffee_mud.Common.DefaultSession:
out(DefaultSession.java: 352)
6/8/2006 8:26 PM Debug UtiliDump
com.planet_ink.coffee_mud.Common.DefaultSession:
onlyPrint(DefaultSession.java: 444)
6/8/2006 8:26 PM Debug UtiliDump
com.planet_ink.coffee_mud.Common.DefaultSession:
print(DefaultSession.java: 457)
6/8/2006 8:26 PM Debug UtiliDump
com.planet_ink.coffee_mud.Common.DefaultSession:
showPrompt(DefaultSession.java: 1295)
6/8/2006 8:26 PM Debug UtiliDump
com.planet_ink.coffee_mud.Common.DefaultSession:
run(DefaultSession.java: 1465)
6
In the above case, it was only trying to display the dadgum prompt --
it never came back; the UtiliThread detected the deadlocked thread, and
displayed the stack dump. There were no other competing threads that
also deadlocked at the same time -- this was a loner.
Unfortunately, this happens perhaps once per day among hundreds of
logins, so it's not an easy one to reproduce.
The line in PrintWriter is a synchronize(lock) line, but this suggests
that somehow the lock was never released by a previous call, no?
Any advice is appreciated.
- Bo Zimmerman
package, the full source is available on sourceforge or from
coffeemud.zimmers.net if you are interested.
Anyway, I'm getting periodic deadlocked threads, which Java5
brilliantly allows me to do a stacktrace dump on from a "watcher"
thread. Here's a trace dump:
6/8/2006 8:26 PM Debug UtiliDump java.io.PrintWriter:
write(PrintWriter.java: 352)
6/8/2006 8:26 PM Debug UtiliDump java.io.PrintWriter:
write(PrintWriter.java: 371)
6/8/2006 8:26 PM Debug UtiliDump
com.planet_ink.coffee_mud.Common.DefaultSession:
out(DefaultSession.java: 352)
6/8/2006 8:26 PM Debug UtiliDump
com.planet_ink.coffee_mud.Common.DefaultSession:
onlyPrint(DefaultSession.java: 444)
6/8/2006 8:26 PM Debug UtiliDump
com.planet_ink.coffee_mud.Common.DefaultSession:
print(DefaultSession.java: 457)
6/8/2006 8:26 PM Debug UtiliDump
com.planet_ink.coffee_mud.Common.DefaultSession:
showPrompt(DefaultSession.java: 1295)
6/8/2006 8:26 PM Debug UtiliDump
com.planet_ink.coffee_mud.Common.DefaultSession:
run(DefaultSession.java: 1465)
6
In the above case, it was only trying to display the dadgum prompt --
it never came back; the UtiliThread detected the deadlocked thread, and
displayed the stack dump. There were no other competing threads that
also deadlocked at the same time -- this was a loner.
Unfortunately, this happens perhaps once per day among hundreds of
logins, so it's not an easy one to reproduce.
The line in PrintWriter is a synchronize(lock) line, but this suggests
that somehow the lock was never released by a previous call, no?
Any advice is appreciated.
- Bo Zimmerman