You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@directory.apache.org by "Jonathan Wilbur (Jira)" <ji...@apache.org> on 2022/02/03 04:18:00 UTC

[jira] [Created] (DIRSTUDIO-1294) ADS queries all first-level DSEs one-by-one at the start of the session

Jonathan Wilbur created DIRSTUDIO-1294:
------------------------------------------

             Summary: ADS queries all first-level DSEs one-by-one at the start of the session
                 Key: DIRSTUDIO-1294
                 URL: https://issues.apache.org/jira/browse/DIRSTUDIO-1294
             Project: Directory Studio
          Issue Type: Bug
    Affects Versions: 2.0.0-M17
         Environment: OS Name:                   Microsoft Windows 10 Pro
OS Version:                10.0.19044 N/A Build 19044
OS Manufacturer:           Microsoft Corporation
OS Configuration:          Standalone Workstation
OS Build Type:             Multiprocessor Free
Registered Owner:          Windows User
Registered Organization:
Product ID:                00330-80000-00000-AA967

            Reporter: Jonathan Wilbur


I have an LDAP server that has many first-level DSEs. (One for each country.) When I connect  / start a session / click on the "DIT Root," it takes about 30 seconds the application to display entries. When I look in the LDAP server's logs, I see that ADS:
 * Makes a base-object-scoped request for the Root DSE.
 * Makes a base-object-scoped request for the Root DSE's subschema subentry.
 * Makes a one-level-scoped request for the Root DSE's subordinates.
 * {color:#FF0000}Makes a single base-object-scoped request for each of the Root DSE's subordinates.{color}

The last bullet point is the problem, and from what I can see it is totally unnecessary: both the one-level search (bullet point 3) and the one-by-one base-object searches (bullet point 4) both request the same single attribute: `objectClass`.

This probably went unnoticed, because in most LDAP servers, there is just a single subordinate under the root, such as `DC=com` or `O=Acme, Inc.` or `C=US`, but in my case, I have several hundred. This means that, after querying all of these entries with the one-level search, it performs several hundred base-object searches for the same exact information again before the UI becomes responsive.
h3. Code Location

I believe this issue stems from this section of code within {{{}plugins\ldapbrowser.core\src\main\java\org\apache\directory\studio\ldapbrowser\core\jobs\InitializeRootDSERunnable.java{}}}:

 
{{        for ( IEntry entry : rootDseEntries.values() )}}
{{        {}}
{{            initBaseEntry( entry, dummyMonitor );}}
{{        }}}
I am currently experimenting with commenting out this section of the code, and it didn't seem to work, but I am not really sure that I actually fully rebuilt the application, and I also get the impression that there are actually two code locations that do this, but I have yet to confirm this.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@directory.apache.org
For additional commands, e-mail: dev-help@directory.apache.org