Skip to Content.
Sympa Menu

grouper-users - Re: [grouper-users] PSPNG: syncing fails with ENTRY_ALREADY_EXISTS when group has more than 1500 members

Subject: Grouper Users - Open Discussion List

List archive

Re: [grouper-users] PSPNG: syncing fails with ENTRY_ALREADY_EXISTS when group has more than 1500 members


Chronological Thread 
  • From: Dominique Petitpierre <>
  • To: <>
  • Subject: Re: [grouper-users] PSPNG: syncing fails with ENTRY_ALREADY_EXISTS when group has more than 1500 members
  • Date: Thu, 24 Sep 2020 05:41:46 +0200
  • Organization: University of Geneva

Hello,

On 24.09.20 04:57, Dominique Petitpierre wrote:
Currently I am testing a fix: it looks like it corrects the problem and makes the full sync job finish quicker.

No spurious LDAP MOD so far (no more ENTRY_ALREADY_EXISTS warnings), and it resolved the leftover test discrepancy.
Still waiting for the second long full sync to finish.

Here is the proposed fix (original from https://github.com/Internet2/grouper/archive/grouper_2_4_0-a95-u57-w11-p12.zip):

diff -c ./src/main/java/edu/internet2/middleware/grouper/pspng/LdapSystem.java{.01,}
*** ./src/main/java/edu/internet2/middleware/grouper/pspng/LdapSystem.java.01    2020-03-24 19:45:37.000000000 +0100
--- ./src/main/java/edu/internet2/middleware/grouper/pspng/LdapSystem.java    2020-09-24 00:53:41.808924113 +0200
***************
*** 738,750 ****
        // Turn on attribute-value paging if this is an active directory target
        if ( isActiveDirectory() ) {
          LOG.debug("Using attribute-value paging");
!         request.setSearchEntryHandlers(new RangeEntryHandler());
        }
! 
!       request.setSearchEntryHandlers(
!               new LdapSearchProgressHandler(approximateNumResultsExpected, LOG, "Performing ldap search"),
!               callback);
! 
        // Perform search. This is slightly different if paging is enabled or not.
        if ( isSearchResultPagingEnabled() ) {
          PagedResultsClient client = new PagedResultsClient(conn, getSearchResultPagingSize());
--- 738,755 ----
        // Turn on attribute-value paging if this is an active directory target
        if ( isActiveDirectory() ) {
          LOG.debug("Using attribute-value paging");
!         request.setSearchEntryHandlers(
!                 new RangeEntryHandler(),
!                 new LdapSearchProgressHandler(approximateNumResultsExpected, LOG, "Performing ldap search"),
!                 callback);
        }
!       else {
!         LOG.debug("Not using attribute-value paging");
!         request.setSearchEntryHandlers(
!                 new LdapSearchProgressHandler(approximateNumResultsExpected, LOG, "Performing ldap search"),
!                 callback);
!       }
!       
        // Perform search. This is slightly different if paging is enabled or not.
        if ( isSearchResultPagingEnabled() ) {
          PagedResultsClient client = new PagedResultsClient(conn, getSearchResultPagingSize());

Comments from the developers are welcome!
In particular if it is OK to put RangeEntryHandler first in the list of SearchEntryHandlers.

Regards.

-- 
Mr Dominique Petitpierre, user=Dominique.Petitpierre domain=unige.ch
IT Division, University of Geneva, Switzerland





Archive powered by MHonArc 2.6.19.

Top of Page