EdgeTransport.exe process crashes without sending an NDR message when you send a message to a distribution group in an Exchange Server 2010 environment

Article ID: 2696857 - View products that this article applies to.
Expand all | Collapse all

SYMPTOMS

Consider the following scenarios when a Dynamic Distribution Group has a Lightweight Directory Access Protocol (LDAP) filter that contains more than 32,000 characters in a Microsoft Exchange Server 2010 environment:

Scenario 1

Assume that you send a message to the Dynamic Distribution Group directly. In this situation, the EdgeTransport.exe process crashes on the Exchange Server 2010 Hub Transport server. However, you do not receive a non-delivery report (NDR) message. Additionally, the following events are logged in the Application log:
Log Name: Application
Source: MSExchangeTransport
Date: Date
Event ID: 10003
Task Category: PoisonMessage
Level: Error
Keywords: Classic
User: N/A
Computer: Computer
Description:
The transport process failed during message processing with the following call stack: Microsoft.Exchange.Data.Directory.ADFilterException: The filter string size exceeds maximum allowed size of 32k characters.
at Microsoft.Exchange.Data.Directory.Recipient.ADRecipientCache.ExpandGroup(IADDistributionList group)
at Microsoft.Exchange.Transport.Categorizer.GroupItem.ExpandMembers(Expansion expansion)
at Microsoft.Exchange.Transport.Categorizer.GroupItem.ProcessLocally(Expansion expansion)
at Microsoft.Exchange.Transport.Categorizer.RecipientItem.Process(Expansion expansion)
at Microsoft.Exchange.Transport.Categorizer.Resolver.ResolveAll()
at Microsoft.Exchange.Transport.Categorizer.CategorizerComponent.Stage2ResolveEngine(TransportMailItem transportMailItem, TaskContext taskContext)
at Microsoft.Exchange.Transport.Categorizer.TaskContext.Invoke()
at Microsoft.Exchange.Transport.Categorizer.CatScheduler.JobThreadEntry(Object ignored)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading._ThreadPoolWaitCallback.PerformWaitCallbackInternal(_ThreadPoolWaitCallback tpWaitCallBack)
at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback(Object state)

Log Name: Application
Source: MSExchange Common
Date: Date
Event ID: 4999
Task Category: General
Level: Error
Keywords: Classic
User: N/A
Computer: Computer
Description:
Watson report about to be sent for process id: Process ID, with parameters: E12, Build Type, Version Number, edgetransport, M.E.Data.Directory, M.E.D.D.R.ADRecipientCache.ExpandGroup, M.E.D.Directory.ADFilterException, XXXX, Version Number.
ErrorReportingEnabled: False

Scenario 2

