Issue #3904
closedCan't upload manifest list to Docker repository
Description
It's impossible to upload a manifest to a Docker repository. This is a regression. Attempting to do triggers an error in Pulp. No errors are logged (according to journalctl). Here's the only interesting journal output I could find:
Aug 06 16:46:32 fedora-27-pulp-2-17-nightly pulp[1208]: celery.worker.strategy:INFO: Received task: pulp.server.managers.content.upload.import_uploaded_unit[daaedf02-3573-41c4-95bd-0035d8a05037]
Aug 06 16:46:32 fedora-27-pulp-2-17-nightly pulp[1315]: celery.app.trace:INFO: [034f7848] Task pulp.server.async.tasks._queue_reserved_task[034f7848-ab90-4ac5-964f-ca4566ba148a] succeeded in 0.0262270519997s: None
Aug 06 16:46:32 fedora-27-pulp-2-17-nightly pulp[1321]: pulp.server.async.tasks:INFO: [daaedf02] Task failed : [daaedf02-3573-41c4-95bd-0035d8a05037] : The importer docker_importer indicated a failed response when uploading docker_manifest_list unit to repository f93cc7df-3f53-4fc6-9ad3-df53c5079748.
Here's the error returned by Pulp:
{'_href': '/pulp/api/v2/tasks/daaedf02-3573-41c4-95bd-0035d8a05037/',
'_id': {'$oid': '5b68b3a811b6e4e34b496802'},
'_ns': 'task_status',
'error': {'code': 'PLP0047',
'data': {'details': {},
'importer_id': 'docker_importer',
'repo_id': 'f93cc7df-3f53-4fc6-9ad3-df53c5079748',
'summary': "unhashable type: 'EmbeddedManifest'",
'unit_type': 'docker_manifest_list'},
'description': 'The importer docker_importer indicated a failed '
'response when uploading docker_manifest_list unit '
'to repository f93cc7df-3f53-4fc6-9ad3-df53c5079748.',
'sub_errors': []},
'exception': None,
'finish_time': '2018-08-06T20:46:32Z',
'id': '5b68b3a811b6e4e34b496802',
'progress_report': {},
'queue': 'reserved_resource_worker-0@fedora-27-pulp-2-17-nightly.dq2',
'result': None,
'spawned_tasks': [],
'start_time': '2018-08-06T20:46:32Z',
'state': 'error',
'tags': ['pulp:repository:f93cc7df-3f53-4fc6-9ad3-df53c5079748',
'pulp:action:import_upload'],
'task_id': 'daaedf02-3573-41c4-95bd-0035d8a05037',
'task_type': 'pulp.server.managers.content.upload.import_uploaded_unit',
'traceback': SNIP!
'worker_name': 'reserved_resource_worker-0@fedora-27-pulp-2-17-nightly'}
Here's the formatted traceback:
Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/celery/app/trace.py", line 367, in trace_task
R = retval = fun(*args, **kwargs)
File "/usr/lib/python2.7/site-packages/pulp/server/async/tasks.py", line 529, in __call__
return super(Task, self).__call__(*args, **kwargs)
File "/usr/lib/python2.7/site-packages/pulp/server/async/tasks.py", line 107, in __call__
return super(PulpTask, self).__call__(*args, **kwargs)
File "/usr/lib/python2.7/site-packages/celery/app/trace.py", line 622, in __protected_call__
return self.run(*args, **kwargs)
File "/usr/lib/python2.7/site-packages/pulp/server/managers/content/upload.py", line 223, in import_uploaded_unit
unit_type=unit_type_id, summary=result['summary'], details=result['details']
PulpCodedException: The importer docker_importer indicated a failed response when uploading docker_manifest_list unit to repository f93cc7df-3f53-4fc6-9ad3-df53c5079748.
This error occurs with the nightly build of Pulp 2 (to-be 2.17) on both RHEL 7 and Fedora 27. Here's some sample RPMs:
[root@fedora-27-pulp-2-17-nightly ~]# rpm -qa | grep -i 'pulp\|docker' | sort
pulp-admin-client-2.17.0-0.1.alpha.201808060500git0697ade.fc27.noarch
pulp-deb-admin-extensions-1.8.0-0.1.alpha.201808060515git4df9825.fc27.noarch
pulp-deb-plugins-1.8.0-0.1.alpha.201808060515git4df9825.fc27.noarch
pulp-docker-admin-extensions-3.2.0-0.1.alpha.201808060507gitfd8d4e7.fc27.noarch
pulp-docker-plugins-3.2.0-0.1.alpha.201808060507gitfd8d4e7.fc27.noarch
pulp-ostree-admin-extensions-1.4.0-0.1.alpha.201808060508git2c2d534.fc27.noarch
pulp-ostree-plugins-1.4.0-0.1.alpha.201808060508git2c2d534.fc27.noarch
pulp-puppet-admin-extensions-2.17.0-0.1.alpha.201808060510git44a02f8.fc27.noarch
pulp-puppet-plugins-2.17.0-0.1.alpha.201808060510git44a02f8.fc27.noarch
pulp-puppet-tools-2.17.0-0.1.alpha.201808060510git44a02f8.fc27.noarch
pulp-python-admin-extensions-2.1.0-0.1.alpha.201808060514git5e2aa35.fc27.noarch
pulp-python-plugins-2.1.0-0.1.alpha.201808060514git5e2aa35.fc27.noarch
pulp-rpm-admin-extensions-2.17.0-0.1.alpha.201808060504git421caf4.fc27.noarch
pulp-rpm-plugins-2.17.0-0.1.alpha.201808060504git421caf4.fc27.noarch
pulp-selinux-2.17.0-0.1.alpha.201808060500git0697ade.fc27.noarch
pulp-server-2.17.0-0.1.alpha.201808060500git0697ade.fc27.noarch
python-pulp-bindings-2.17.0-0.1.alpha.201808060500git0697ade.fc27.noarch
python-pulp-client-lib-2.17.0-0.1.alpha.201808060500git0697ade.fc27.noarch
python-pulp-common-2.17.0-0.1.alpha.201808060500git0697ade.fc27.noarch
python-pulp-deb-common-1.8.0-0.1.alpha.201808060515git4df9825.fc27.noarch
python-pulp-docker-common-3.2.0-0.1.alpha.201808060507gitfd8d4e7.fc27.noarch
python-pulp-oid_validation-2.17.0-0.1.alpha.201808060500git0697ade.fc27.noarch
python-pulp-ostree-common-1.4.0-0.1.alpha.201808060508git2c2d534.fc27.noarch
python-pulp-puppet-common-2.17.0-0.1.alpha.201808060510git44a02f8.fc27.noarch
python-pulp-python-common-2.1.0-0.1.alpha.201808060514git5e2aa35.fc27.noarch
python-pulp-repoauth-2.17.0-0.1.alpha.201808060500git0697ade.fc27.noarch
python-pulp-rpm-common-2.17.0-0.1.alpha.201808060504git421caf4.fc27.noarch
python-pulp-streamer-2.17.0-0.1.alpha.201808060500git0697ade.fc27.noarch
The easiest way to reproduce this issue is to run the automated test in Pulp 2 Tests: python -m unittest pulp_2_tests.tests.docker.api_v2.test_upload.UploadManifestListV2TestCase
. The error occurs when this line of code is executing, inside test_02_copy_manifest_lists
:
upload_import_unit(
self.cfg,
json.dumps(modified_manifest_list).encode('utf-8'),
{'unit_type_id': 'docker_manifest_list'},
repo,
)
This issue is similar to: https://pulp.plan.io/issues/3892
Related issues
Updated by Ichimonji10 over 6 years ago
- Copied from Issue #3892: Can't copy Docker tags or manifest lists between repositories added
Updated by daviddavis over 6 years ago
- Project changed from Crane to Docker Support
- Status changed from MODIFIED to NEW
- Assignee deleted (
bizhang)
Unsetting fields set by copy.
Updated by bizhang over 6 years ago
- Status changed from NEW to POST
- Assignee set to bizhang
Added by werwty over 6 years ago
Added by werwty over 6 years ago
Revision e95dd9a3 | View on GitHub
Fix upload issue with embeddedmanifests
Updated by werwty over 6 years ago
- Status changed from POST to MODIFIED
Applied in changeset e95dd9a3b31ee35093a2e42ce7dc9e7839ea1d95.
Updated by ipanova@redhat.com over 6 years ago
- Platform Release changed from 2.17.0 to master
Updated by ipanova@redhat.com over 6 years ago
- Platform Release deleted (
master)
Updated by ipanova@redhat.com over 6 years ago
- Status changed from MODIFIED to 5
Updated by ipanova@redhat.com over 6 years ago
- Status changed from 5 to CLOSED - CURRENTRELEASE
Fix upload issue with embeddedmanifests
closes #3904 https://pulp.plan.io/issues/3904