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 google-appengine-java@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine-java+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.

Reply via email to