Hi Per, There is also an issue on our issue tracker: http://code.google.com/p/googleappengine/issues/detail?id=6463 You might want to start it, and we'll likely follow up there.
Yes, it seems a real issue to me as well. I've just started an internal discussion about it. -- Takashi On Wed, Jul 11, 2012 at 5:34 AM, Per <[email protected]> wrote: > > Memcache errors are frequently breaking the sessions-persistence, as there > doesn't seem to be any try-catch in the GAE session handling. This results > in tons of 500 errors for our end users. This seems like fundamental flaw > in the framework to me. > > > Uncaught exception from servlet > com.google.appengine.api.memcache.MemcacheServiceException: Memcache put: > Error setting single item (_ahsvuHmc0fDcNMbpwqBsbrJ4Q) > at > com.google.appengine.api.memcache.AsyncMemcacheServiceImpl$7.transform(AsyncMemcacheServiceImpl.java:426) > at > com.google.appengine.api.memcache.AsyncMemcacheServiceImpl$7.transform(AsyncMemcacheServiceImpl.java:418) > at > com.google.appengine.api.memcache.MemcacheServiceApiHelper$RpcResponseHandler.convertResponse(MemcacheServiceApiHelper.java:60) > at > com.google.appengine.api.memcache.MemcacheServiceApiHelper$1.wrap(MemcacheServiceApiHelper.java:112) > at > com.google.appengine.api.memcache.MemcacheServiceApiHelper$1.wrap(MemcacheServiceApiHelper.java:105) > at > com.google.appengine.api.utils.FutureWrapper.wrapAndCache(FutureWrapper.java:57) > at > com.google.appengine.api.utils.FutureWrapper.get(FutureWrapper.java:98) > 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.put(MemcacheServiceImpl.java:81) > at > com.google.apphosting.runtime.jetty.MemcacheSessionStore.saveSession(MemcacheSessionStore.java:39) > at > com.google.apphosting.runtime.jetty.SessionManager$AppEngineSession.save(SessionManager.java:164) > at > com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter(SaveSessionFilter.java:41) > 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:477) > 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) > > > No matter what causes the Memcache error, the exception should get caught by > the framework. Or there should be a way to catch it from the application > side. I've tried unsuccessfully to apply the LogAndContinue-Errorhandler. > Is there some way to disable memcache for session-handling maybe? Or is it > possible to copy select GAE source code into your own application, applying > your own error-handler some way? I'd do anything to make our application work > again. > > > I've raised a Production Issue, I've reported this in the forum. And other > suggestions? I'd go premium if I had some kind of reassurance that it > wouldn't simply add insult to injury. > > > Application ID is small-improvements. > > Kind regards, > Per > > > -- > You received this message because you are subscribed to the Google Groups > "Google App Engine" group. > To view this discussion on the web visit > https://groups.google.com/d/msg/google-appengine/-/1MFtFmFoTHoJ. > 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?hl=en. > -- Takashi Matsuo -- You received this message because you are subscribed to the Google Groups "Google App Engine" 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?hl=en.
