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.

Reply via email to