KnowledgeBase Archive

An Archive of Early Microsoft KnowledgeBase Articles

View on GitHub

Q256879: XADM: Mbclean Stops Unexpectedly Because of Memory Corruption

Article: Q256879
Product(s): Microsoft Exchange
Version(s): winnt:5.5 SP3
Operating System(s): 
Keyword(s): exc55sp3 kbExchange550preSP4fix kbExchange550sp4Fix
Last Modified: 11-NOV-2000

-------------------------------------------------------------------------------
The information in this article applies to:

- Microsoft Exchange Server, version 5.5 SP3 
-------------------------------------------------------------------------------


SYMPTOMS
========

During normal operation the Microsoft Exchange Server Mailbox Manager service
(Mbclean.exe) may stop unexpectedly with an access violation. If the correct
Microsoft Windows NT and Exchange Server debug symbols are installed, the
resulting Dr. Watson log may contain a stack dump similar to the following:

  

  FramePtr  RetAddr   Param1   Param2   Param3   Function Name
  08c9ec3c  00401be2  02e30ffd 08c9ec60 0000003b MBCLEAN!ulGetName+0x2d
  08c9ed60  004021b5  02e36ff0 77f04f32 08c9f750 MBCLEAN!CProcessed::IsAlreadyDone+0x42
  08c9f640  00406824  02e3cd90 00414348 02e26ff0 MBCLEAN!hrWalkUsersInContainer+0x2f5
  08c9f684  0040629d  00000000 00000000 02e26ff0 MBCLEAN!ProcessOneContainer+0x474
  08c9f6f4  00405be6  02e38d90 08c9f750 02e26ff0 MBCLEAN!ProcessContainer+0xcd
  08c9fc1c  004096bc  08c9fc54 7ffdf000 08c9fd74 MBCLEAN!StartMailboxCleanup+0x566(...)
  08c9fc40  6722aa3b  08c9fdac 9e72b964 01bf7fa9 MBCLEAN!TimerAPCProc+0x25c
  08c9fd1c  77f1ce85  00000002 08c9fd44 00000001 NTDLL!RtlpDebugPageHeapCreate+0x384
  00000023  00000000  00000000 00000000 00000000 KERNEL32!WaitForMultipleObjectsEx+0x10b

CAUSE
=====

This issue can occur because Mbclean records the names of all of the mailboxes
that it processes (in a temporary file in the Mbxman folder called the
ProcessedMailboxes.txt file) before all of the mailboxes have been processed.
When data is read out of this file, it does not set a terminating NULL at the
end of the character string in the memory buffer. Thus all later references to
this character string may exceed the range of the string itself, which can cause
an access violation if the next memory block is not accessible.

RESOLUTION
==========

To resolve this problem, obtain the latest service pack for Exchange Server 5.5.
For additional information, click the following article number to view the
article in the Microsoft Knowledge Base:

  Q191014 XGEN: How to Obtain the latest Exchange Server 5.5 Service Pack


STATUS
======

Microsoft has confirmed that this is a problem in Microsoft Exchange Server
version 5.5 Service Pack 3. This problem was first corrected in Exchange Server
5.5 Service Pack 4.

Additional query words:

======================================================================
Keywords          : exc55sp3 kbExchange550preSP4fix kbExchange550sp4Fix 
Technology        : kbExchangeSearch kbZNotKeyword2 kbExchange550SP3
Version           : winnt:5.5 SP3
Issue type        : kbbug
Solution Type     : kbfix

=============================================================================

THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Copyright Microsoft Corporation 1986-2002.