I've been receiving intermittent errors from MapReduce jobs. I'm running Python 2.7.
The specific error is "BadValueError: name must be under 500 bytes" which is raised when calling datastore.Key.from_path() within blobstore.get_blob_key(); the filename being provided is way too long to make a key from.
This all occurs within the code in the mapreduce package… nothing in my code seems to affect it.
Some of the filenames are 288 bytes long, while some are 992. The M/R spec name and id in each case is nearly the same and is very short; I don't see where this variance comes from.
The sequence of events is this:
mapreduce.output_writers.init_job() creates a reasonable, short filename and passes it to files.blobstore.create()
create() calls files.file._create('blobstore', …, filename)
_create() sets up an rpc with that filename and calls _make_call('Create', ...)
And that call sometimes returns a filename that's 288 bytes, sometimes 992. I have no idea why or how to work around this — any help would be appreciated.
Thanks,
Jamie