VMware {code} Community
spicyusername
Contributor
Contributor

TransferError: Error during transfer of ds://...: IO error during transfer of ds://...: Pipe closed

I'm using the vSphere Python SDK to import objects into a Content Library using code roughly like the following:

# https://vmware.github.io/vsphere-automation-sdk-python/vsphere/cloud/com.vmware.content.library.html#com.vmware.content.library.item_client.UpdateSessionModel
content_library_item_update_session_create_spec = {
    'library_item_id': content_library_item_id,
}

# https://vmware.github.io/vsphere-automation-sdk-python/vsphere/cloud/com.vmware.content.library.html#com.vmware.content.library.item_client.UpdateSession.create
content_library_item_update_session_id = api_client.content.library.item.UpdateSession.create(
    client_token=content_library_item_session_token,
    create_spec=content_library_item_update_session_create_spec
)              

# https://vmware.github.io/vsphere-automation-sdk-python/vsphere/cloud/com.vmware.content.library.item.html#com.vmware.content.library.item.updatesession_client.File.AddSpec
content_library_item_add_spec = {
    'name': content_library_item_name,
    'source_type': 'PULL',
    # https://vmware.github.io/vsphere-automation-sdk-python/vsphere/cloud/com.vmware.content.library.html#com.vmware.content.library.item_client.TransferEndpoint
    'source_endpoint': {
        'uri': uri,
        'ssl_certificate_thumbprint': content_library_item_uri_ssl_thumbprint
    }
}

# https://vmware.github.io/vsphere-automation-sdk-python/vsphere/cloud/com.vmware.content.library.item.html#com.vmware.content.library.item.updatesession_client.File.add
content_library_item_file = api_client.content.library.item.updatesession.File.add(
    update_session_id=content_library_item_update_session_id,
    file_spec=content_library_item_add_spec
)

# https://vmware.github.io/vsphere-automation-sdk-python/vsphere/cloud/com.vmware.content.library.html#com.vmware.content.library.item_client.TransferStatus
while content_library_item_file.status in ["TRANSFERRING", "VALIDATING", "WAITING_FOR_TRANSFER"]:
    time.sleep(0.5)
    content_library_item_file = api_client.content.library.item.updatesession.File.get(
        content_library_item_update_session_id, content_library_item_name)

if content_library_item_file.status == "ERROR":
    return None, content_library_item_file.error_message.default_message

# https://vmware.github.io/vsphere-automation-sdk-python/vsphere/cloud/com.vmware.content.library.item.html#com.vmware.content.library.item.updatesession_client.File.validate
content_library_item_validation_result = api_client.content.library.item.updatesession.File.validate(content_library_item_update_session_id)


I'm seeing intermittent errors like the following when using https, ds, or file based uploads. 

2021-12-12T20:57:50.423Z | ERROR    | kx24ujip-16232-auto-ciz-h5:70011225-23 | transferService-pool-6-thread-68 | TransferEndpointImpl           | Session 499114d0-1fcf-444e-b41a-73337f84adbb, Item fedora-coreos-35.20211119.3.0-vmware.x86_64.ova, Endpoint ds:/vmfs/volumes/61a9a63f-4ec2bd96-556e-a8a1599a907d/contentlib-8989912e-c913-47b4-a45c-3cc26b602479/c4b5b882-4625-4870-be85-7c58c0852dad/disk_3d3cb015-6035-4ad4-a0bf-69a35416347d.vmdk: IO error during transfer of ds:/vmfs/volumes/61a9a63f-4ec2bd96-556e-a8a1599a907d/contentlib-8989912e-c913-47b4-a45c-3cc26b602479/c4b5b882-4625-4870-be85-7c58c0852dad/disk_3d3cb015-6035-4ad4-a0bf-69a35416347d.vmdk: Pipe closed
java.io.IOException: Pipe closed
    at java.io.PipedInputStream.checkStateForReceive(PipedInputStream.java:260)
    at java.io.PipedInputStream.receive(PipedInputStream.java:226)
    at java.io.PipedOutputStream.write(PipedOutputStream.java:149)
    at com.vmware.transfer.impl.TransferOutputStream.write(TransferOutputStream.java:55)
    at com.vmware.transfer.impl.TransferItemImpl.transferTarEntry(TransferItemImpl.java:1227)
    at com.vmware.transfer.impl.TransferItemImpl.initiateTargetSequentialStreaming(TransferItemImpl.java:1079)
    at com.vmware.transfer.impl.TransferItemImpl.run(TransferItemImpl.java:606)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
2021-12-12T20:57:50.423Z | ERROR    | kx24ujip-16232-auto-ciz-h5:70011225-23 | transferService-pool-6-thread-68 | TransferItemImpl               | Session 499114d0-1fcf-444e-b41a-73337f84adbb, Item fedora-coreos-35.20211119.3.0-vmware.x86_64.ova: Exception during transfer: Pipe closed
java.io.IOException: Pipe closed
    at java.io.PipedInputStream.checkStateForReceive(PipedInputStream.java:260)
    at java.io.PipedInputStream.receive(PipedInputStream.java:226)
    at java.io.PipedOutputStream.write(PipedOutputStream.java:149)
    at com.vmware.transfer.impl.TransferOutputStream.write(TransferOutputStream.java:55)
    at com.vmware.transfer.impl.TransferItemImpl.transferTarEntry(TransferItemImpl.java:1227)
    at com.vmware.transfer.impl.TransferItemImpl.initiateTargetSequentialStreaming(TransferItemImpl.java:1079)
    at com.vmware.transfer.impl.TransferItemImpl.run(TransferItemImpl.java:606)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
2021-12-12T20:57:50.423Z | ERROR    | kx24ujip-16232-auto-ciz-h5:70011225-23 | transferService-pool-6-thread-68 | TransferItemImpl               | Session 499114d0-1fcf-444e-b41a-73337f84adbb: Exception during transfer: IO error during transfer of ds:/vmfs/volumes/61a9a63f-4ec2bd96-556e-a8a1599a907d/contentlib-8989912e-c913-47b4-a45c-3cc26b602479/c4b5b882-4625-4870-be85-7c58c0852dad/disk_3d3cb015-6035-4ad4-a0bf-69a35416347d.vmdk: Pipe closed

What might I do to mitigate errors like this?

Reply
0 Kudos
0 Replies