Raven.Client.Exceptions.RavenException: System.IndexOutOfRangeException: Index was outside the bounds of the array.
40 views
Skip to first unread message
Zak Stam
unread,
Jan 26, 2024, 4:30:28 AM1/26/24
Reply to author
Sign in to reply to author
Forward
Sign in to forward
Delete
You do not have permission to delete messages in this group
Copy link
Report message
Show original message
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to RavenDB - an awesome database
This started coming up when i switched to Corax from Lucene: An unhandled exception has occurred while executing the request. Raven.Client.Exceptions.RavenException: System.IndexOutOfRangeException: Index was outside the bounds of the array. at Corax.Querying.IndexSearcher.<SearchQuery>g__GetTermType|83_1(ReadOnlySpan`1 termValue) in D:\Builds\RavenDB-Stable-6.0\60008\src\Corax\Querying\IndexSearcher.Search.cs:line 132 at Corax.Querying.IndexSearcher.SearchQuery(FieldMetadata field, IEnumerable`1 values, Operator operator, CancellationToken& cancellationToken) in D:\Builds\RavenDB-Stable-6.0\60008\src\Corax\Querying\IndexSearcher.Search.cs:line 127 at Raven.Server.Documents.Indexes.Persistence.Corax.CoraxQueryBuilder.HandleSearch(Parameters builderParameters, MethodExpression expression, Nullable`1 proximity) at Raven.Server.Documents.Indexes.Persistence.Corax.CoraxQueryBuilder.ToCoraxQuery(Parameters builderParameters, QueryExpression expression, StreamingOptimization& leftOnlyOptimization, Boolean exact, Nullable`1 proximity) in D:\Builds\RavenDB-Stable-6.0\60008\src\Raven.Server\Documents\Indexes\Persistence\Corax\CoraxQueryBuilder.cs:line 576 at Raven.Server.Documents.Indexes.Persistence.Corax.CoraxQueryBuilder.ToCoraxQuery(Parameters builderParameters, QueryExpression expression, StreamingOptimization& leftOnlyOptimization, Boolean exact, Nullable`1 proximity) in D:\Builds\RavenDB-Stable-6.0\60008\src\Raven.Server\Documents\Indexes\Persistence\Corax\CoraxQueryBuilder.cs:line 576 at Raven.Server.Documents.Indexes.Persistence.Corax.CoraxQueryBuilder.BuildQuery(Parameters builderParameters, OrderMetadata[]& sortMetadata) in D:\Builds\RavenDB-Stable-6.0\60008\src\Raven.Server\Documents\Indexes\Persistence\Corax\CoraxQueryBuilder.cs:line 283 at Raven.Server.Documents.Indexes.Persistence.Corax.CoraxIndexReadOperation.QueryInternal[THighlighting,TQueryFilter,THasProjection,TDistinct](IndexQueryServerSide query, QueryTimingsScope queryTimings, FieldsToFetch fieldsToFetch, Reference`1 totalResults, Reference`1 skippedResults, Reference`1 scannedDocuments, IQueryResultRetriever retriever, DocumentsOperationContext documentsContext, Func`2 getSpatialField, CancellationToken token)+MoveNext() in D:\Builds\RavenDB-Stable-6.0\60008\src\Raven.Server\Documents\Indexes\Persistence\Corax\CoraxIndexReadOperation.cs:line 832 at Raven.Server.Documents.Indexes.Index.QueryInternal[TQueryResult](TQueryResult resultToFill, IndexQueryServerSide query, QueryOperationContext queryContext, Boolean pulseDocsReadingTransaction, OperationCancelToken token) in D:\Builds\RavenDB-Stable-6.0\60008\src\Raven.Server\Documents\Indexes\Index.cs:line 3545 at Raven.Server.Documents.Indexes.Index.QueryInternal[TQueryResult](TQueryResult resultToFill, IndexQueryServerSide query, QueryOperationContext queryContext, Boolean pulseDocsReadingTransaction, OperationCancelToken token) in D:\Builds\RavenDB-Stable-6.0\60008\src\Raven.Server\Documents\Indexes\Index.cs:line 3545 at Raven.Server.Documents.Indexes.Index.Query(IndexQueryServerSide query, QueryOperationContext queryContext, OperationCancelToken token) in D:\Builds\RavenDB-Stable-6.0\60008\src\Raven.Server\Documents\Indexes\Index.cs:line 3292 at Raven.Server.Documents.Queries.Dynamic.DynamicQueryRunner.ExecuteQuery(IndexQueryServerSide query, QueryOperationContext queryContext, Nullable`1 existingResultEtag, OperationCancelToken token) in D:\Builds\RavenDB-Stable-6.0\60008\src\Raven.Server\Documents\Queries\Dynamic\DynamicQueryRunner.cs:line 69 at Raven.Server.Documents.Queries.QueryRunner.ExecuteQuery(IndexQueryServerSide query, QueryOperationContext queryContext, Nullable`1 existingResultEtag, OperationCancelToken token) in D:\Builds\RavenDB-Stable-6.0\60008\src\Raven.Server\Documents\Queries\QueryRunner.cs:line 99 at Raven.Server.Documents.Handlers.Processors.Queries.DatabaseQueriesHandlerProcessorForGet.GetQueryResultsAsync(IndexQueryServerSide query, QueryOperationContext queryContext, Nullable`1 existingResultEtag, Boolean metadataOnly, OperationCancelToken token) in D:\Builds\RavenDB-Stable-6.0\60008\src\Raven.Server\Documents\Handlers\Processors\Queries\DatabaseQueriesHandlerProcessorForGet.cs:line 53 at Raven.Server.Documents.Handlers.Processors.Queries.AbstractQueriesHandlerProcessorForGet`4.ExecuteAsync() in D:\Builds\RavenDB-Stable-6.0\60008\src\Raven.Server\Documents\Handlers\Processors\Queries\AbstractQueriesHandlerProcessorForGet.cs:line 219 at Raven.Server.Documents.Handlers.QueriesHandler.Post() in D:\Builds\RavenDB-Stable-6.0\60008\src\Raven.Server\Documents\Handlers\QueriesHandler.cs:line 15 at Raven.Server.Routing.RequestRouter.HandlePath(RequestHandlerContext reqCtx) in D:\Builds\RavenDB-Stable-6.0\60008\src\Raven.Server\Routing\RequestRouter.cs:line 394 at Raven.Server.RavenServerStartup.RequestHandler(HttpContext context) in D:\Builds\RavenDB-Stable-6.0\60008\src\Raven.Server\RavenServerStartup.cs:line 254 ---> System.IndexOutOfRangeException: System.IndexOutOfRangeException: Index was outside the bounds of the array. at Corax.Querying.IndexSearcher.<SearchQuery>g__GetTermType|83_1(ReadOnlySpan`1 termValue) in D:\Builds\RavenDB-Stable-6.0\60008\src\Corax\Querying\IndexSearcher.Search.cs:line 132 at Corax.Querying.IndexSearcher.SearchQuery(FieldMetadata field, IEnumerable`1 values, Operator operator, CancellationToken& cancellationToken) in D:\Builds\RavenDB-Stable-6.0\60008\src\Corax\Querying\IndexSearcher.Search.cs:line 127 at Raven.Server.Documents.Indexes.Persistence.Corax.CoraxQueryBuilder.HandleSearch(Parameters builderParameters, MethodExpression expression, Nullable`1 proximity) at Raven.Server.Documents.Indexes.Persistence.Corax.CoraxQueryBuilder.ToCoraxQuery(Parameters builderParameters, QueryExpression expression, StreamingOptimization& leftOnlyOptimization, Boolean exact, Nullable`1 proximity) in D:\Builds\RavenDB-Stable-6.0\60008\src\Raven.Server\Documents\Indexes\Persistence\Corax\CoraxQueryBuilder.cs:line 576 at Raven.Server.Documents.Indexes.Persistence.Corax.CoraxQueryBuilder.ToCoraxQuery(Parameters builderParameters, QueryExpression expression, StreamingOptimization& leftOnlyOptimization, Boolean exact, Nullable`1 proximity) in D:\Builds\RavenDB-Stable-6.0\60008\src\Raven.Server\Documents\Indexes\Persistence\Corax\CoraxQueryBuilder.cs:line 576 at Raven.Server.Documents.Indexes.Persistence.Corax.CoraxQueryBuilder.BuildQuery(Parameters builderParameters, OrderMetadata[]& sortMetadata) in D:\Builds\RavenDB-Stable-6.0\60008\src\Raven.Server\Documents\Indexes\Persistence\Corax\CoraxQueryBuilder.cs:line 283 at Raven.Server.Documents.Indexes.Persistence.Corax.CoraxIndexReadOperation.QueryInternal[THighlighting,TQueryFilter,THasProjection,TDistinct](IndexQueryServerSide query, QueryTimingsScope queryTimings, FieldsToFetch fieldsToFetch, Reference`1 totalResults, Reference`1 skippedResults, Reference`1 scannedDocuments, IQueryResultRetriever retriever, DocumentsOperationContext documentsContext, Func`2 getSpatialField, CancellationToken token)+MoveNext() in D:\Builds\RavenDB-Stable-6.0\60008\src\Raven.Server\Documents\Indexes\Persistence\Corax\CoraxIndexReadOperation.cs:line 832 at Raven.Server.Documents.Indexes.Index.QueryInternal[TQueryResult](TQueryResult resultToFill, IndexQueryServerSide query, QueryOperationContext queryContext, Boolean pulseDocsReadingTransaction, OperationCancelToken token) in D:\Builds\RavenDB-Stable-6.0\60008\src\Raven.Server\Documents\Indexes\Index.cs:line 3545 at Raven.Server.Documents.Indexes.Index.QueryInternal[TQueryResult](TQueryResult resultToFill, IndexQueryServerSide query, QueryOperationContext queryContext, Boolean pulseDocsReadingTransaction, OperationCancelToken token) in D:\Builds\RavenDB-Stable-6.0\60008\src\Raven.Server\Documents\Indexes\Index.cs:line 3545 at Raven.Server.Documents.Indexes.Index.Query(IndexQueryServerSide query, QueryOperationContext queryContext, OperationCancelToken token) in D:\Builds\RavenDB-Stable-6.0\60008\src\Raven.Server\Documents\Indexes\Index.cs:line 3292 at Raven.Server.Documents.Queries.Dynamic.DynamicQueryRunner.ExecuteQuery(IndexQueryServerSide query, QueryOperationContext queryContext, Nullable`1 existingResultEtag, OperationCancelToken token) in D:\Builds\RavenDB-Stable-6.0\60008\src\Raven.Server\Documents\Queries\Dynamic\DynamicQueryRunner.cs:line 69 at Raven.Server.Documents.Queries.QueryRunner.ExecuteQuery(IndexQueryServerSide query, QueryOperationContext queryContext, Nullable`1 existingResultEtag, OperationCancelToken token) in D:\Builds\RavenDB-Stable-6.0\60008\src\Raven.Server\Documents\Queries\QueryRunner.cs:line 99 at Raven.Server.Documents.Handlers.Processors.Queries.DatabaseQueriesHandlerProcessorForGet.GetQueryResultsAsync(IndexQueryServerSide query, QueryOperationContext queryContext, Nullable`1 existingResultEtag, Boolean metadataOnly, OperationCancelToken token) in D:\Builds\RavenDB-Stable-6.0\60008\src\Raven.Server\Documents\Handlers\Processors\Queries\DatabaseQueriesHandlerProcessorForGet.cs:line 53 at Raven.Server.Documents.Handlers.Processors.Queries.AbstractQueriesHandlerProcessorForGet`4.ExecuteAsync() in D:\Builds\RavenDB-Stable-6.0\60008\src\Raven.Server\Documents\Handlers\Processors\Queries\AbstractQueriesHandlerProcessorForGet.cs:line 219 at Raven.Server.Documents.Handlers.QueriesHandler.Post() in D:\Builds\RavenDB-Stable-6.0\60008\src\Raven.Server\Documents\Handlers\QueriesHandler.cs:line 15 at Raven.Server.Routing.RequestRouter.HandlePath(RequestHandlerContext reqCtx) in D:\Builds\RavenDB-Stable-6.0\60008\src\Raven.Server\Routing\RequestRouter.cs:line 394 at Raven.Server.RavenServerStartup.RequestHandler(HttpContext context) in D:\Builds\RavenDB-Stable-6.0\60008\src\Raven.Server\RavenServerStartup.cs:line 254 --- End of inner exception stack trace --- at Raven.Client.Exceptions.ExceptionDispatcher.Throw(JsonOperationContext context, HttpResponseMessage response) in D:\Builds\RavenDB-Stable-6.0\60008\src\Raven.Client\Exceptions\ExceptionDispatcher.cs:line 114 at Raven.Client.Exceptions.ExceptionDispatcher.Throw(JsonOperationContext context, HttpResponseMessage response) in D:\Builds\RavenDB-Stable-6.0\60008\src\Raven.Client\Exceptions\ExceptionDispatcher.cs:line 118 at Raven.Client.Http.Behaviors.DefaultCommandResponseBehavior.TryHandleUnsuccessfulResponseAsync[TResult](JsonOperationContext context, RavenCommand`1 command, HttpResponseMessage response) in D:\Builds\RavenDB-Stable-6.0\60008\src\Raven.Client\Http\Behaviors\DefaultCommandResponseBehavior.cs:line 52 at Raven.Client.Http.RequestExecutor.HandleUnsuccessfulResponse[TResult](ServerNode chosenNode, Nullable`1 nodeIndex, JsonOperationContext context, RavenCommand`1 command, HttpRequestMessage request, HttpResponseMessage response, String url, SessionInfo sessionInfo, Boolean shouldRetry, CancellationToken token) in D:\Builds\RavenDB-Stable-6.0\60008\src\Raven.Client\Http\RequestExecutor.cs:line 1639 at Raven.Client.Http.RequestExecutor.ExecuteAsync[TResult](ServerNode chosenNode, Nullable`1 nodeIndex, JsonOperationContext context, RavenCommand`1 command, Boolean shouldRetry, SessionInfo sessionInfo, CancellationToken token) in D:\Builds\RavenDB-Stable-6.0\60008\src\Raven.Client\Http\RequestExecutor.cs:line 1018 at Raven.Client.Http.RequestExecutor.ExecuteAsync[TResult](ServerNode chosenNode, Nullable`1 nodeIndex, JsonOperationContext context, RavenCommand`1 command, Boolean shouldRetry, SessionInfo sessionInfo, CancellationToken token) in D:\Builds\RavenDB-Stable-6.0\60008\src\Raven.Client\Http\RequestExecutor.cs:line 1043 at Raven.Client.Documents.Session.AsyncDocumentQuery`1.ExecuteActualQueryAsync(CancellationToken token) in D:\Builds\RavenDB-Stable-6.0\60008\src\Raven.Client\Documents\Session\AsyncDocumentQuery.cs:line 1000 at Raven.Client.Documents.Session.AsyncDocumentQuery`1.InitAsync(CancellationToken token) in D:\Builds\RavenDB-Stable-6.0\60008\src\Raven.Client\Documents\Session\AsyncDocumentQuery.cs:line 990 at Raven.Client.Documents.Session.AsyncDocumentQuery`1.ExecuteQueryOperationInternal(Nullable`1 take, CancellationToken token) in D:\Builds\RavenDB-Stable-6.0\60008\src\Raven.Client\Documents\Session\AsyncDocumentQuery.cs:line 945 at Raven.Client.Documents.Session.AsyncDocumentQuery`1.ExecuteQueryOperation(Nullable`1 take, CancellationToken token) in D:\Builds\RavenDB-Stable-6.0\60008\src\Raven.Client\Documents\Session\AsyncDocumentQuery.cs:line 927 at IO.Monolith.Features.Administrator.Customers.AdvancedSearchForCustomer.HandleAsync(AdvancedSearchForCustomerRequest req, CancellationToken ct) in C:\Godot\4.0\Projects\GitLab\io.bakcend.monolith\IO.Monolith\Features\Administrator\Customers\Queries\AdvancedSearchForCustomer.cs:line 30 at FastEndpoints.Endpoint`2.ExecAsync(CancellationToken ct) at FastEndpoints.Endpoint`2.ExecAsync(CancellationToken ct) at NSwag.AspNetCore.Middlewares.SwaggerUiIndexMiddleware.Invoke(HttpContext context) at NSwag.AspNetCore.Middlewares.RedirectToIndexMiddleware.Invoke(HttpContext context) at NSwag.AspNetCore.Middlewares.OpenApiDocumentMiddleware.Invoke(HttpContext context) at NSwag.AspNetCore.Middlewares.OpenApiDocumentMiddleware.Invoke(HttpContext context) at NSwag.AspNetCore.Middlewares.OpenApiDocumentMiddleware.Invoke(HttpContext context) at NSwag.AspNetCore.Middlewares.OpenApiDocumentMiddleware.Invoke(HttpContext context) at NSwag.AspNetCore.Middlewares.OpenApiDocumentMiddleware.Invoke(HttpContext context) at NSwag.AspNetCore.Middlewares.OpenApiDocumentMiddleware.Invoke(HttpContext context) at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context) at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context) at Sentry.AspNetCore.SentryTracingMiddleware.InvokeAsync(HttpContext context) at Sentry.AspNetCore.SentryTracingMiddleware.InvokeAsync(HttpContext context) at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddlewareImpl.Invoke(HttpContext context) fail: Hangfire.Processing.BackgroundExecution[0] Execution DelayedJobScheduler is in the Failed state now due to an exception, execution will be retried no more than in 00:00:04 Hangfire.Storage.DistributedLockTimeoutException: Timeout expired. The timeout elapsed prior to obtaining a distributed lock on the 'Could not place a lock on the resource 'HangFire:locks:schedulepoller': The lock request timed out.' resource. at Hangfire.LiteDB.LiteDbDistributedLock.Acquire(TimeSpan timeout) at Hangfire.LiteDB.LiteDbDistributedLock..ctor(String resource, TimeSpan timeout, HangfireDbContext database, LiteDbStorageOptions storageOptions) at Hangfire.LiteDB.LiteDbConnection.AcquireDistributedLock(String resource, TimeSpan timeout) at Hangfire.Server.DelayedJobScheduler.UseConnectionDistributedLock[T](JobStorage storage, Func`2 action) at Hangfire.Server.DelayedJobScheduler.EnqueueNextScheduledJobs(BackgroundProcessContext context) at Hangfire.Server.DelayedJobScheduler.Execute(BackgroundProcessContext context) at Hangfire.Server.BackgroundProcessDispatcherBuilder.ExecuteProcess(Guid executionId, Object state) at Hangfire.Processing.BackgroundExecution.Run(Action`2 callback, Object state)
This is my query: var session = _store.OpenAsyncSession(); var userList = await session.Query<Customer>() .Search(x => x.Info.Firstname, $"{req.FirstName}*") .Search(x => x.Info.Lastname, $"*{req.LastName}*", @operator: SearchOperator.Or) .Search(x => x.Info.Email, $"*{req.Email}*", @operator: SearchOperator.Or) .Take(30) .OrderByScore() .ThenBy(dto => dto.Id) .OfType<CustomerSearchDto>() // .Select(customer => new CustomerSearchDto // { // Credentials = { Username = customer.Credentials.Username } // }) .ToListAsync(ct);
I have tried: - Resetting the index - Deleting the index - Manually creating the index (it is auto-generated right now)
What's interesting is that the same query from RQL seems to work so this might be a client bug.
RQL: from index 'Auto/Customers/ByCredentials.UsernameAndSearch(Info.Email)AndSearch(Info.Firstname)AndSearch(Info.Lastname)' where (search(Info.Email, "*zak*") or search(Info.Firstname, "", or) or search(Info.Lastname, "", or))
Custom index: public class Advanced_Search_Customer : AbstractIndexCreationTask<Customer> { public Advanced_Search_Customer() { Map = customers => from customer in customers select new { Firstname = customer.Info.Firstname, Lastname = customer.Info.Lastname, Email = customer.Info.Email };