That exception is harmless and not related to the timeout issue. What's likely happening is that the delete is happening on a loading request from a cold start. The recommended approach is to break the deletion into smaller tasks and push to the task queue. Can you give that a try?
On Fri, Feb 12, 2010 at 9:58 AM, Ronin <[email protected]> wrote: > hi, > > I'm trying to delete some records. but select fails without any > exception >> Code does not reach deletePersistAll in both the cases. > All I can see is a CPU spike of 9500 cpu_ms. I do see an exception in > try#2. My query expects 400 records & index is created. > > I'm approaching 100% datastore limit. > > Try#1 >> > String filter = "symbol == '"+ symbol +"' && date == '"+ now +"'"; > Query query = persistManager.newQuery("select key from " + > StorableQuote.class); > query.setFilter(filter); > List<Key> results = (List<Key>) query.execute(); > persistManager.deletePersistentAll(results); > > > Try #2 >> > String filter = "symbol == '"+ symbol +"' && date == '"+ now +"'"; > Query query = persistManager.newQuery(StorableQuote.class); > query.setFilter(filter); > List<StorableQuote> results = (List<StorableQuote>) query.execute(); > persistManager.deletePersistentAll(results); > > Exception from logs >> > > com.google.appengine.repackaged.com.google.common.base.FinalizableReferenceQueue > <init>: Failed to start reference finalizer thread. Reference cleanup > will only occur when new references are created. > java.lang.reflect.InvocationTargetException > at > com.google.appengine.runtime.Request.process-835b187cc240a3e2(Request.java) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) > at java.lang.reflect.Method.invoke(Method.java:43) > at > > com.google.appengine.repackaged.com.google.common.base.FinalizableReferenceQueue.<init>(FinalizableReferenceQueue.java: > 127) > at > com.google.appengine.repackaged.com.google.common.collect.Interners > $WeakInterner.<clinit>(Interners.java:118) > at > > com.google.appengine.repackaged.com.google.common.collect.Interners.newWeakInterner(Interners.java: > 59) > at > > com.google.appengine.repackaged.com.google.io.protocol.ProtocolSupport.<clinit>(ProtocolSupport.java: > 55) > at com.google.apphosting.api.DatastorePb > $Query.<init>(DatastorePb.java:1185) > at com.google.apphosting.api.DatastorePb$Query > $1.<init>(DatastorePb.java:2677) > at com.google.apphosting.api.DatastorePb > $Query.<clinit>(DatastorePb.java:2677) > at > > com.google.appengine.api.datastore.QueryTranslator.convertToPb(QueryTranslator.java: > 28) > at > > com.google.appengine.api.datastore.PreparedQueryImpl.convertToPb(PreparedQueryImpl.java: > 151) > at > > com.google.appengine.api.datastore.PreparedQueryImpl.runQuery(PreparedQueryImpl.java: > 111) > at > > com.google.appengine.api.datastore.PreparedQueryImpl.asQueryResultIterator(PreparedQueryImpl.java: > 89) > at com.google.appengine.api.datastore.BasePreparedQuery > $2.iterator(BasePreparedQuery.java:45) > at com.google.appengine.api.datastore.BasePreparedQuery > $2.iterator(BasePreparedQuery.java:42) > at > > org.datanucleus.store.appengine.query.RuntimeExceptionWrappingIterable.iterator(RuntimeExceptionWrappingIterable.java: > 42) > at > org.datanucleus.store.appengine.query.LazyResult.<init>(LazyResult.java: > 67) > at > > org.datanucleus.store.appengine.query.StreamingQueryResult.<init>(StreamingQueryResult.java: > 63) > at > > org.datanucleus.store.appengine.query.DatastoreQuery.newStreamingQueryResultForEntities(DatastoreQuery.java: > 399) > at > > org.datanucleus.store.appengine.query.DatastoreQuery.wrapEntityQueryResult(DatastoreQuery.java: > 372) > at > > org.datanucleus.store.appengine.query.DatastoreQuery.fulfillEntityQuery(DatastoreQuery.java: > 364) > at > > org.datanucleus.store.appengine.query.DatastoreQuery.executeQuery(DatastoreQuery.java: > 265) > at > > org.datanucleus.store.appengine.query.DatastoreQuery.performExecute(DatastoreQuery.java: > 228) > at > > org.datanucleus.store.appengine.query.JDOQLQuery.performExecute(JDOQLQuery.java: > 85) > at org.datanucleus.store.query.Query.executeQuery(Query.java:1489) > at org.datanucleus.store.query.Query.executeWithArray(Query.java: > 1371) > at org.datanucleus.store.query.Query.execute(Query.java:1344) > at org.datanucleus.jdo.JDOQuery.execute(JDOQuery.java:221) > at > com.client.GraphFutureServlet.deleteDBInternal(GraphFutureServlet.java: > 571) > at com.client.GraphFutureServlet.doGet(GraphFutureServlet.java:157) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:693) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:806) > at > org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java: > 487) > at org.mortbay.jetty.servlet.ServletHandler > $CachedChain.doFilter(ServletHandler.java:1093) > at > > com.google.apphosting.utils.servlet.ParseBlobUploadFilter.doFilter(ParseBlobUploadFilter.java: > 97) > at org.mortbay.jetty.servlet.ServletHandler > $CachedChain.doFilter(ServletHandler.java:1084) > at > > com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter(SaveSessionFilter.java: > 35) > at org.mortbay.jetty.servlet.ServletHandler > $CachedChain.doFilter(ServletHandler.java:1084) > at > > com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java: > 43) > at org.mortbay.jetty.servlet.ServletHandler > $CachedChain.doFilter(ServletHandler.java:1084) > at > org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java: > 360) > at > org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java: > 216) > at > org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java: > 181) > at > org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java: > 712) > at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java: > 405) > at > > com.google.apphosting.runtime.jetty.AppVersionHandlerMap.handle(AppVersionHandlerMap.java: > 238) > at > org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java: > 139) > at org.mortbay.jetty.Server.handle(Server.java:313) > at > org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java: > 506) > at org.mortbay.jetty.HttpConnection > $RequestHandler.headerComplete(HttpConnection.java:830) > at > > com.google.apphosting.runtime.jetty.RpcRequestParser.parseAvailable(RpcRequestParser.java: > 76) > at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381) > at > > com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java: > 135) > at > com.google.apphosting.runtime.JavaRuntime.handleRequest(JavaRuntime.java: > 235) > at com.google.apphosting.base.RuntimePb$EvaluationRuntime > $6.handleBlockingRequest(RuntimePb.java:5485) > at com.google.apphosting.base.RuntimePb$EvaluationRuntime > $6.handleBlockingRequest(RuntimePb.java:5483) > at > > com.google.net.rpc.impl.BlockingApplicationHandler.handleRequest(BlockingApplicationHandler.java: > 24) > at com.google.net.rpc.impl.RpcUtil.runRpcInApplication(RpcUtil.java: > 363) > at com.google.net.rpc.impl.Server$2.run(Server.java:837) > at > com.google.tracing.LocalTraceSpanRunnable.run(LocalTraceSpanRunnable.java: > 56) > at > > com.google.tracing.LocalTraceSpanBuilder.internalContinueSpan(LocalTraceSpanBuilder.java: > 536) > at com.google.net.rpc.impl.Server.startRpc(Server.java:792) > at com.google.net.rpc.impl.Server.processRequest(Server.java:367) > at > > com.google.net.rpc.impl.ServerConnection.messageReceived(ServerConnection.java: > 448) > at > com.google.net.rpc.impl.RpcConnection.parseMessages(RpcConnection.java: > 319) > at > com.google.net.rpc.impl.RpcConnection.dataReceived(RpcConnection.java: > 290) > at com.google.net.async.Connection.handleReadEvent(Connection.java: > 474) > at > > com.google.net.async.EventDispatcher.processNetworkEvents(EventDispatcher.java: > 774) > at > com.google.net.async.EventDispatcher.internalLoop(EventDispatcher.java: > 205) > at com.google.net.async.EventDispatcher.loop(EventDispatcher.java: > 101) > at > com.google.net.rpc.RpcService.runUntilServerShutdown(RpcService.java: > 251) > at com.google.apphosting.runtime.JavaRuntime > $RpcRunnable.run(JavaRuntime.java:394) > at java.lang.Thread.run(Unknown Source) > Caused by: java.security.AccessControlException: access denied > (java.lang.RuntimePermission modifyThreadGroup) > at > > java.security.AccessControlContext.checkPermission(AccessControlContext.java: > 355) > at > java.security.AccessController.checkPermission(AccessController.java: > 567) > at java.lang.SecurityManager.checkPermission(Unknown Source) > at java.lang.ThreadGroup.checkAccess(Unknown Source) > at java.lang.Thread.init(Unknown Source) > at java.lang.Thread.<init>(Unknown Source) > at > > com.google.appengine.repackaged.com.google.common.base.internal.Finalizer.<init>(Finalizer.java: > 96) > at > > com.google.appengine.repackaged.com.google.common.base.internal.Finalizer.startFinalizer(Finalizer.java: > 82) > ... 75 more > > -- > You received this message because you are subscribed to the Google Groups > "Google App Engine for Java" group. > To post to this group, send email to > [email protected]. > To unsubscribe from this group, send email to > [email protected]<google-appengine-java%[email protected]> > . > For more options, visit this group at > http://groups.google.com/group/google-appengine-java?hl=en. > > -- Ikai Lan Developer Programs Engineer, Google App Engine http://googleappengine.blogspot.com | http://twitter.com/app_engine -- You received this message because you are subscribed to the Google Groups "Google App Engine for Java" group. 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.
