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.

Reply via email to