After a rollout including r17979, many package builds in devirtualised PPAs started failing to dispatch as follows:
2016-04-06 18:03:16+0000 [QueryProtocol,client] Traceback (most recent call last):
2016-04-06 18:03:16+0000 [QueryProtocol,client] File "/srv/launchpad.net/codelines/soyuz-production-rev-17989/eggs/Twisted-13.0.0_p2-py2.7-linux-x86_64.egg/twisted/internet/defer.py", line 1213, in unwindGenerator
2016-04-06 18:03:16+0000 [QueryProtocol,client] return _inlineCallbacks(None, gen, Deferred())
2016-04-06 18:03:16+0000 [QueryProtocol,client] File "/srv/launchpad.net/codelines/soyuz-production-rev-17989/eggs/Twisted-13.0.0_p2-py2.7-linux-x86_64.egg/twisted/internet/defer.py", line 1070, in _inlineCallbacks
2016-04-06 18:03:16+0000 [QueryProtocol,client] result = g.send(result)
2016-04-06 18:03:16+0000 [QueryProtocol,client] File "/srv/launchpad.net/codelines/soyuz-production-rev-17989/lib/lp/buildmaster/interactor.py", line 371, in _startBuild
2016-04-06 18:03:16+0000 [QueryProtocol,client] yield behaviour.dispatchBuildToSlave(logger)
2016-04-06 18:03:16+0000 [QueryProtocol,client] File "/srv/launchpad.net/codelines/soyuz-production-rev-17989/eggs/Twisted-13.0.0_p2-py2.7-linux-x86_64.egg/twisted/internet/defer.py", line 1213, in unwindGenerator
2016-04-06 18:03:16+0000 [QueryProtocol,client] return _inlineCallbacks(None, gen, Deferred())
2016-04-06 18:03:16+0000 [QueryProtocol,client] --- <exception caught here> ---
2016-04-06 18:03:16+0000 [QueryProtocol,client] File "/srv/launchpad.net/codelines/soyuz-production-rev-17989/eggs/Twisted-13.0.0_p2-py2.7-linux-x86_64.egg/twisted/internet/defer.py", line 1070, in _inlineCallbacks
2016-04-06 18:03:16+0000 [QueryProtocol,client] result = g.send(result)
2016-04-06 18:03:16+0000 [QueryProtocol,client] File "/srv/launchpad.net/codelines/soyuz-production-rev-17989/lib/lp/buildmaster/model/buildfarmjobbehaviour.py", line 80, in dispatchBuildToSlave
2016-04-06 18:03:16+0000 [QueryProtocol,client] builder_type, das, files, args = yield self.composeBuildRequest(logger)
2016-04-06 18:03:16+0000 [QueryProtocol,client] File "/srv/launchpad.net/codelines/soyuz-production-rev-17989/lib/lp/soyuz/model/binarypackagebuildbehaviour.py", line 87, in composeBuildRequest
2016-04-06 18:03:16+0000 [QueryProtocol,client] self.determineFilesToSend(), self._extraBuildArgs(self.build))
2016-04-06 18:03:16+0000 [QueryProtocol,client] File "/srv/launchpad.net/codelines/soyuz-production-rev-17989/lib/lp/soyuz/model/binarypackagebuildbehaviour.py", line 157, in _extraBuildArgs
2016-04-06 18:03:16+0000 [QueryProtocol,client] build.source_package_release.name)).name
2016-04-06 18:03:16+0000 [QueryProtocol,client] exceptions.AttributeError: 'unicode' object has no attribute 'name'
Similarly, retry-depwait started failing as follows:
Traceback (most recent call last):
File "/srv/launchpad.net/codelines/soyuz-production-rev-17989/lib/lp/services/scripts/base.py", line 103, in log_unhandled_exceptions_func
return func(self, *args, **kw)
File "/srv/launchpad.net/codelines/soyuz-production-rev-17989/lib/lp/services/scripts/base.py", line 371, in lock_and_run
self.run(use_web_security=use_web_security, isolation=isolation)
File "/srv/launchpad.net/codelines/soyuz-production-rev-17989/lib/lp/services/scripts/base.py", line 103, in log_unhandled_exceptions_func
return func(self, *args, **kw)
File "/srv/launchpad.net/codelines/soyuz-production-rev-17989/lib/lp/services/scripts/base.py", line 325, in run
self.main()
File "/srv/launchpad.net/codelines/current/cronscripts/buildd-retry-depwait.py", line 22, in main
updater.run()
File "/srv/launchpad.net/codelines/soyuz-production-rev-17989/lib/lp/services/looptuner.py", line 388, in run
log=self.log).run()
File "/srv/launchpad.net/codelines/soyuz-production-rev-17989/lib/lp/services/looptuner.py", line 170, in run
self.operation(chunk_size)
File "/srv/launchpad.net/codelines/soyuz-production-rev-17989/lib/lp/soyuz/scripts/retrydepwait.py", line 70, in __call__
build.updateDependencies()
File "/srv/launchpad.net/codelines/soyuz-production-rev-17989/lib/lp/soyuz/model/binarypackagebuild.py", line 626, in updateDependencies
if not any(self._isDependencySatisfied(token) for token in or_dep):
File "/srv/launchpad.net/codelines/soyuz-production-rev-17989/lib/lp/soyuz/model/binarypackagebuild.py", line 626, in <genexpr>
if not any(self._isDependencySatisfied(token) for token in or_dep):
File "/srv/launchpad.net/codelines/soyuz-production-rev-17989/lib/lp/soyuz/model/binarypackagebuild.py", line 596, in _isDependencySatisfied
self.source_package_release.sourcepackagename.name, name)
File "/srv/launchpad.net/codelines/soyuz-production-rev-17989/lib/lp/soyuz/model/archive.py", line 1050, in findDepCandidates
self, distro_arch_series, pocket, component, source_package_name)
File "/srv/launchpad.net/codelines/soyuz-production-rev-17989/lib/lp/soyuz/adapters/archivedependencies.py", line 185, in expand_dependencies
archive_component, distro_series, archive_dependency.pocket)
File "/srv/launchpad.net/codelines/soyuz-production-rev-17989/lib/lp/soyuz/adapters/archivedependencies.py", line 121, in get_components_for_context
component_name = component.name
AttributeError: 'unicode' object has no attribute 'name'
2016-04-06 18:25:48 INFO OOPS-d886db0841eaeae734db1bf6391f082c
This is because get_primary_current_component now sometimes returns an IComponent and sometimes a string.
We've rolled back to r17972 to fix the immediate failures.