Assume that you send a message to another distribution group that uses the Dynamic Distribution Group as a delivery restriction. In this situation, the EdgeTransport.exe process crashes on the Exchange Server 2010 Hub Transport server. However, you do not receive a non-delivery report (NDR) message. Additionally, the following events are logged in the Application log:
Log Name: Application
Source: MSExchangeTransport
Date: Date
Event ID: 10003
Task Category: PoisonMessage
Level: Error
Keywords: Classic
User: N/A
Computer: Computer
Description:
The transport process failed during message processing with the following call stack: Microsoft.Exchange.Data.Directory.ADFilterException: The filter string size exceeds maximum allowed size of 32k characters.
at Microsoft.Exchange.Data.Directory.LdapFilterBuilder.LdapFilterFromQueryFilter(QueryFilter queryFilter, Boolean skipCheckVirtualIndex)
at Microsoft.Exchange.Data.Directory.ADGenericPagedReader`1..ctor(ADSession session, ADObjectId rootId, QueryScope scope, QueryFilter filter, SortBy sortBy, Int32 pageSize, IEnumerable`1 properties, CreateObjectDelegate objectCtor, CreateObjectsDelegate objectArrayCtor, Boolean skipCheckVirtualIndex)
at Microsoft.Exchange.Data.Directory.ADPagedReader`1..ctor(ADSession session, ADObjectId rootId, QueryScope scope, QueryFilter filter, SortBy sortBy, Int32 pageSize, IEnumerable`1 properties, CreateObjectDelegate objectCtor, CreateObjectsDelegate objectArrayCtor, Boolean skipCheckVirtualIndex)
at Microsoft.Exchange.Data.Directory.ADPagedReader`1..ctor(ADSession session, ADObjectId rootId, QueryScope scope, QueryFilter filter, SortBy sortBy, Int32 pageSize, IEnumerable`1 properties, Boolean skipCheckVirtualIndex)
at Microsoft.Exchange.Data.Directory.ADDynamicGroupPagedReader`1..ctor(ADSession session, ADObjectId rootId, QueryScope scope, String ldapFilter, Int32 pageSize, CustomExceptionHandler customExceptionHandler, IEnumerable`1 properties)
at Microsoft.Exchange.Data.Directory.Recipient.ADDynamicGroup.Expand(Int32 pageSize)
at Microsoft.Exchange.Data.Directory.Recipient.ADRecipient.TryIsStrictMemberOfWithLimit(ADObjectId recipientId, ADRecipient rootGroup, Boolean directOnly, ADRecipientSession session, HashSet`1 visitedGroups, Int32& adQueryCount, Int32 adQueryLimit, Boolean& isMember)
at Microsoft.Exchange.Data.Directory.Recipient.ADRecipient.TryIsMemberOfWithLimit(ADObjectId recipientId, ADObjectId groupId, Boolean directOnly, ADRecipientSession session, Int32& adQueryLimit, Boolean& isMember)
at Microsoft.Exchange.Data.Directory.Recipient.ADRecipientRestriction.TryIsSenderMemberOfWithLimit(IEnumerable`1 groupIdList, Boolean& isSenderMemberOf)
at Microsoft.Exchange.Data.Directory.Recipient.ADRecipientRestriction.CheckPermissionRestriction()
at Microsoft.Exchange.Data.Directory.Recipient.ADRecipientRestriction.Check()
at Microsoft.Exchange.Data.Directory.Recipient.ADRecipientRestriction.CheckDeliveryRestriction(ADObjectId senderId, Boolean senderIsAuthenticated, ICollection`1 rejectMessagesFrom, ICollection`1 rejectMessagesFromDLMembers, ICollection`1 acceptMessagesFrom, ICollection`1 acceptMessagesFromDLMembers, ICollection`1 bypassModerationFrom, ICollection`1 bypassModerationFromDLMembers, ICollection`1 moderators, ICollection`1 managedBy, Boolean requiresAllSendersAreAuthenticated, Boolean moderationEnabled, RecipientType recipientType, ADRecipientSession session, ISimpleCache`2 senderMembershipCache)
at Microsoft.Exchange.Transport.Categorizer.DeliveryRestriction.CheckRestriction(ISimpleCache`2 memberOfGroupCache, Int64& maxRecipientMessageSize)
at Microsoft.Exchange.Transport.Categorizer.RestrictedItem.CheckDeliveryRestrictions(Expansion expansion)
at Microsoft.Exchange.Transport.Categorizer.GroupItem.CheckDeliveryRestrictions(Expansion expansion)
at Microsoft.Exchange.Transport.Categorizer.RestrictedItem.PreProcess(Expansion expansion)
at Microsoft.Exchange.Transport.Categorizer.RecipientItem.Process(Expansion expansion)
at Micosoft.Exchange.Transport.Categorizer.Resolver.ResolveAll()
at Microsoft.Exchange.Transport.Categorizer.CategorizerComponent.Stage2ResolveEngine(TransportMailItem transportMailItem, TaskContext taskContext)
at Microsoft.Exchange.Transport.Categorizer.TaskContext.Invoke()
at Microsoft.Exchange.Transport.Categorizer.CatScheduler.JobThreadEntry(Object ignored)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading._ThreadPoolWaitCallback.PerformWaitCallbackInternal(_ThreadPoolWaitCallback tpWaitCallBack)
at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback(Object state)

Log Name: Application
Source: MSExchange Common
Date: Date
Event ID: 4999
Task Category: General
Level: Error
Keywords: Classic
User: N/A
Computer: Computer
Description:
Watson report about to be sent for process id: Process ID, with parameters: E12, Build Type, Version Number, edgetransport, M.E.Data.Directory, M.E.D.D.LdapFilterBuilder.LdapFilterFromQueryFilter, M.E.D.Directory.ADFilterException, XXXX, Version Number.
ErrorReportingEnabled: False

CAUSE

This issue occurs because the string size of an LDAP filter has a limit of 32KB characters. When the filter exceeds this limit, an ADFilterException exception occurs.

RESOLUTION

To resolve this issue, install the following update rollup:
2661854 Description of Update Rollup 2 for Exchange Server 2010 Service Pack 2


Note After you apply the update rollup, the maximum string size of the LDAP filter is extended to 128KB characters.

STATUS

Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.

MORE INFORMATION

For more information about how to create a Dynamic Distribution Group in an Exchange organization, visit the following Microsoft website:
How to create a Dynamic Distribution Group in an Exchange organization
For more information about how to configure message delivery restrictions, visit the following Microsoft website:
How to configure message delivery restrictions
For more information about the msExchDynamicDLFilter attribute, visit the following Microsoft website:
General information about the msExchDynamicDLFilter attributes

Properties

Article ID: 2696857 - Last Review: April 20, 2012 - Revision: 2.0
APPLIES TO
  • Microsoft Exchange Server 2010 Service Pack 2, when used with:
    • Microsoft Exchange Server 2010 Enterprise
    • Microsoft Exchange Server 2010 Standard
Keywords: 
kbqfe kbfix kbsurveynew kbexpertiseinter KB2696857

Give Feedback

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com