2018-02-03 03:49:38,038 ERROR zuul.DependentPipelineManager: Exception while launching job mediawiki-phpunit-php55-jessie for change <Change 0x7f4308053610 407165,3>: Traceback (most recent call last): File "/usr/share/python/zuul/local/lib/python2.7/site-packages/zuul/scheduler.py", line 1518, in _launchJobs dependent_items) File "/usr/share/python/zuul/local/lib/python2.7/site-packages/zuul/launcher/gearman.py", line 318, in launch destination_path = os.path.join(item.change.getBasePath(), File "/usr/share/python/zuul/local/lib/python2.7/site-packages/zuul/model.py", line 904, in getBasePath self.number[-2:], self.number, self.patchset) TypeError: 'int' object has no attribute '__getitem__' 2018-02-03 03:49:38,038 INFO zuul.Gearman: Launch job mediawiki-core-php70-phan-docker (uuid: d2f0a5b29ea84206a4d17842be5294f1) for change <Change 0x7f4308053610 407165,3> with dependent changes [] 2018-02-03 03:49:38,038 ERROR zuul.DependentPipelineManager: Exception while launching job mediawiki-core-php70-phan-docker for change <Change 0x7f4308053610 407165,3>: Traceback (most recent call last): File "/usr/share/python/zuul/local/lib/python2.7/site-packages/zuul/scheduler.py", line 1518, in _launchJobs dependent_items) File "/usr/share/python/zuul/local/lib/python2.7/site-packages/zuul/launcher/gearman.py", line 318, in launch destination_path = os.path.join(item.change.getBasePath(), File "/usr/share/python/zuul/local/lib/python2.7/site-packages/zuul/model.py", line 904, in getBasePath self.number[-2:], self.number, self.patchset) TypeError: 'int' object has no attribute '__getitem__'
That happens whenever a change having Depends-On enters gate-and-submit. Zuul does a query to Gerrit to find whether the dependent changes are still open, if so Gerrit emits a json payload having "number": 123456 which python consider an int. Zuul then tries to do a string operation ([-2]:]) on the int which causes the TypeError exception.
https://review.openstack.org/#/c/433748/ fixed the general use case code path but has left behind the Depends-On code path.
Workaround
CR+2 the reverse dependencies first and wait for the change to be merged/closed
Then CR+2 the change having dependencies once they got all merged.