We have a test environment with a Raven DB server which has been running for over a month without any issues. One day we experienced some stability issues and found out that the RavenDB Server was crashing and restarting every minute. We are using Raven DB server 3.5.4 build 35215 installed as a windows service.
We looked into the windows event log and found the following stack trace for every crash:
Application: Raven.Server.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: Raven.Imports.Newtonsoft.Json.JsonReaderException
at Raven.Imports.Newtonsoft.Json.JsonTextReader.ParseValue()
at Raven.Imports.Newtonsoft.Json.JsonTextReader.Read()
at Raven.Json.Linq.RavenJObject.Load(Raven.Imports.Newtonsoft.Json.JsonReader)
at Raven.Abstractions.Extensions.JsonExtensions.ToJObject(System.IO.Stream)
at Raven.Database.Storage.Esent.StorageActions.DocumentStorageActions.GetDocumentFromStorage(Microsoft.Isam.Esent.Interop.Table, System.String, Raven.Json.Linq.RavenJObject, Raven.Abstractions.Data.Etag, Raven.Json.Linq.RavenJObject ByRef)
at Raven.Database.Storage.Esent.StorageActions.DocumentStorageActions.ReadDocumentData(Microsoft.Isam.Esent.Interop.Table, System.String, Raven.Abstractions.Data.Etag, Raven.Json.Linq.RavenJObject, Raven.Abstractions.Extensions.Reference`1<Int32>)
Exception Info: System.IO.InvalidDataException
at Raven.Database.Storage.Esent.StorageActions.DocumentStorageActions.ReadDocumentData(Microsoft.Isam.Esent.Interop.Table, System.String, Raven.Abstractions.Data.Etag, Raven.Json.Linq.RavenJObject, Raven.Abstractions.Extensions.Reference`1<Int32>)
at Raven.Database.Storage.Esent.StorageActions.DocumentStorageActions+<>c__DisplayClass3_0.<DocumentByKey>b__0(Raven.Abstractions.Data.JsonDocumentMetadata, Int32, System.Func`6<Microsoft.Isam.Esent.Interop.Table,System.String,Raven.Abstractions.Data.Etag,Raven.Json.Linq.RavenJObject,Raven.Abstractions.Extensions.Reference`1<Int32>,Raven.Json.Linq.RavenJObject>)
at Raven.Database.Storage.Esent.StorageActions.DocumentStorageActions.DocumentByKeyInternal[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]](Microsoft.Isam.Esent.Interop.Table, System.String, System.Func`4<Raven.Abstractions.Data.JsonDocumentMetadata,Int32,System.Func`6<Microsoft.Isam.Esent.Interop.Table,System.String,Raven.Abstractions.Data.Etag,Raven.Json.Linq.RavenJObject,Raven.Abstractions.Extensions.Reference`1<Int32>,Raven.Json.Linq.RavenJObject>,System.__Canon>)
at Raven.Database.Storage.Esent.StorageActions.DocumentStorageActions.DocumentByKey(System.String, Boolean)
at Raven.Database.Actions.DocumentActions+<>c__DisplayClass15_0.<Get>b__0(Raven.Database.Storage.IStorageActionsAccessor)
at Raven.Storage.Esent.TransactionalStorage.ExecuteBatch(System.Action`1<Raven.Database.Storage.IStorageActionsAccessor>, Raven.Database.Impl.DTC.EsentTransactionContext)
at Raven.Storage.Esent.TransactionalStorage.Batch(System.Action`1<Raven.Database.Storage.IStorageActionsAccessor>)
at Raven.Database.Actions.DocumentActions.Get(System.String, Raven.Abstractions.Data.TransactionInformation)
at Raven.Database.Extensions.DocDbExtensions.AddAlert(Raven.Database.DocumentDatabase, Raven.Abstractions.Data.Alert)
at Raven.Database.Plugins.Builtins.CheckFreeDiskSpace.ExecuteCheck(System.Object)
at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.TimerQueueTimer.CallCallback()
at System.Threading.TimerQueueTimer.Fire()
at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
at System.Threading.ThreadPoolWorkQueue.Dispatch()
A brief scan through the stacktrace (with an untrained RavenDB stack trace reading eye) lead me to believe that something may have happened when checking for free disk space. Therefore I'm adding some information here regarding our test server:
- E Drive 1 TB SSD (Samsung 850 Evo) <-- This is were RavenDB is installed and also where the database (data + indexes) is located. Still 133 GB free (out of ~1 TB)
- Manually stopping and starting the service. --> Same error.
- Tried installing the latest stable version 3.5.5. --> Same error.