Skip to content

A transfer hangs when two processes use Data Movement Library #290

@KamilKalitaRel

Description

@KamilKalitaRel

Which service(blob, file) does this issue concern?

Blob (not tested for file)

Which version of the SDK was used?

2.0.4

On which platform were you using? (.Net Framework version or .Net Core version, and OS version)

.NET Core (not tested on .NET Framework)

How can the problem be reproduced? It'd be better if the code caused the problem can be shared.

  1. Create a console app uploading/downloading a big dataset (mine: >20k files, 15GB in total) with the recommended number of ParallelOperations. Sample code: DmLibThinClient.zip
  2. Run two instances of this app simultanously.

What problem was encountered?

  1. After some time, one of the transfers will complete, while the other will hang forever, without any status updates. It stucks on different files.
  2. Resetting the app and running it in separation from other usages of DMLib allows to finish the transfer.
  3. Debugging Data Movement Library showed, that tasks are waiting in the while-loop of FlatDirectoryTransfer.CheckAndPauseEnumeration() and the value of outstandingTasks doesn't change and exceeds MaxTransferConcurrency.

Have you found a mitigation/solution?

No. Also resetting the transfer is not a viable solution for us, as we use DMLib in automated workflows for long-running transfers.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions