Skip to Content.
Sympa Menu

grouper-users - Re: [grouper-users] PSPNG full sync 'Did not get all the way through the batch'

Subject: Grouper Users - Open Discussion List

List archive

Re: [grouper-users] PSPNG full sync 'Did not get all the way through the batch'


Chronological Thread 
  • From: "Bee-Lindgren, Bert" <>
  • To: Scott Koranda <>
  • Cc: grouper-users <>
  • Subject: Re: [grouper-users] PSPNG full sync 'Did not get all the way through the batch'
  • Date: Wed, 5 Sep 2018 17:05:42 +0000
  • Accept-language: en-US
  • Authentication-results: spf=none (sender IP is ) ;
  • Ironport-phdr: 9a23:PL4VAhf5rY1Nw0qdcGdFB2zylGMj4u6mDksu8pMizoh2WeGdxc27YBON2/xhgRfzUJnB7Loc0qyK6/+mATRIyK3CmUhKSIZLWR4BhJdetC0bK+nBN3fGKuX3ZTcxBsVIWQwt1Xi6NU9IBJS2PAWK8TW94jEIBxrwKxd+KPjrFY7OlcS30P2594HObwlSizexfbF/IA+qoQnNq8IbnZZsJqEtxxXTv3BGYf5WxWRmJVKSmxbz+MK994N9/ipTpvws6ddOXb31cKokQ7NYCi8mM30u683wqRbDVwqP6WACXWgQjxFFHhLK7BD+Xpf2ryv6qu9w0zSUMMHqUbw5Xymp4rx1QxH0ligIKz858HnWisNuiqJbvAmhrAF7z4LNfY2ZKOZycqbbcNgHR2ROQ9xRWjRBDI2icoUPE+QPM+VWr4b/plsBsRSxCBK2C+/z1jNFnGP60bEn3+knDArI3BYgH9ULsHnMotn4KbkdXv6swKfOzDXDae5Z2Tjn6IfWdBAtueyHUK9ufsrL1UkjGR7Og1KLpoP7JTOVyv4BvHOF4OV+TO6vj28nqwdsrTig3McjlI/Ji5kSylDF6SV12ok1KsekSEFlfdGkEIFcuD+HOItrW84vRXxjtig9yr0Do5G7fS4KxYwoxx7FbPyHbpCI7Qz5VOqLOzh4nGpldKq9hxa16keg0PD8Vs+v0FZKsCVFlt3MumoX1xzO7MiKTOZ28ES52TuXyQzc8P1ILV0xmKbGNpIt37s9lpQcvEjfAiP7nUv2g7GZe0o5/+Wl7ubqbqnoppOEKYN5ixzyPrgrl8CiDuk1MQ0DU3WV+eigyrHu+FD1TbtWgvEql6TUvo7WKMsYq6O8AwJY0IYu5ha6Ajqp0tkVkmQLIVdYdBKJkoTkP0nCIP7mAvq8n1ihlTJmyOvaMrDvA5jAK3jOnKr/cbt57kNT1Bc8wcxQ6p9RF74MI/b+V073udfFFBE2KRa0zPziCNhl1oMRR2aPAqiBPa3KrVKG4f4jLuaVaIILoTjxNuEp5/n1gnAng1MderSp3YcMZ3C/A/RmJViWbWD0gtcbFmcKohQxQ/D2iF2DVj5TYWy+X6Uh5jEnDIKmCoDDRoO3jLOd2ye7G4VaZmFACl+SDXflb5uIVO0QZC6PJ8JtjyEIWaWkRo8v2hyiqBP2xr9pLuXK9SAXqJfu2d136uHPmxE+7Tl0AN6c02GJQWF0hGQIRzou0a9kv0N90EuD3bJjjPNGC9Nf/vdJUgY8NZHBwOx6Ec79WgTac9eOSVamXs+qAT4rQdIt3dABf0Z9F8+8gR/ewiqmG6UVmKCTBJwo7qLc2GD8J8lny3bByakhl0cpQtFWOW27na5w6RLTB5XSnkWdlqaqbrgc3DXT+GuZzGqOul1YXxBqUaXDQ38felXaoc7n6UzfUr/9QYggZzBKztKeYohNcNTvgVwOEOzgP87XZW64s2i1DBeMgLiLady5VX8a2XCXIkUJ1iQS+3qJLwU4Qm+LrnjCRnQ6H1/1fwXm/OQ7rHK9QkAuwgeiaEx9kbW85hMehbqRR+5FjeFMgzsotzghRAX15NnREdfV4lM5JP8GM9og/FdK037YvAVhP5umarpvnUMabx8o4hH1zxsiDIJGnIBqt34swAdoYYOgmFJaP3L9v9jrP6HPbGz7/RShcanTj1vTysrQ8KoCrfA5rVnspgyvPk0j7zNo2sVY2Hva65nXX0If
  • Spamdiagnosticmetadata: NSPM
  • Spamdiagnosticoutput: 1:99

