I switched back to <thread-safe>true</threadsafe> , upgraded to SDK 1.5.2
and for a week the number of deadlocks seems to be greatly reduced.
I do still get deadlocks but now the error reporting is MUCH better. They
normally occur in some Google generated method
com.google.appengine.runtime.Request.process-XXXXXXX.
Often they are due to the class loader accessing the file system
concurrently. There doesn't seem to be anything my code can do to protect
against these. They usually occur while an instance is spinning up - loading
classes etc.
In fact, last night for a period, almost every loading request caused a dead
lock. Not good. Normal loading requests complete in 6 seconds.
Here are a few example stack traces:
com.google.apphosting.runtime.HardDeadlineExceededError: This request
(fa381c78a3815eac) started at 2011/08/24 23:52:33.115 UTC and was still
executing at 2011/08/24 23:53:04.127 UTC.
at
com.google.appengine.runtime.Request.process-fa381c78a3815eac(Request.java)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:139)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
Caused by: com.google.apphosting.runtime.HardDeadlineExceededError: This
request (fd3fb35c7fd41f00) started at 2011/08/25 00:00:41.072 UTC and was still
executing at 2011/08/25 00:01:14.736 UTC.
at
com.google.appengine.runtime.Request.process-fd3fb35c7fd41f00(Request.java)
at java.io.UnixFileSystem.getBooleanAttributes0(Native Method)
at java.io.UnixFileSystem.getBooleanAttributes(UnixFileSystem.java:243)
at java.io.File.exists(File.java:807)
com.google.apphosting.runtime.HardDeadlineExceededError: This request
(c7de12e8c6c87de3) started at 2011/08/25 00:01:17.557 UTC and was still
executing at 2011/08/25 00:01:48.517 UTC.
at
com.google.appengine.runtime.Request.process-c7de12e8c6c87de3(Request.java)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:139)
at java.lang.Class.getGenericSuperclass(Class.java:386)
at
com.google.inject.TypeLiteral.getSuperclassTypeParameter(TypeLiteral.java:97)
at com.google.inject.TypeLiteral.<init>(TypeLiteral.java:77)
Caused by: com.google.apphosting.api.DeadlineExceededException: This request
(5cb100e4cb6e2818) started at 2011/08/25 00:13:55.275 UTC and was still
executing at 2011/08/25 00:14:26.967 UTC.
at
com.google.appengine.runtime.Request.process-5cb100e4cb6e2818(Request.java)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:139)
at java.lang.Class.forName(Class.java:110)
--
You received this message because you are subscribed to the Google Groups
"Google App Engine for Java" group.
To view this discussion on the web visit
https://groups.google.com/d/msg/google-appengine-java/-/TDMIg2gMovwJ.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/google-appengine-java?hl=en.