Dominic Tracey
Dominic Tracey

Reputation: 767

GAE Datastore Admin Backup failing with 404 on mapreduce

I have a Java GAE application with two modules for which I am having problems using the backup/restore Datastore Admin functionality. The tasks get created properly but fail and retry endlessly in the default queue. From the logs of my non-default ("engine") module it looks like it is trying to process them there (rather than in the default module for the app). I also don't have anything explicitly mapping /_ah/mapreduce in my web.xml for either module, which seems to be the symptom being reported. I don't see any documentation suggesting I need to go and manually configure appengine-mapreduce.jar so I haven't gone down that road yet.

0.1.0.2 - - [07/Jan/2015:08:11:19 -0800] "POST /_ah/mapreduce/kickoffjob_callback/15759222115551DD09797 HTTP/1.1" 404 234 "https://ah-builtin-python-bundle-dot-MYAPP.appspot.com/_ah/datastore_admin/backup.do" "AppEngine-Google; (+http://code.google.com/appengine)" "engine.MYAPP.appspot.com" ms=10713 cpu_ms=22 cpm_usd=0.000026 queue_name=default task_name=50337988952552890461 pending_ms=10702 instance=0 app_engine_release=1.9.17 

This did work at one point but I've upgraded quite a bit (moved from backends to modules, moved to HRD, upgraded GAE version to 1.9.2, etc.).

Thanks in advance for any hints or suggestions!

Edit:

So I figured this out. I have two modules in my app (named default and engine). The default task queue is routed to the engine module (formerly a backend) in my queue.xml, rather than ah-builtin-python-bundle.

Adding a new queue in my queue.xml routed to ah-builtin-python-bundle and using that for Datastore Admin fixed the problem.

Upvotes: 2

Views: 220

Answers (1)

Dominic Tracey
Dominic Tracey

Reputation: 767

If you make any changes to the default task queue using queue.xml, in particular the target element, you'll want to create a queue for using the Datastore Admin. Soemthing like:

<queue>
    <name>backup</name>
    <rate>10/s</rate>
    <bucket-size>40</bucket-size>
    <max-concurrent-requests>10</max-concurrent-requests>
    <target>ah-builtin-python-bundle</target>
</queue>

Upvotes: 1

Related Questions