Describe the bug
Freeze/Delay occurs when uploading blobs to Iot Edge Blob Storage Module.
The delay/freeze is not random, and it happens exactly every 100 blob operations (ie UploadFrom( ), SetMetadata( ), etc) to the IoT Edge Blob Storage module.
This is an example of the delay when uploading blobs to this module.

The delay only occurs when we are using this Azure SDK for CPP to upload to Iot Edge Blob Storage Module, (which is running locally on an Iot Edge device.)
The delay doesnt occur when using the same code to upload to a cloud storage account, or the development azurite container.
The delay doesnt occur when using another storage SDK (tested with python and javascript) to the Iot Edge Blob Storage Module.
Exception or Stack Trace
No errors are thrown when the freeze/delay occurs.
The program just hangs and awaits for the blob operation to complete.
No error information in the logs of the blob storage module.
No error information in the logs of the Iot Edge edgeHub & edgeAgent module.
To Reproduce
Create an Iotedge device and deploy the iotedge blob storage module.
The following parameters were used in the deployment manifest
"modules": {
"local-azure-storage": {
"version": "1.0",
"type": "docker",
"status": "running",
"restartPolicy": "always",
"startupOrder": 1,
"settings": {
"image": "mcr.microsoft.com/azure-blob-storage:1.4.1-linux-amd64",
"createOptions": {
"Env": [
"LOCAL_STORAGE_ACCOUNT_NAME=localstorageacc",
"LOCAL_STORAGE_ACCOUNT_KEY=password"
],
"HostConfig": {
"LogConfig": {
"Type": "json-file",
"Config": {
"max-size": "10m",
"max-file": "3"
}
},
"Binds": [
"/localblob:/blobroot"
],
"PortBindings": {
"11002/tcp": [
{
"HostPort": "11002"
}
]
}
}
}
}
}
}
"local-azure-storage": {
"properties.desired": {
"deviceAutoDeleteProperties": {
"deleteOn": false,
"deleteAfterMinutes": 3600,
"retainWhileUploading": false
},
"deviceToCloudUploadProperties": {
"uploadOn": false,
"uploadOrder": "OldestFirst",
"cloudStorageConnectionString": "",
"storageContainersForUpload": {
}
},
"deleteAfterUpload": true
}
}
},
Code Snippet
int main(int argc, char** argv)
{
std::ifstream t("test_buffstring_createdfromimage.txt");
std::stringstream buffer;
buffer << t.rdbuf();
const std::string connectionString=getenv("LOCAL_CONNECTION_STRING");
//connection string in this case it is "AccountName=localstorageacc;AccountKey=password;BlobEndpoint=http://localhost:11002/localstorageacc"
const std::string containerName=getenv("LOCAL_CONTAINER_NAME");
std::string blobName;
int n=0;
while(1){
blobName=std::to_string(n);
auto start = std::chrono::high_resolution_clock::now();
auto cClient = Azure::Storage::Blobs::BlobContainerClient::CreateFromConnectionString(connectionString, containerName);
auto blobClient = cClient.GetBlockBlobClient(blobName);
blobClient.UploadFrom(reinterpret_cast<const uint8_t*>(buffer.c_str()), buffer.size());
auto finish = std::chrono::high_resolution_clock::now();
std::chrono::duration<double> time_elapsed = finish - start;
std::cout << blobName << ", Elapsed time: " << time_elapsed.count() << " s" << std::endl;
n=n+1;
}
}
Took reference from this sample code https://github.com/Azure/azure-sdk-for-cpp/blob/main/sdk/storage/azure-storage-blobs/sample/blob_getting_started.cpp
Buffer stringstream can be any string. The error still occurs when no matter the blob size.
Expected behavior
A Elapsed time of 4.5 to 5 seconds will be shown every 100 blobs uploaded.
Screenshots

Setup (please complete the following information):
Additional context
A ticket has been raised under TrackingID#2106230060000825
Describe the bug
Freeze/Delay occurs when uploading blobs to Iot Edge Blob Storage Module.
The delay/freeze is not random, and it happens exactly every 100 blob operations (ie UploadFrom( ), SetMetadata( ), etc) to the IoT Edge Blob Storage module.
This is an example of the delay when uploading blobs to this module.

The delay only occurs when we are using this Azure SDK for CPP to upload to Iot Edge Blob Storage Module, (which is running locally on an Iot Edge device.)
The delay doesnt occur when using the same code to upload to a cloud storage account, or the development azurite container.
The delay doesnt occur when using another storage SDK (tested with python and javascript) to the Iot Edge Blob Storage Module.
Exception or Stack Trace
No errors are thrown when the freeze/delay occurs.
The program just hangs and awaits for the blob operation to complete.
No error information in the logs of the blob storage module.
No error information in the logs of the Iot Edge edgeHub & edgeAgent module.
To Reproduce
Create an Iotedge device and deploy the iotedge blob storage module.
The following parameters were used in the deployment manifest
Code Snippet
Took reference from this sample code https://github.com/Azure/azure-sdk-for-cpp/blob/main/sdk/storage/azure-storage-blobs/sample/blob_getting_started.cpp
Buffer stringstream can be any string. The error still occurs when no matter the blob size.
Expected behavior
A Elapsed time of 4.5 to 5 seconds will be shown every 100 blobs uploaded.
Screenshots

Setup (please complete the following information):
https://azure.github.io/azure-sdk-for-cpp/, https://github.com/Azure/azure-sdk-for-cpp
Additional context
A ticket has been raised under TrackingID#2106230060000825