After taking a closer look at the implementation, I found the method throwing the reported exception (MemcacheServiceException): http://www.google.com/codesearch#Qx8E-7HUBTk/trunk/java/src/main/com/google/appengine/api/memcache/AsyncMemcacheServiceImpl.java&l=462
It appears that it doesn't rely on getErrorHandler for routing errors and throws MemcacheServiceException directly. That should be pretty easy to verify using an unittest. Let me know if I missed something. On Thu, Oct 27, 2011 at 2:19 PM, Johan Euphrosine <[email protected]> wrote: > Jeff, you are right the default handler is supposed to handle both > DeserializationError and ServiceError: > http://code.google.com/p/googleappengine/source/browse/trunk/java/src/main/com/google/appengine/api/memcache/LogAndContinueErrorHandler.java > > Jon did you change the default memcache error handler ? > > On Thu, Oct 27, 2011 at 1:37 PM, Jeff Schnitzer <[email protected]> wrote: >> Are you saying that we should not expect the >> MemcacheService.set/getErrorHandler(), with its default value of >> LogAndContinueErrorHandler, to do what it says? I expect memcacheservice to >> fail silently. >> Is it possible that the error handler showed up in 1.5.5? The OP mentioned >> in another thread that he is running on 1.5.4. >> Jeff >> On Wed, Oct 26, 2011 at 5:12 PM, Johan Euphrosine <[email protected]> wrote: >>> >>> Hi Jon, >>> >>> It is important that you have proper exception handling for all your >>> API calls, as there is always a possibility of them failing (otherwise >>> we wouldn't document those methods as throwing an exception). In the >>> catch block you should usually fallback or retry gracefully: for >>> memcache it makes senses to fallback on datastore (more latency, but >>> more reliable). >>> >>> In addition you can use the capabilities API to proactively query if a >>> given API is available, this is described in details by Nick Johnson >>> in the following blog post: >>> >>> http://blog.notdot.net/2010/03/Handling-downtime-The-capabilities-API-and-testing >>> >>> Hope that helps. >>> >>> On Thu, Oct 27, 2011 at 8:28 AM, jon <[email protected]> wrote: >>> > How did you fix/get around this problem? >>> > >>> > It was pointed out to me that the MemcacheService by default should >>> > *NOT* throw any exception, therefore what I was seeing is a bug. >>> > >>> > Can anyone from Google confirm if this is the case? I'm using 1.5.4. >>> > >>> > On Oct 26, 9:32 am, James Broberg <[email protected]> wrote: >>> >> Fair enough. At least you got a memcache exception :) In our case >>> >> performance just deteriorated and eventually it timed out. >>> >> >>> >> On 26 October 2011 00:17, jon <[email protected]> wrote: >>> >> >>> >> >>> >> >>> >> >>> >> >>> >> >>> >> >>> >> > Thanks James for pointing them out. They're not entirely identical in >>> >> > that the symptom is different (i.e. the exception I got is >>> >> > different). >>> >> > However there's a common pattern whereby an app seems to be assigned >>> >> > a >>> >> > memcache "service provider" and if this provider misbehaves the app >>> >> > will be stuck with it instead of getting reassigned a new, healthy >>> >> > replacement. >>> >> >>> >> > On Oct 25, 11:26 pm, James Broberg <[email protected]> wrote: >>> >> >> Sounds familiar: >>> >> >>> >> >>> >> >> >>http://code.google.com/p/googleappengine/issues/detail?id=5790http://... >>> >> >>> >> >> On 25 October 2011 20:16, jon <[email protected]> wrote: >>> >> >>> >> >> > Memcache for our app is back now. >>> >> >>> >> >> > According to the log, memcache write operations started throwing >>> >> >> > com.google.appengine.api.memcache.MemcacheServiceException at >>> >> >> > 17:49 >>> >> >> > (Melbourne >>> >> >> > time) and stopped at 18:56. In other words memcache was >>> >> >> > unavailable >>> >> >> > for over 1 >>> >> >> > hour. >>> >> >>> >> >> > We use memcache heavily, so our site would've been down for that >>> >> >> > long >>> >> >> > if we >>> >> >> > hadn't stepped in to turn off all uses of memcache. >>> >> >>> >> >> > Question for Google: is there an affinity between an app and it's >>> >> >> > memcache >>> >> >> > service provider? How can memcache consistently error out for the >>> >> >> > same >>> >> >> > application for that long? >>> >> >>> >> >> > On Oct 25, 6:29 pm, jon <[email protected]> wrote: >>> >> >> >> Hi, >>> >> >>> >> >> >> Writing to memcache is down for one of our apps, other apps are >>> >> >> >> OK. >>> >> >>> >> >> >> The error message says: >>> >> >> >> java.lang.RuntimeException: >>> >> >> >> com.google.appengine.api.memcache.MemcacheServiceException: >>> >> >> >> Memcache >>> >> >> >> put: Set failed to set 20 keys >>> >> >>> >> >> >> The affected app id: thecrowdvoice >>> >> >>> >> >> >> Could someone from Google urgently take a look please? >>> >> >>> >> >> >> Thanks in advance, >>> >> >> >> Jon >>> >> >>> >> >> > -- >>> >> >> > 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 >>> >> >> > athttp://groups.google.com/group/google-appengine?hl=en. >>> >> >>> >> > -- >>> >> > 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 >>> >> > athttp://groups.google.com/group/google-appengine?hl=en. >>> > >>> > -- >>> > 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. >>> > >>> > >>> >>> >>> >>> -- >>> Johan Euphrosine (proppy) >>> Developer Programs Engineer >>> Google Developer Relations >>> >>> -- >>> 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. >>> >> >> -- >> 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. >> > > > > -- > Johan Euphrosine (proppy) > Developer Programs Engineer > Google Developer Relations > -- Johan Euphrosine (proppy) Developer Programs Engineer Google Developer Relations -- 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.
