Skip to content

Verbatim JSONL manifest failed to generate #7969

@nadove-ucsc

Description

@nadove-ucsc

On hammerbox, using filters

{
    "source_id": {
        "is": [
            "a23eea3c-e635-4f89-aaf9-610b872dbc9a"
        ]
    },
    "files.is_supplementary": {
        "is": [
            true,
            false
        ]
    }
}

Resulted in

{
      "Code": "ChaliceViewError",
      "Message": "('Failed to generate manifest', 'FAILED', None)"
}

Caused by

{
  "errorMessage": "An error occurred (MalformedXML) when calling the CompleteMultipartUpload operation: The XML you provided was not well-formed or did not validate against our published schema",
  "errorType": "ClientError",
  "requestId": "a55ce9d0-080b-4cd2-91dc-6c7945008dd4",
  "stackTrace": [
    "  File \"/var/task/azul/chalice.py\", line 190, in patched_event_source_handler\n    return old_handler(self_, event, context)\n",
    "  File \"/var/task/chalice/app.py\", line 1761, in __call__\n    return self.handler(event_obj)\n",
    "  File \"/var/task/chalice/app.py\", line 1707, in __call__\n    return self._original_func(event.to_dict(), event.context)\n",
    "  File \"/var/task/azul/service/manifest_controller.py\", line 410, in generate_manifest\n    return self.generate(event)\n",
    "  File \"/var/task/azul/service/manifest_controller.py\", line 682, in generate\n    result = self._service.get_manifest(format=manifest_key.format,\n",
    "  File \"/var/task/azul/service/manifest_service.py\", line 637, in get_manifest\n    return self._generate_manifest(generator, manifest_key, partition)\n",
    "  File \"/var/task/azul/service/manifest_service.py\", line 646, in _generate_manifest\n    partition = generator.write(manifest_key, partition)\n",
    "  File \"/var/task/azul/service/manifest_service.py\", line 1376, in write\n    self.storage.complete_multipart_upload(object_key=object_key,\n",
    "  File \"/var/task/azul/service/storage_service.py\", line 273, in complete_multipart_upload\n    self._handle_overwrite(e, object_key)\n",
    "  File \"/var/task/azul/service/storage_service.py\", line 412, in _handle_overwrite\n    raise exception\n",
    "  File \"/var/task/azul/service/storage_service.py\", line 271, in complete_multipart_upload\n    self._s3.complete_multipart_upload(**request)\n",
    "  File \"/opt/python/botocore/client.py\", line 602, in _api_call\n    return self._make_api_call(operation_name, kwargs)\n",
    "  File \"/opt/python/botocore/context.py\", line 123, in wrapper\n    return func(*args, **kwargs)\n",
    "  File \"/opt/python/botocore/client.py\", line 1078, in _make_api_call\n    raise error_class(parsed_response, operation_name)\n"
  ]
}

I was expecting the manifest to be empty, so I suspect this was caused by trying to complete a multi-part upload with zero parts. That explanation remains speculative.

Metadata

Metadata

Assignees

Labels

demo[process] To be demonstrated at the end of the sprintmanifests[subject] Generation and contents of manifestsspike:2[process] Spike estimate of two points

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions