The plugin uses "self._backlogged_routers" class variable to store routers information that need to have CSR1kv VM launched. According to neutron.conf description: api_workers parameter sets “Number of separate worker processes to spawn. A value of 0 runs the worker thread in the current process.” Different python processes (neutron processes) could not read class variables of each other.
If API_WORKERS >1 one neutron process handles router_create event. Other neutron process try to create router VM but it sees nothing in self._backlogged_routers variable.
q-svc.log:
2015-07-29 12:34:26.257 [00;32mDEBUG oslo_concurrency.lockutils [[01;36mreq-c39ab4ae-f898-4ef6-b645-14385952e359 [00;36madmin 7e56df022fbb435093d41252e3db6dc8[00;32m] [01;35m[00;32mLock "routers" acquired by "backlog_router" :: waited 0.000s[00m [00;33mfrom (pid=7314) inner /usr/local/lib/python2.7/dist-packages/oslo_concurrency/lockutils.py:251[00m
2015-07-29 12:34:26.263 [00;36mINFO networking_cisco.plugins.cisco.db.l3.l3_router_appliance_db [[01;36mreq-c39ab4ae-f898-4ef6-b645-14385952e359 [00;36madmin 7e56df022fbb435093d41252e3db6dc8[00;36m] [01;35m[00;36mBacklogging router d7daaec0-8d01-44f4-8786-62dc0c36e271 for renewed scheduling attempt later[00m
2015-07-29 12:34:26.263 [00;36mINFO networking_cisco.plugins.cisco.db.l3.l3_router_appliance_db [[01;36mreq-c39ab4ae-f898-4ef6-b645-14385952e359 [00;36madmin 7e56df022fbb435093d41252e3db6dc8[00;36m] [01;35m[00;36m>>>>>>> self._backlogged_routers: set([u'd7daaec0-8d01-44f4-8786-62dc0c36e271'])[00m
2015-07-29 12:34:26.263 [00;36mINFO networking_cisco.plugins.cisco.db.l3.l3_router_appliance_db [[01;36mreq-c39ab4ae-f898-4ef6-b645-14385952e359 [00;36madmin 7e56df022fbb435093d41252e3db6dc8[00;36m] [01;35m[00;36m>>>>>>> L3RouterApplianceDBMixin._backlogged_routers: set([u'd7daaec0-8d01-44f4-8786-62dc0c36e271'])[00m
2015-07-29 12:34:26.264 [00;36mINFO networking_cisco.plugins.cisco.db.l3.l3_router_appliance_db [[01;36mreq-c39ab4ae-f898-4ef6-b645-14385952e359 [00;36madmin 7e56df022fbb435093d41252e3db6dc8[00;36m] [01;35m[00;36m>>>>>>>> backlog_router id: 139901389768360[00m
2015-07-29 12:34:26.264 [00;32mDEBUG oslo_concurrency.lockutils [[01;36mreq-c39ab4ae-f898-4ef6-b645-14385952e359 [00;36madmin 7e56df022fbb435093d41252e3db6dc8[00;32m] [01;35m[00;32mLock "routers" released by "backlog_router" :: held 0.007s[00m [00;33mfrom (pid=7314) inner /usr/local/lib/python2.7/dist-packages/oslo_concurrency/lockutils.py:262[00m
2015-07-29 12:34:26.264 [00;36mINFO networking_cisco.plugins.cisco.db.l3.l3_router_appliance_db [[01;36mreq-c39ab4ae-f898-4ef6-b645-14385952e359 [00;36madmin 7e56df022fbb435093d41252e3db6dc8[00;36m] [01;35m[00;36m>>>>>>> create_router after self.backlog_router set([u'd7daaec0-8d01-44f4-8786-62dc0c36e271'])[00m
2015-07-29 12:34:28.621 [00;32mDEBUG oslo_concurrency.lockutils [[01;36mreq-f9742c09-ad85-4e72-a46a-c8ff3d7cebc4 [00;36mNone None[00;32m] [01;35m[00;32mLock "routerbacklog" acquired by "_process_backlogged_routers" :: waited 0.000s[00m [00;33mfrom (pid=7298) inner /usr/local/lib/python2.7/dist-packages/oslo_concurrency/lockutils.py:251[00m
2015-07-29 12:34:28.622 [00;36mINFO networking_cisco.plugins.cisco.db.l3.l3_router_appliance_db [[01;36mreq-f9742c09-ad85-4e72-a46a-c8ff3d7cebc4 [00;36mNone None[00;36m] [01;35m[00;36m>>>>>>> _process_backlogged_routers self._backlogged_routers: set([])[00m
2015-07-29 12:34:28.622 [00;36mINFO networking_cisco.plugins.cisco.db.l3.l3_router_appliance_db [[01;36mreq-f9742c09-ad85-4e72-a46a-c8ff3d7cebc4 [00;36mNone None[00;36m] [01;35m[00;36m>>>>>>> _process_backlogged_routers L3RouterApplianceDBMixin._backlogged_routers: set([])[00m
2015-07-29 12:34:28.622 [00;36mINFO networking_cisco.plugins.cisco.db.l3.l3_router_appliance_db [[01;36mreq-f9742c09-ad85-4e72-a46a-c8ff3d7cebc4 [00;36mNone None[00;36m] [01;35m[00;36m>>>>>>> _process_backlogged_routers id: 139901385954984[00m
2015-07-29 12:34:28.623 [00;32mDEBUG oslo_concurrency.lockutils [[01;36mreq-f9742c09-ad85-4e72-a46a-c8ff3d7cebc4 [00;36mNone None[00;32m] [01;35m[00;32mLock "routerbacklog" released by "_process_backlogged_routers" :: held 0.002s[00m [00;33mfrom (pid=7298) inner /usr/local/lib/python2.7/dist-packages/oslo_concurrency/lockutils.py:262[00m