I'm glad that things are now working well!


Please create a Jira for the member-required/member-deletion behavior you're seeing, as it might just be a logging problem or you might be correct that it's relying on the full sync to repair the situation. Either way, I'll clean it up so it deletes the group immediately.



Thanks,

  Bert




From: Scott Koranda <>
Sent: Wednesday, September 5, 2018 6:18 AM
To: Bee-Lindgren, Bert
Cc: grouper-users
Subject: Re: [grouper-users] PSPNG full sync 'Did not get all the way through the batch'
 
Hi,

> otherJob.pspng_attributes_full.class = edu.internet2.middleware.grouper.pspng.FullSyncStarter
> otherJob.pspng_attributes_full._full.quartzCron = 0 * * * * ?

Ah. Thanks.

I read "otherJob" in the wiki page as a template, not literally.

I now have a working configuration (see below) that does exactly what I
want--it provisions groupOfNames and manages the isMemberOf attribute on
a person record.

I did notice, however, that even though I have

changeLog.consumer.pspng_groupOfNames.supportsEmptyGroups = false

when all users are deleted from a group I see in the log file

2018-09-05 09:52:20,160: [DefaultQuartzScheduler_Worker-4] ERROR LdapSystem.performLdapModify(418) -  - ldapMasterPool: Ldap modification failed
[org.ldaptive.LdapException@1485179000::resultCode=OBJECT_CLASS_VIOLATION, matchedDn=null, responseControls=null, referralURLs=null, messageId=-1, message=javax.naming.directory.SchemaViolationException: [LDAP: error code 65 - object class 'groupOfNames' requires attribute 'member']; remaining name 'cn=myorg_co:co_members_all,ou=groups,o=gn4phase1,dc=myorg,dc=org', providerException=javax.naming.directory.SchemaViolationException: [LDAP: error code 65 - object class 'groupOfNames' requires attribute 'member']; remaining name 'cn=myorg_co:co_members_all,ou=groups,o=gn4phase1,dc=myorg,dc=org']
    at org.ldaptive.provider.ProviderUtils.throwOperationException(ProviderUtils.java:55)
    at org.ldaptive.provider.jndi.JndiConnection.processNamingException(JndiConnection.java:619)
    at org.ldaptive.provider.jndi.JndiConnection.modify(JndiConnection.java:425)
    at edu.internet2.middleware.grouper.pspng.LdapSystem.performLdapModify(LdapSystem.java:384)
    at edu.internet2.middleware.grouper.pspng.LdapSystem.performLdapModify(LdapSystem.java:366)
    at edu.internet2.middleware.grouper.pspng.LdapProvisioner.makeIndividualLdapChanges(LdapProvisioner.java:552)
    at edu.internet2.middleware.grouper.pspng.LdapProvisioner.finishProvisioningBatch(LdapProvisioner.java:294)
    at edu.internet2.middleware.grouper.pspng.Provisioner.provisionBatchOfItems(Provisioner.java:1670)
    at edu.internet2.middleware.grouper.pspng.PspChangelogConsumerShim.processChangeLogEntries(PspChangelogConsumerShim.java:71)
    at edu.internet2.middleware.grouper.changeLog.ChangeLogHelper.processRecords(ChangeLogHelper.java:245)
    at edu.internet2.middleware.grouper.app.loader.GrouperLoaderType$5.runJob(GrouperLoaderType.java:638)
    at edu.internet2.middleware.grouper.app.loader.GrouperLoaderJob.runJob(GrouperLoaderJob.java:465)
    at edu.internet2.middleware.grouper.app.loader.GrouperLoaderJob.execute(GrouperLoaderJob.java:345)
    at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
    at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573)

