[kmail2] [Bug 323272] New: Querying a Microsoft Exchange's Active Directory via LDAP is extremely slow
Thiago Macieira
thiago at kde.org
Wed Aug 7 23:32:50 BST 2013
https://bugs.kde.org/show_bug.cgi?id=323272
Bug ID: 323272
Summary: Querying a Microsoft Exchange's Active Directory via
LDAP is extremely slow
Classification: Unclassified
Product: kmail2
Version: Git (master)
Platform: Compiled Sources
OS: Linux
Status: UNCONFIRMED
Severity: normal
Priority: NOR
Component: composer
Assignee: kdepim-bugs at kde.org
Reporter: thiago at kde.org
Whenever an LDAP query is sent to a Microsoft Exchange's Active Directory via
LDAP, the results are extremely slow to come. This is definitely an Exchange
bug -- it appears to timeout in searching and then replies after 120 seconds.
However, there's a specific field of the LDAP query that triggers it and it can
be worked around.
In (kdepim) libkdepim/ldap/ldapclientsearch.cpp, we have:
const QString filter = QString(
"&(|(objectclass=person)(objectclass=groupOfNames)(mail=*))"
"(|(cn=%1*)(mail=%2*)(mail=*@%3*)(givenName=%4*)(sn=%5*))" )
.arg( d->mSearchText ).arg( d->mSearchText )
.arg( d->mSearchText ).arg( d->mSearchText
).arg( d->mSearchText );
The field that causes the slowdown is the (mail=*@%3*) part. In fact, it
appears that Exchange is slow for any query that starts with * in the field. If
that part of the query is removed, the server replies in reasonable time.
Reproducible: Always
Steps to Reproduce:
1. Set up LDAP to an Exchange AD server
2. Open a KMail Composer window
3. Start typing someone's name, surname or email address
Actual Results:
No search results are shown for 2 minutes. That's because no network traffic
occurs for those 2 minutes: the server does not reply.
Expected Results:
Search results come quickly.
PS: it's not necessary to have 4 .arg() calls with the same value. Replacing
all of the fields with %1 and using one .arg() call is enough.
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the Kdepim-bugs
mailing list