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.

Reply via email to