Azure / Azure/durabletask

DurableTaskStorageException: Value for one of the query parameters specified in the request URI is invalid

Đang mở
#809 9 bình luận 0 reaction 0 người được giao Xem trên GitHub
Ngôn ngữ chính
C#
Star
1.7k
Fork
335
Merge trung bình
2 ngày 23 giờ
Pull request đã merge (30 ngày)
6

Mô tả

We are running in an issue with DTFx. Sometimes (and only in one region where our service is running - WestEurope), when enqueuing a queue message to start an orchestration, the queueing fails because of a bad parameter in the query string.

Sample query:
https://mystorage.queue.core.windows.net:443/devcenterjobs-control-00/messages?messagettl=%E2%88%921

Error and stacktrace:

> DurableTask.AzureStorage.Storage.DurableTaskStorageException: Value for one of the query parameters specified in the request URI is invalid.
> ---> Microsoft.WindowsAzure.Storage.StorageException: Value for one of the query parameters specified in the request URI is invalid.
> at Microsoft.WindowsAzure.Storage.Core.Executor.Executor.ExecuteAsyncInternal[T](RESTCommand`1 cmd, IRetryPolicy policy, OperationContext operationContext, CancellationToken token)
> at DurableTask.AzureStorage.Storage.AzureStorageClient.WrapFunctionWithReturnType(Func`3 storageRequest, OperationContext context, CancellationToken cancellationToken) in /_/src/DurableTask.AzureStorage/Storage/AzureStorageClient.cs:line 158
> at DurableTask.AzureStorage.TimeoutHandler.ExecuteWithTimeout[T](String operationName, String account, AzureStorageOrchestrationServiceSettings settings, Func`3 operation, AzureStorageOrchestrationServiceStats stats, String clientRequestId)
> at DurableTask.AzureStorage.Storage.AzureStorageClient.MakeStorageRequest[T](Func`3 storageRequest, String accountName, String operationName, String clientRequestId, Boolean force) in /_/src/DurableTask.AzureStorage/Storage/AzureStorageClient.cs:line 149

Looking at the [code](https://github.com/Azure/durabletask/blob/eada7c1b64ea41edc78eb37133df46aefe294c1d/src/DurableTask.AzureStorage/Storage/Queue.cs#:~:text=TimeSpan%3F%20timeToLive,%23endif) here, the value of the messagettl param should always be -1 (as we are not using NET462). And looking at storage client [code](https://github.com/Azure/azure-storage-net/blob/cbe605f9faa01bfc3003d75fc5a16b2eaccfe102/Lib/ClassLibraryCommon/Queue/Protocol/QueueHttpRequestMessageFactory.cs#L187:~:text=public%20static%20StorageRequestMessage%20AddMessage,%7D), it should append it.

Any help to resolve this issue would be appreciated.

Hướng dẫn đóng góp

Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này

Hướng nghiên cứu

Bắt đầu với src/DurableTask.AzureStorage/Storage/Queue.cs và theo dõi cách messagettl được truyền vào Azure Storage's QueueHttpRequestMessageFactory.cs. Sử dụng lỗi được báo cáo ở WestEurope và URI mẫu để điều tra tại sao tham số trở nên không hợp lệ, sau đó xác minh rằng các thông báo hàng đợi có thể được đưa vào hàng đợi mà không có giá trị truy vấn bị định dạng sai.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
azure, csharp
Lĩnh vực
backend, cloud
Loại issue
Lỗi
Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức độ hoạt động
Đình trệ
Độ rõ ràng
Khá rõ ràng
Mức phù hợp với người mới
35/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.