We are seeing this issue as well - lots of deadline exceeded errors. See
the discussion
at https://groups.google.com/d/topic/google-appengine/nNoWv1uVqwo/discussion
for a list of others that are having the same problem, and star the issue
at code.google.com/p/googleappengine/issues/detail?id=7133 to get
notifications from google (if they ever do anything about it...they don't
seem too eager to fix the issue.)
-Nathan
On Thursday, August 11, 2011 2:28:46 PM UTC-6, Miguel Angel De la Torre
MartÃnez wrote:
>
> Hello I been experiencing a load of problems executing queries in a task
> queue running on a backend.
>
> The log goes like this:
>
> Uncaught exception from servlet
> com.google.apphosting.api.ApiProxy$ApiDeadlineExceededException: The API call
> datastore_v3.RunQuery() took too long to respond and was cancelled.
> at
> com.google.apphosting.runtime.ApiProxyImpl$3.createDeadlineException(ApiProxyImpl.java:277)
> at
> com.google.appengine.tools.development.TimedFuture.get(TimedFuture.java:44)
> at
> com.google.common.util.concurrent.ForwardingFuture.get(ForwardingFuture.java:64)
> at
> com.google.appengine.api.utils.FutureWrapper.get(FutureWrapper.java:67)
> at
> com.google.appengine.api.utils.FutureWrapper.get(FutureWrapper.java:67)
> at
> com.google.appengine.api.datastore.FutureHelper.getInternal(FutureHelper.java:71)
> at
> com.google.appengine.api.datastore.FutureHelper.quietGet(FutureHelper.java:32)
> at
> com.google.appengine.api.datastore.QueryResultsSourceImpl.loadMoreEntities(QueryResultsSourceImpl.java:84)
> at
> com.google.appengine.api.datastore.QueryResultIteratorImpl.ensureLoaded(QueryResultIteratorImpl.java:169)
> at
> com.google.appengine.api.datastore.QueryResultIteratorImpl.nextList(QueryResultIteratorImpl.java:115)
> at
> com.google.appengine.api.datastore.LazyList.forceResolveToIndex(LazyList.java:107)
> at
> com.google.appengine.api.datastore.LazyList.resolveToIndex(LazyList.java:83)
> at
> com.google.appengine.api.datastore.LazyList.resolveToIndex(LazyList.java:65)
> at
> com.google.appengine.api.datastore.LazyList.isEmpty(LazyList.java:296)
> at
> com.google.appengine.api.datastore.PreparedQueryImpl.asSingleEntity(PreparedQueryImpl.java:81)*
> at com.app.server.MyServlet.doGet(MyServlet.java:44)* at
> javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
> at
> org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
> at
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)
> at
> com.google.apphosting.utils.servlet.ParseBlobUploadFilter.doFilter(ParseBlobUploadFilter.java:97)
> at
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
> at
> com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter(SaveSessionFilter.java:35)
> at
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
> at
> com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43)
> at
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
> at
> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
> at
> org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
> at
> org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
> at
> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
> at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
> at
> com.google.apphosting.runtime.jetty.AppVersionHandlerMap.handle(AppVersionHandlerMap.java:249)
> at
> org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
> at org.mortbay.jetty.Server.handle(Server.java:326)
> at
> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
> at
> org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923)
> at
> com.google.apphosting.runtime.jetty.RpcRequestParser.parseAvailable(RpcRequestParser.java:76)
> at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
> at
> com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:135)
> at
> com.google.apphosting.runtime.JavaRuntime.handleRequest(JavaRuntime.java:260)
> at
> com.google.apphosting.base.RuntimePb$EvaluationRuntime$2.handleRequest(RuntimePb.java:9805)
> at com.google.net.rpc.impl.RpcUtil.runRpcInApplication(RpcUtil.java:422)
> at com.google.net.rpc.impl.Server$RpcTask.runInContext(Server.java:579)
> at
> com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:449)
> at com.google.tracing.TraceContext.runInContext(TraceContext.java:689)
> at
> com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:327)
> at
> com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:319)
> at
> com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:447)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
> at java.lang.Thread.run(Thread.java:636)
>
> It points to the place in my app where a do a simple query by key like
> this:
>
> |41| Query qq = new Query("MyPersistentClass");
>
> |42| qq.addFilter("__key__", Query.FilterOperator.EQUAL,
>
> |43| KeyFactory.createKey("MyPersistentClass", "validKey"));
>
> |44| Entity entity = datastore.prepare(qq).asSingleEntity();
>
> The queue configuration in the queue.xml goes like this:
>
> <queue>
>
> <name>default</name>
>
> <target>backend</target>
>
> <rate>500/s</rate>
>
> </queue>
>
> The backend is configured as follows in the backend.xml file:
>
> <backend name="task">
>
> <class>B1</class>
>
> <instances>1</instances>
>
> <options>
>
> <dynamic>true</dynamic>
>
> </options>
>
> </backend>
>
>
> This behavior is across different task queues all running on top of the
> same backend.
> It's also intermittent, the query works as intended for some time and then
> suddenly stops working an then comes back for all the queues at the same
> time.
> While the datastore queries are not working the backend instance shows 0%
> CPU usage but keeps logging messages like the previously mentioned, when I
> see that in the admin console I shut down the backend instance and when it
> turns on again everything seems to work fine at that point.
>
> I hope somebody could help.
>
> Thanks in advance!
>
>
>
>
--
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/-/KW9meBJkkv4J.
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.