Hello,

I have an app (citygoround.org) that, especially in the morning, often
has 10-15 minutes of outright downtime due to server errors.

Looking into it, I see that right before the downtime starts, a few
requests log the following warning message:

    > Request was aborted after waiting too long to attempt to service
your request.
    > Most likely, this indicates that you have reached your
simultaneous dynamic request limit.

I'm certainly not over my limit, but I can believe that the request in
question could take a while. (I'll get to the details of that request
in a moment.)

Immediately after these warnings, my app has a large amount of time
(10+ minutes) where *all requests* -- no matter how unthreatening --
raise a DeadlineExceededError. Usually this is raised during the
import of an innocuous module like "re" or "time" or perhaps a Django
1.1 module. (We use use_library.)

My best theory at the moment is that:

1. It's a cold start, so nothing is cached.
2. App Engine encounters the high latency request and bails.
3. We probably inadvertently catch the DeadlineExceededError, so the
runtime doesn't clean up properly.
4. Future requests are left in a busted state.

Does this sound at all reasonable? I see a few related issues (2396,
2266, and 1409) but no firm/completely clear discussion of what's
happening in any of them.

Thanks,
Dave

PS:

The specifics about our high latency request are *not* strictly
relevant to the larger problem I'm having, but I will include them
because I have a second "side" question to ask about it.

The "high latency" request is serving an image. Our app lets users
upload images and we store them in the data store. When serving an
image, our handler:

1. Checks to see if the bytes for the image are in memcache, and if so
returns them immediately.
2. Otherwise grabs the image from the datastore, and if it is smaller
than 64K, adds the bytes to the memcache
3. Returns the result

I'm wondering if using memcache in this way is a smart idea -- it may
very well be the cause of our latency issues. It's hard to tell.

Alternatively, the issue could be: we have a page that shows a large
number (~100) of such images. If someone requests this page, we may
have a lot of simultaneous image-producing requests happening at the
same time. Perhaps _this_ is the root cause of the original "Request
was aborted" issue?

Just not sure here...

--

You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to google-appeng...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.


Reply via email to