I do see that the group is de-provisioned correctly, presumably by the "background"
full-sync provisioning "engine running which is automatically used when
incremental provisioning finds conflicting changes or otherwise is unable to
handle the changelog events."

So the ERROR message, though strictly accurate, is not helpful since it does
not represent the overall status of PSPNG.

Is this a known issue?

Thanks,

Scott K

P.S. Here is my full configuration:

ldap.ldapMasterPool.ldapUrl = ldap://ldap-master:389
ldap.ldapMasterPool.bindDn = uid=grouper,ou=system,dc=myorg,dc=org
ldap.ldapMasterPool.bindCredential = password

changeLog.consumer.pspng_groupOfNames.class = edu.internet2.middleware.grouper.pspng.PspChangelogConsumerShim
changeLog.consumer.pspng_groupOfNames.type = edu.internet2.middleware.grouper.pspng.LdapGroupProvisioner
changeLog.consumer.pspng_groupOfNames.supportsEmptyGroups = false
changeLog.consumer.pspng_groupOfNames.ldapPoolName = ldapMasterPool
changeLog.consumer.pspng_groupOfNames.quartzCron = 0/10 * * * * ?
changeLog.consumer.pspng_groupOfNames.memberAttributeName = member
changeLog.consumer.pspng_groupOfNames.memberAttributeValueFormat = ${ldapUser.getDn()}
changeLog.consumer.pspng_groupOfNames.groupSearchBaseDn = ou=groups,o=myorg,dc=myorg,dc=org
changeLog.consumer.pspng_groupOfNames.allGroupsSearchFilter = objectclass=groupOfNames
changeLog.consumer.pspng_groupOfNames.singleGroupSearchFilter = (&(objectclass=groupOfNames)(cn=${group.name}))
changeLog.consumer.pspng_groupOfNames.groupSearchAttributes=cn,objectclass
changeLog.consumer.pspng_groupOfNames.groupCreationLdifTemplate = dn: cn=${group.name}||cn: ${group.name}||objectclass: groupOfNames
changeLog.consumer.pspng_groupOfNames.userSearchBaseDn = ou=people,o=myorg,dc=myorg,dc=org
changeLog.consumer.pspng_groupOfNames.userSearchFilter = employeeNumber=${subject.id}
changeLog.consumer.pspng_groupOfNames.userSearchAttributes = dn,cn,uid,mail,eduPersonPrincipalName,objectclass,employeeNumber,isMemberOf

changeLog.consumer.pspng_attributes.class = edu.internet2.middleware.grouper.pspng.PspChangelogConsumerShim
changeLog.consumer.pspng_attributes.type = edu.internet2.middleware.grouper.pspng.LdapAttributeProvisioner
changeLog.consumer.pspng_attributes.quartzCron = 0/10 * * * * ?
changeLog.consumer.pspng_attributes.retryOnError = true
changeLog.consumer.pspng_attributes.ldapPoolName = ldapMasterPool
changeLog.consumer.pspng_attributes.provisionedAttributeName = isMemberOf
changeLog.consumer.pspng_attributes.provisionedAttributeValueFormat = ${group.name}
changeLog.consumer.pspng_attributes.userSearchBaseDn = ou=people,o=myorg,dc=myorg,dc=org
changeLog.consumer.pspng_attributes.userSearchFilter = employeeNumber=${subject.id}
changeLog.consumer.pspng_attributes.userSearchAttributes = dn,cn,uid,mail,eduPersonPrincipalName,objectclass,employeeNumber,isMemberOf
changeLog.consumer.pspng_attributes.allProvisionedValuesPrefix = *
changeLog.consumer.pspng_attributes.grouperIsAuthoritative = true

otherJob.pspng_groupOfNames_full.class = edu.internet2.middleware.grouper.pspng.FullSyncStarter
#otherJob.pspng_groupOfNames_full.quartzCron = 0 0 0 * * ?   #Every midnight
otherJob.pspng_groupOfNames_full.quartzCron = 0 * * * * ?    #Every minute for testing

otherJob.pspng_attributes_full.class = edu.internet2.middleware.grouper.pspng.FullSyncStarter
#changeLog.consumer.pspng_attributes.quartzCron = 0 0 0 * * ?   #Every midnight
otherJob.pspng_attributes_full.quartzCron = 0 * * * * ?         #Every minute for testing



Archive powered by MHonArc 2.6.19.

Top of Page