r17979 causes package build dispatch failures in devirtualised PPAs

Bug #1567132 reported by Colin Watson on 2016-04-06
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Launchpad itself
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

Colin Watson (cjwatson) wrote :

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

Colin Watson (cjwatson) on 2016-04-06
Changed in launchpad:
status: Triaged → In Progress
Launchpad QA Bot (lpqabot) wrote :
tags: added: qa-needstesting
Changed in launchpad:
status: In Progress → Fix Committed
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) on 2016-04-07
Changed in launchpad:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers