r17979 causes package build dispatch failures in devirtualised PPAs

Bug #1567132 reported by Colin Watson
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Launchpad itself
Fix Released
Critical
Colin Watson

Bug Description

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.

Related branches

Revision history for this message
Colin Watson (cjwatson) wrote :

We've rolled back to r17972 to fix the immediate failures.

Colin Watson (cjwatson)
Changed in launchpad:
status: Triaged → In Progress
Revision history for this message
Launchpad QA Bot (lpqabot) wrote :
tags: added: qa-needstesting
Changed in launchpad:
status: In Progress → Fix Committed
Revision history for this message
William Grant (wgrant) wrote :

Tested primary, PPA, non-virt PPA, ogre PPA, dependent PPA. All good this time.

tags: added: qa-ok
removed: qa-needstesting
Colin Watson (cjwatson)
Changed in launchpad:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.