Import boot resources failing to verify keyring

Bug #1322256 reported by Diogo Matsubara
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
MAAS
Fix Released
Critical
Graham Binns

Bug Description

As seen here: http://d-jenkins.ubuntu-ci:8080/view/MAAS/job/trusty-adt-maas-manual/174/artifact/results/artifacts/maas-logs/maas/celery.log, maas fails to import boot resources. This is likely due to changes done in rev 2354 and later since rev 2353 passed that test successfully (see http://d-jenkins.ubuntu-ci:8080/view/MAAS/job/trusty-adt-maas-manual/175/console)

[2014-05-22 11:14:03,330: WARNING/Worker-2] Both a keyring file and keyring data were specified; ignoring the keyring file.
[2014-05-22 11:14:03,332: INFO/Worker-2] Starting new HTTP connection (1): 10.98.3.6
[2014-05-22 11:14:03,339: ERROR/Worker-2] import_boot_images: Command '['gpg', '--batch', '--verify', u'--keyring=/tmp/tmpgBCOa6maas-keyrings/maas.ubuntu.com-images-ephemeral-v2-releases.gpg', '-']' returned non-zero exit status 2
[2014-05-22 11:14:03,341: ERROR/MainProcess] Task provisioningserver.tasks.import_boot_images[1210c9b5-fd08-470c-b1d3-6314d363007b] raised unexpected: CalledProcessError()
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/celery/app/trace.py", line 218, in trace_task
    R = retval = fun(*args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/celery/app/trace.py", line 398, in __protected_call__
    return self.run(*args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/provisioningserver/tasks.py", line 97, in wrapper
    func(*args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/provisioningserver/tasks.py", line 462, in import_boot_images
    boot_resources.import_images(config['boot']['sources'])
  File "/usr/lib/python2.7/dist-packages/provisioningserver/import_images/boot_resources.py", line 229, in import_images
    sources, storage, product_mapping)
  File "/usr/lib/python2.7/dist-packages/provisioningserver/import_images/download_resources.py", line 298, in download_all_boot_resources
    keyring_data=source.get('keyring_data'))
  File "/usr/lib/python2.7/dist-packages/provisioningserver/import_images/download_resources.py", line 242, in download_boot_resources
    writer.sync(reader, rpath)
  File "/usr/lib/python2.7/dist-packages/simplestreams/mirrors/__init__.py", line 82, in sync
    content, payload = reader.read_json(path)
  File "/usr/lib/python2.7/dist-packages/simplestreams/mirrors/__init__.py", line 40, in read_json
    return raw, self.policy(content=raw, path=path)
  File "/usr/lib/python2.7/dist-packages/simplestreams/util.py", line 254, in policy_read_signed
    return read_signed(content=content, keyring=keyring)
  File "/usr/lib/python2.7/dist-packages/simplestreams/util.py", line 271, in read_signed
    raise e
CalledProcessError

Related branches

Changed in maas:
status: New → Incomplete
status: Incomplete → Triaged
importance: Undecided → Critical
Revision history for this message
Raphaël Badin (rvb) wrote :

The main problem seems to be:
[2014-05-22 11:14:03,330: WARNING/Worker-2] Both a keyring file and keyring data were specified; ignoring the keyring file.

I suspect the celery job gets passed both a (valid) keyring_filename and an empty keyring_data and chooses the empty keyring_data. Hence the failure to validate simplestreams' data.

Graham Binns (gmb)
Changed in maas:
status: Triaged → In Progress
assignee: nobody → Graham Binns (gmb)
Changed in maas:
status: In Progress → Fix Committed
milestone: none → 1.6.0
Changed in maas:
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.