Recently one of our Exchange 2013 RTM server was facing frequent Mailbox Database dismounts and every time the database was in dirty shutdown state, following event Id’s were reported

Log Name:      Application

Source:        MSExchangeIS

Date:          5/3/2014 9:30:31 AM

Event ID:      1001

Task Category: General

Level:         Error

Keywords:      Classic

User:          N/A

Computer:     Exchange.contoso.com

Description:

Microsoft Exchange Server Information Store has encountered an internal logic error. Internal error text is (Conversation already contains this message) with a call stack of (   at Microsoft.Exchange.Server.Storage.Common.ErrorHelper.AssertRetail(Boolean assertCondition, String message)

   at Microsoft.Exchange.Server.Storage.LogicalDataModel.ConversationItem.AddMessage(Context context, FidMid fidMid)

   at Microsoft.Exchange.Server.Storage.LogicalDataModel.Conversations.TrackConversationUpdateForMessageInsert(Context context, Mailbox mailbox, TopMessage message, ModifiedSearchFolders modifiedSearchFolders)

   at Microsoft.Exchange.Server.Storage.LogicalDataModel.Conversations.TrackConversationUpdate(Context context, Mailbox mailbox, TopMessage message, LogicalOperation operation, ModifiedSearchFolders modifiedSearchFolders)

   at Microsoft.Exchange.Server.Storage.LogicalDataModel.TopMessage.TrackUpdate(Context context, LogicalOperation operation)

   at Microsoft.Exchange.Server.Storage.StoreCommonServices.ObjectPropertyBag.Flush(Context context)

   at Microsoft.Exchange.Server.Storage.LogicalDataModel.Item.Flush(Context context)

   at Microsoft.Exchange.Server.Storage.LogicalDataModel.Message.Flush(Context context)

   at Microsoft.Exchange.Server.Storage.LogicalDataModel.Message.SaveChanges(Context context)

   at Microsoft.Exchange.Server.Storage.LogicalDataModel.TopMessage.SaveChanges(Context context, SaveMessageChangesFlags flags)

   at Microsoft.Exchange.Protocols.MAPI.MapiMessage.SaveChangesInternal(MapiContext context, MapiSaveMessageChangesFlags saveFlags, ExchangeId& newMid)

   at Microsoft.Exchange.Protocols.MAPI.MapiMessage.SaveChanges(MapiContext context, MapiSaveMessageChangesFlags saveFlags, ExchangeId& newMid)

   at Microsoft.Exchange.Server.Storage.MapiDisp.RopHandler.SaveChangesMessage(MapiContext context, MapiMessage message, SaveChangesMode saveChangesMode, SaveChangesMessageResultFactory resultFactory)

   at Microsoft.Exchange.Server.Storage.MapiDisp.RopHandlerBase.SaveChangesMessage(IServerObject serverObject, SaveChangesMode saveChangesMode, SaveChangesMessageResultFactory resultFactory)

   at Microsoft.Exchange.RpcClientAccess.Parser.RopSaveChangesMessage.InternalExecute(IServerObject serverObject, IRopHandler ropHandler, ArraySegment`1 outputBuffer)

   at Microsoft.Exchange.RpcClientAccess.Parser.InputRop.Execute(IConnectionInformation connection, IRopDriver ropDriver, ServerObjectHandleTable handleTable, ArraySegment`1 outputBuffer)

   at Microsoft.Exchange.RpcClientAccess.Parser.RopDriver.ExecuteRops(List`1 inputArraySegmentList, ServerObjectHandleTable serverObjectHandleTable, ArraySegment`1 outputBuffer, Int32 outputIndex, Int32 maxOutputSize, Boolean isOutputBufferMaxSize, Int32& outputSize, AuxiliaryData auxiliaryData, Boolean isFake, Byte[]& fakeOut)

   at Microsoft.Exchange.RpcClientAccess.Parser.RopDriver.Execute(ArraySegment`1[] inputBufferArray, ArraySegment`1 outputBuffer, Int32& outputSize, AuxiliaryData auxiliaryData, Boolean isFake, Byte[]& fakeOut)

   at Microsoft.Exchange.Server.Storage.MapiDisp.MapiRpc.<>c__DisplayClass9.<DoRpc>b__6(MapiContext operationContext, MapiSession& session, Boolean& deregisterSession, AuxiliaryData auxiliaryData)

   at Microsoft.Exchange.Server.Storage.MapiDisp.MapiRpc.Execute(IExecutionDiagnostics executionDiagnostics, MapiContext outerContext, String functionName, Boolean isRpc, IntPtr& contextHandle, Boolean tryLockSession, String userDn, Int32 sizeInMegabytes, ArraySegment`1 auxIn, ArraySegment`1 auxOut, Int32& sizeAuxOut, ExecuteDelegate executeDelegate)

   at Microsoft.Exchange.Server.Storage.MapiDisp.MapiRpc.DoRpc(IExecutionDiagnostics executionDiagnostics, IntPtr& contextHandle, ArraySegment`1[] ropInArraySegments, ArraySegment`1 ropOut, Int32& sizeRopOut, ArraySegment`1 auxIn, ArraySegment`1 auxOut, Int32& sizeAuxOut, Boolean fakeRequest, Byte[]& fakeOut)

   at Microsoft.Exchange.Server.Storage.MapiDisp.PoolRpcServer.EcDoRpc(MapiExecutionDiagnostics executionDiagnostics, IntPtr& sessionHandle, UInt32 flags, UInt32 maximumResponseSize, ArraySegment`1 request, ArraySegment`1 auxiliaryIn, IPoolSessionDoRpcCompletion completion)

   at Microsoft.Exchange.Server.Storage.MapiDisp.PoolRpcServer.EcPoolSessionDoRpc_Unwrapped(MapiExecutionDiagnostics executionDiagnostics, IntPtr contextHandle, UInt32 sessionHandle, UInt32 flags, UInt32 maximumResponseSize, ArraySegment`1 request, ArraySegment`1 auxiliaryIn, IPoolSessionDoRpcCompletion completion)

   at Microsoft.Exchange.Server.Storage.MapiDisp.PoolRpcServer.<>c__DisplayClass17.<EcPoolSessionDoRpc>b__14()

   at Microsoft.Exchange.Common.IL.ILUtil.DoTryFilterCatch[T](TryDelegate tryDelegate, GenericFilterDelegate filterDelegate, GenericCatchDelegate catchDelegate, T state)

   at Microsoft.Exchange.Server.Storage.Common.WatsonOnUnhandledException.Guard(IExecutionDiagnostics executionDiagnostics, TryDelegate body)

   at Microsoft.Exchange.Server.Storage.MapiDisp.PoolRpcServer.EcPoolSessionDoRpc(IntPtr contextHandle, UInt32 sessionHandle, UInt32 flags, UInt32 maximumResponseSize, ArraySegment`1 request, ArraySegment`1 auxiliaryIn, IPoolSessionDoRpcCompletion completion)

   at EcPoolSessionDoRpcRpc.EcDispatchCall(EcPoolSessionDoRpcRpc* , SafeRpcAsyncStateHandle pAsyncState, IPoolRpcServer server)

   at PoolRpcServer_Wrapper.InternalExecute(PoolRpcServer_Wrapper* , SafeRpcAsyncStateHandle pAsyncState)

   at Microsoft.Exchange.Rpc.ManagedExceptionAsyncCrashWrapper.Execute<class Microsoft::Exchange::Rpc::PoolRpc::SafeEcPoolSessionDoRpcRpcAsyncStateHandle>(ManagedExceptionAsyncCrashWrapper* , _RPC_ASYNC_STATE* pAsyncState)

   at EcPoolSessionDoRpc_Managed(_RPC_ASYNC_STATE* pAsyncState, Void* cpxh, UInt32 ulSessionHandle, UInt32* pulFlags, UInt32 cbIn, Byte* rgbIn, UInt32* pcbOut, Byte** ppbOut, UInt32 cbAuxIn, Byte* rgbAuxIn, UInt32* pcbAuxOut, Byte** ppbAuxOut)

).

