While working on a migration tool from Blobstore to Google Cloud Storage, I
was surprised by a series of consistent, frequent InternalError while
fetching from Blobstore. The errors happen after a few attempts to read
from particular byte ranges, but I'm not sure if they are instead a limit
imposed internally to avoid your app to consume resources too fast. I was
unable to find anything from any documentation page describing any limits
in that regard.
The code fetching blobs is the following, failing at some particular byte
ranges, repeatedly (when task retry happen; eventually it works, but
sometimes it don't):
while True:
bytes = blobstore.fetch_data(blob_key, start, start + length-1)
if bytes == "":
break
fetch_count += 1
start += length
write_to_gcs(bytes, gcs_handle)
if fetch_count >= 16: #magic number
reschedule_this_task(gcs_handle, start)
Length here is about 512 * 1024, to stay lower than the max download size
from blobstore. Strange fact is: if I download the same blob, reupload to
another appid, then the code works without any issues.
Anyone had similar erros in the past? Could this be a problem with the
blobstore of the production app?
Kind regards,
--
You received this message because you are subscribed to the Google Groups
"Google App Engine" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/google-appengine.
For more options, visit https://groups.google.com/groups/opt_out.