500s from appstats filter

91 views
Skip to first unread message

Carter

unread,
Mar 24, 2012, 12:37:16 PM3/24/12
to google-a...@googlegroups.com
We are getting 500s due to uncaught ApiDeadlineExceededException in the appstats filter for Java.

Is there a way to handle these beyond turning off appstats?

2012-03-24 09:16:49.137
Uncaught exception from servlet
com.google.apphosting.api.ApiProxy$ApiDeadlineExceededException: The API call memcache.Set() took too long to respond and was cancelled.
	at com.google.apphosting.runtime.ApiProxyImpl$3.createDeadlineException(ApiProxyImpl.java:318)
	at com.google.appengine.tools.development.TimedFuture.get(TimedFuture.java:44)
	at com.google.common.util.concurrent.ForwardingFuture.get(ForwardingFuture.java:63)
	at com.google.appengine.tools.appstats.RecordingFuture.get(RecordingFuture.java:99)
	at com.google.appengine.tools.appstats.Recorder.processRecordingFuture(Recorder.java:418)
	at com.google.appengine.tools.appstats.Recorder.processAsyncRpc(Recorder.java:391)
	at com.google.appengine.tools.appstats.RecordingFuture.maybeRecordStats(RecordingFuture.java:131)
	at com.google.appengine.tools.appstats.RecordingFuture.get(RecordingFuture.java:101)
	at com.google.appengine.tools.appstats.RecordingFuture$ExtendedFuture.get(RecordingFuture.java:44)
	at com.google.appengine.api.utils.FutureWrapper.get(FutureWrapper.java:90)
	at com.google.appengine.api.utils.FutureWrapper.get(FutureWrapper.java:90)
	at com.google.appengine.api.memcache.MemcacheServiceImpl.quietGet(MemcacheServiceImpl.java:28)
	at com.google.appengine.api.memcache.MemcacheServiceImpl.putAll(MemcacheServiceImpl.java:112)
	at com.google.appengine.tools.appstats.MemcacheWriter.persist(MemcacheWriter.java:247)
	at com.google.appengine.tools.appstats.MemcacheWriter.commit(MemcacheWriter.java:168)
	at com.google.appengine.tools.appstats.AppstatsFilter.doFilter(AppstatsFilter.java:151)
	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
	at com.google.apphosting.utils.servlet.ParseBlobUploadFilter.doFilter(ParseBlobUploadFilter.java:102)
	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$RequestRunnable.run(JavaRuntime.java:446)
	at com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:449)
	at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:455)
	at com.google.tracing.TraceContext.runInContext(TraceContext.java:695)
	at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:333)
	at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:325)
	at com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:453)
	at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:251)
	at java.lang.Thread.run(Thread.java:679)

Amit Sangani

unread,
Oct 1, 2012, 1:38:16 AM10/1/12
to google-a...@googlegroups.com
We are seeing similar exceptions in our logs when appstats are enabled. Did anyone find a way to resolve this?

Carter

unread,
Nov 30, 2012, 11:44:14 AM11/30/12
to google-a...@googlegroups.com
Any update?

We still get these. For example:
2012-11-29 15:17:08.325
Uncaught exception from servlet
com.google.apphosting.api.ApiProxy$CancelledException: The API call memcache.Set() was explicitly cancelled.
	at com.google.apphosting.runtime.ApiProxyImpl$5.get(ApiProxyImpl.java:367)
	at com.google.apphosting.runtime.ApiProxyImpl$5.get(ApiProxyImpl.java:364)
	at com.google.appengine.tools.appstats.RecordingFuture.get(RecordingFuture.java:108)
	at com.google.appengine.tools.appstats.Recorder.processRecordingFuture(Recorder.java:431)
	at com.google.appengine.tools.appstats.Recorder.processAsyncRpc(Recorder.java:404)
	at com.google.appengine.tools.appstats.RecordingFuture.maybeRecordStats(RecordingFuture.java:140)
	at com.google.appengine.tools.appstats.RecordingFuture.get(RecordingFuture.java:110)
	at com.google.appengine.tools.appstats.RecordingFuture.get(RecordingFuture.java:20)
	at com.google.appengine.api.utils.FutureWrapper.get(FutureWrapper.java:86)
	at com.google.appengine.api.utils.FutureWrapper.get(FutureWrapper.java:86)
	at com.google.appengine.api.memcache.MemcacheServiceImpl.quietGet(MemcacheServiceImpl.java:26)
	at com.google.appengine.api.memcache.MemcacheServiceImpl.putAll(MemcacheServiceImpl.java:110)
	at com.google.appengine.tools.appstats.MemcacheWriter.persist(MemcacheWriter.java:268)
	at com.google.appengine.tools.appstats.MemcacheWriter.commit(MemcacheWriter.java:189)
	at com.google.appengine.tools.appstats.AppstatsFilter.doFilter(AppstatsFilter.java:151)
	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
	at com.google.apphosting.utils.servlet.ParseBlobUploadFilter.doFilter(ParseBlobUploadFilter.java:102)
	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:266)
	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:146)
	at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.run(JavaRuntime.java:447)
	at com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:454)
	at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:461)
	at com.google.tracing.TraceContext.runInContext(TraceContext.java:703)
	at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:338)
	at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:330)
	at com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:458)
	at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:251)
	at java.lang.Thread.run(Thread.java:679)
Reply all
Reply to author
Forward
0 new messages