Log Name:      Application

Source:        MSExchangeIS

Date:        5/3/2014 9:30:31 AM

Event ID:      1013

Task Category: General

Level:         Error

Keywords:      Classic

User:          N/A

Computer:      Exchange.contoso.com

Description:

The mailbox with mailboxguid “d4dk5f76-fgb9-8947-f6uy-ft4as9vj4f31” caused crash or resource outage on database 

 

 

 

Log Name:      Application

Source:        MSExchange Common

Date:          5/3/2014 9:30:31 AM

Event ID:      4999

Task Category: General

Level:         Error

Keywords:      Classic

User:          N/A

Computer:      Exchange.contoso.com

Description:

Watson report about to be sent for process id: 158768, with parameters: E12, c-RTL-AMD64, 15.00.0516.032, M.E.Store.Worker, M.E.S.Storage.LogicalDataModel, M.E.S.S.L.Conversations.TrackConversationUpdateForMessageDelete, System.NullReferenceException, ffbc, 15.00.0516.029.

ErrorReportingEnabled: True

Solution

We found it to be an issue with the RTM version of Exchange and upgrading it to CU2 resolved all the issue.

Hope this article helps you fix the issue, for more support feel free to start a thread on our forum

 

The following two tabs change content below.
An automobile enthusiast at heart and computer geek by profession, started my Career with MS in 2005.Left Jobs and started Pledge Technologies (the parent company to Grishbi) back in 2009.We have been providing IT consulting to various Small and Medium businesses across US and UK since then.Our company specialises in Microsoft Server technologies like AD, Exchange, the rest and with numerous Office 365 migrations under our belt, we quite an expert with that too. Whatever we learn in our day to day life, we share it back on Grishbi as a Thank for all the love and support our customers have given us.
%d bloggers like this: