microsoft / AzureStorageExplorer

Easily manage the contents of your storage account with Azure Storage Explorer. Upload, download, and manage blobs, files, queues, tables, and Cosmos DB entities. Gain easy access to manage your virtual machine disks. Work with either Azure Resource Manager or classic storage accounts, plus manage and configure cross-origin resource sharing (CORS) rules.
Creative Commons Attribution 4.0 International
365 stars 85 forks source link

The total number of items is inconsistent with the number of items transferred for blob containers/file shares if cancelling the transfer #7970

Open v-xianya opened 1 month ago

v-xianya commented 1 month ago

Storage Explorer Version: 1.35.0-dev (98) Build Number: 20240530.2 Branch: main Platform/OS: Windows 11/Windows 10/Linux Ubuntu 22.04/MacOS Sonoma 14.5(Apple M1 Pro) Architecture: x64/arm64/x64/arm64 How Found: Exploratory testing Regression From: Not a regression

Steps to Reproduce

  1. Expand one storage account -> Blob Containers.
  2. Create a blob container -> Try to upload more than 100 files.
  3. Click 'Cancel' action next to the transfer activity.
  4. After successfully cancelled -> Check the number of transferred items in the activity log.
  5. Run 'Folder Statistics' for the blob explorer.
  6. Check whether the total number of items is consistent with the number of items transferred.

Expected Experience

The total number of items is consistent with the number of items transferred.

Actual Experience

The total number of items is inconsistent with the number of items transferred. image

Additional Context

This issue also reproduces for file shares.

craxal commented 1 month ago

It's very common for cancellation in many apps to take time to fully kick in. The thing about cancelling is it's very possible that it may kick in after a successful transfer occurs but before the job has been able to update its numbers, meaning that a few items snuck out before cancellation could fully stop the process.

@RichardMSFT I would not consider this a high priority. Take a look at the code and see how these jobs are cancelling themselves (if it's like what I described above). If it looks like an easy fix, go for it. If not, you can move to another milestone.