views:

49

answers:

1

Recently, i have come across an error (quite frequently) with the RemoteApiServlet as well as the remote_api handler.

While bulk loading large amounts of data using the Bulk Loader, i start seeing random HTTP 500 errors, with the following details (in the log file):

Request was aborted after waiting too long to attempt to service your request.
This may happen sporadically when the App Engine serving cluster is under
unexpectedly high or uneven load. If you see this message frequently, please
contact the App Engine team.

Can someone explain what i might be doing wrong? This errors prevents the Bulk Loader from uploading any data further, and I am having to start all over again.

Related thread in Google App Engine forums is at http://groups.google.com/group/google-appengine-python/browse_thread/thread/bee08a70d9fd89cd

+1  A: 

This isn't specific to remote_api. What's happening is that your app is getting a lot of requests that take a long time to execute, and App Engine will not scale up the number of instances your app runs on if the request latency is too high. As a result, requests are being queued until a handler is available to serve them; if none become available, a 500 is returned and this message is logged.

Simply reduce the rate at which you're bulkloading data, or decrease the batch size so remote_api requests execute faster.

Nick Johnson
Could you elaborate on the threshold for the latency for which App Engine can scale based on the number of requests on a handler ?
Rahul
It's currently around 700 milliseconds wallclock time.
Nick Johnson