We have a serious problem by running a DataSubscription on one of our databases.
We work with the RavenDB version 30155.The database runs with the voron engine, has a total database size of 165 GB, nearly 50.000.000 documents and only one index (Raven/DocumentsByEntityName). In addition we have a subscription which subscribes on a 11.000.000 documents large collection. Suddenly the subscription stopped working after processing 3.5 mio documents without any visible reason or error. So we tried different things:
{
"Url": "/databases/
ourdatabase /docs?etag=01000000-0000-0023-0000-00000007F25D",
"Error":
"System.IO.InvalidDataException: Failed to de-serialize a document:
ourDoc/8852259/eventstream ---> System.Data.DataException: Index points to a
non leaf page\r\n at
Voron.Trees.Tree.SearchForPage(MemorySlice key, Lazy`1& cursor,
NodeHeader*& node)\r\n at
Voron.Trees.Tree.Read(Slice key)\r\n at
Voron.Impl.SnapshotReader.Read(String treeName, Slice key, WriteBatch
writeBatch)\r\n at
Raven.Database.Storage.Voron.StorageActions.DocumentsStorageActions.ReadDocumentData(String
normalizedKey, Slice sliceKey, Etag existingEtag, RavenJObject metadata,
Int32& size)\r\n --- End of inner
exception stack trace ---\r\n at
Raven.Database.Storage.Voron.StorageActions.DocumentsStorageActions.ReadDocumentData(String
normalizedKey, Slice sliceKey, Etag existingEtag, RavenJObject metadata,
Int32& size)\r\n at Raven.Database.Storage.Voron.StorageActions.DocumentsStorageActions.DocumentByKey(String
key)\r\n at
Raven.Database.Storage.Voron.StorageActions.DocumentsStorageActions.<GetDocumentsAfterWithIdStartingWith>d__8.MoveNext()\r\n at Raven.Database.Actions.DocumentActions.<>c__DisplayClass2c.<GetDocuments>b__2a(IStorageActionsAccessor
actions)\r\n at
Raven.Storage.Voron.TransactionalStorage.ExecuteBatch(Action`1 action)\r\n at Raven.Storage.Voron.TransactionalStorage.Batch(Action`1
action)\r\n at Raven.Database.Actions.DocumentActions.GetDocuments(Int32
start, Int32 pageSize, Etag etag, CancellationToken token, Func`2 addDocument,
Nullable`1 maxSize, Nullable`1 timeout)\r\n
at Raven.Database.Actions.DocumentActions.GetDocumentsAsJson(Int32
start, Int32 pageSize, Etag etag, CancellationToken token, Nullable`1 maxSize,
Nullable`1 timeout)\r\n at
Raven.Database.Server.Controllers.DocumentsController.DocsGet()\r\n at lambda_method(Closure , Object , Object[]
)\r\n at
System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>c__DisplayClass10.<GetExecutor>b__9(Object
instance, Object[] methodParameters)\r\n
at
System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync(HttpControllerContext
controllerContext, IDictionary`2 arguments, CancellationToken
cancellationToken)\r\n--- End of stack trace from previous location where
exception was thrown ---\r\n at
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n at
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task
task)\r\n at
System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()\r\n at
System.Web.Http.Controllers.ApiControllerActionInvoker.<InvokeActionAsyncCore>d__0.MoveNext()\r\n---
End of stack trace from previous location where exception was thrown
---\r\n at
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task
task)\r\n at
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task
task)\r\n at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()\r\n at
System.Web.Http.Controllers.ActionFilterResult.<ExecuteAsync>d__2.MoveNext()\r\n---
End of stack trace from previous location where exception was thrown ---\r\n at
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task
task)\r\n at
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task
task)\r\n at
System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()\r\n at
System.Web.Http.Controllers.ExceptionFilterResult.<ExecuteAsync>d__0.MoveNext()"
}
· If we try to create a new Index we become the following error after a while:
Unexpected exception happened during execution of indexing batch...this is not
supposed to happen. Reason: System.IO.InvalidDataException: Data corruption -
the key = 'ourDoc/730149' was found in the documents index, but matching
document was not found
at
Raven.Database.Storage.Voron.StorageActions.DocumentsStorageActions.<GetDocumentsAfterWithIdStartingWith>d__8.MoveNext()
at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
at
System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
at
System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
at
Raven.Database.Prefetching.PrefetchingBehavior.<>c__DisplayClass20.<GetJsonDocsFromDisk>b__1c(IStorageActionsAccessor
actions)
at
Raven.Storage.Voron.TransactionalStorage.ExecuteBatch(Action`1 action)
at
Raven.Storage.Voron.TransactionalStorage.Batch(Action`1 action)
at Raven.Database.Prefetching.PrefetchingBehavior.GetJsonDocsFromDisk(CancellationToken
cancellationToken, Etag etag, Etag untilEtag, Reference`1 earlyExit)
at
Raven.Database.Prefetching.PrefetchingBehavior.LoadDocumentsFromDisk(Etag etag,
Etag untilEtag)
at Raven.Database.Prefetching.PrefetchingBehavior.GetDocsFromBatchWithPossibleDuplicates(Etag
etag, Nullable`1 take)
at
Raven.Database.Prefetching.PrefetchingBehavior.GetDocumentsBatchFrom(Etag etag,
Nullable`1 take)
at
Raven.Database.Prefetching.PrefetchingBehavior.DocumentBatchFrom(Etag etag,
List`1& documents)
at
Raven.Database.Indexing.IndexingExecuter.<ExecuteIndexingWork>b__17(IndexingGroup
indexingGroup, Int64 i)
So it looks like we have three problems:
Currently we are trying to find out how many documents are lost and if it are not so many maybe there will be a change to repair those.
So our main problem is the defect index wherefore the subscription doesn’t work. We’ve made a reset of the index but that doesn’t help.
Has anyone an idea how we can solve this problem?
Many thanks in advance!
--
You received this message because you are subscribed to a topic in the Google Groups "RavenDB - 2nd generation document database" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/ravendb/pMyi0p9WmVk/unsubscribe.
To unsubscribe from this group and all its topics, send an email to ravendb+u...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.