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.

Reply via email to