Group by queries not parsing on non-windows machines, or 32-bit processes - sends to gateway but errors
See original GitHub issueDescribe the bug When processing a group by query, the call to CustomTypeExtensions.ByPassQueryParsing() returns a true for all non-windows machines, which then sends the query off to the gateway. The gateway then reports an error: System.ArgumentNullException: Value cannot be null. Parameter name: orderedAliases
To Reproduce Run a CosmosDB query on a non-windows machine, or a process that is only 32-bit, that contains the group by clause.
Expected behavior Query returns data.
Actual behavior The following error is reported: System.ArgumentNullException: Value cannot be null. Parameter name: orderedAliases
Environment summary SDK Version: 3.4.0 OS Version: MacOS or Microsoft Windows NT 10.0.14393.0 with 32-bit process
Additional context
System.ArgumentNullException: Value cannot be null.
Parameter name: orderedAliases
at Microsoft.Azure.Cosmos.Query.Core.ExecutionComponent.GroupByDocumentQueryExecutionComponent…ctor(CosmosQueryClient cosmosQueryClient, IReadOnlyDictionary2 groupByAliasToAggregateType, IReadOnlyList
1 orderedAliases, Boolean hasSelectValue, IDocumentQueryExecutionComponent source)
at Microsoft.Azure.Cosmos.Query.Core.ExecutionComponent.GroupByDocumentQueryExecutionComponent.CreateAsync(CosmosQueryClient cosmosQueryClient, String requestContinuation, Func2 createSourceCallback, IReadOnlyDictionary
2 groupByAliasToAggregateType, IReadOnlyList1 orderedAliases, Boolean hasSelectValue) at Microsoft.Azure.Cosmos.Query.PipelinedDocumentQueryExecutionContext.<>c__DisplayClass7_3.<<CreateHelperAsync>b__2>d.MoveNext() --- End of stack trace from previous location where exception was thrown --- at Microsoft.Azure.Cosmos.Query.PipelinedDocumentQueryExecutionContext.CreateHelperAsync(ExecutionEnvironment executionEnvironment, CosmosQueryClient queryClient, QueryInfo queryInfo, Int32 initialPageSize, String requestContinuation, Func
2 createOrderByQueryExecutionContext, Func2 createParallelQueryExecutionContext) at Microsoft.Azure.Cosmos.Query.PipelinedDocumentQueryExecutionContext.CreateAsync(ExecutionEnvironment executionEnvironment, CosmosQueryContext queryContext, CrossPartitionInitParams initParams, String requestContinuationToken, CancellationToken cancellationToken) at Microsoft.Azure.Cosmos.Query.CosmosQueryExecutionContextFactory.CreateSpecializedDocumentQueryExecutionContextAsync(CosmosQueryContext cosmosQueryContext, InputParameters inputParameters, PartitionedQueryExecutionInfo partitionedQueryExecutionInfo, List
1 targetRanges, String collectionRid, CancellationToken cancellationToken)
at Microsoft.Azure.Cosmos.Query.CosmosQueryExecutionContextFactory.CreateFromPartitionedQuerExecutionInfoAsync(PartitionedQueryExecutionInfo partitionedQueryExecutionInfo, ContainerQueryProperties containerQueryProperties, CancellationToken cancellationToken)
at Microsoft.Azure.Cosmos.Query.CosmosQueryExecutionContextFactory.CreateItemQueryExecutionContextAsync(CancellationToken cancellationToken)
at Microsoft.Azure.Cosmos.Query.CosmosQueryExecutionContextFactory.ExecuteNextAsync(CancellationToken cancellationToken)
Issue Analytics
- State:
- Created 4 years ago
- Comments:15 (7 by maintainers)
Top GitHub Comments
Gateway hotfix is deployed.
@BharathPalanivelu the issue is the ServiceInterop.dll is not getting loaded in the App Service so it is falling back to the gateway to get the query plan. Please make sure the ServiceInterop.dll is in the same folder as the application. Please create a new issue if you want to further debug so we keep the discussion focused on the original issue.