Skip to Content.
Sympa Menu

grouper-users - Re: [grouper-users] PSPNG ChangeLog issue where group is delete, or re-named

Subject: Grouper Users - Open Discussion List

List archive

Re: [grouper-users] PSPNG ChangeLog issue where group is delete, or re-named


Chronological Thread 
  • From: "Bee-Lindgren, Bert" <>
  • To: Sean Mason <>, Marwan Shaher <>, "" <>
  • Subject: Re: [grouper-users] PSPNG ChangeLog issue where group is delete, or re-named
  • Date: Tue, 31 Jan 2017 18:39:03 +0000
  • Accept-language: en-US
  • Authentication-results: spf=none (sender IP is ) ;
  • Ironport-phdr: 9a23:h3L9kBSoOZNj5+8+xFmFX5SwY9psv+yvbD5Q0YIujvd0So/mwa67ZRyBt8tkgFKBZ4jH8fUM07OQ6PG8HzJdqs/Y6zgrS99lb1c9k8IYnggtUoauKHbQC7rUVRE8B9lIT1R//nu2YgB/Ecf6YEDO8DXptWZBUhrwOhBoKevrB4Xck9q41/yo+53Ufg5EmCexbal8IRiyogjdrMgbjIttJqos1xfErGZDdvhLy29vOV+dhQv36N2q/J5k/SRQuvYh+NBFXK7nYak2TqFWASo/PWwt68LlqRfMTQ2U5nsBSWoWiQZHAxLE7B7hQJj8tDbxu/dn1ymbOc32Sq00WSin4qx2RhLklDsLOjgk+2zMlMd+kLxUrw6gpxxnwo7bfoeVNOZlfqjAed8WXHdNUtpNWyBEBI63cokBAPcbPetAr4fzuUYArQewCwevCuPgyD5IiWP50qAhyestDR3K0RY8E94SrXjZqsj+OqcIUeCyyanF1TvPYu5I1jjj8YTGdBEhofeRUrJ/a8re108vGxvYhViNt4PlJS+V2uoQuGWc9OVvS/ivi3I9pw5qvDeg2N4gio3IhoIT11/E+j95z5gzJdCjT057YMKkHIFfty6AK4t5XN8tQ2FytCkk17IGpIe2cS4Xw5opwB7fbuaIc4mO4h/7VeaRJyt4i2x/eLK5mRmy7VasxvfiWcapzVZHqDdOnNrUtn0VyRDc8NSLRuZ480u8xDqDygXe6u9LLEwoiabWLpAhzaA/m5cStEnOGy37lFvog6OOaEkp+/Wk5/jib7n7qZKRNIp5hhzwMqgyhMCyBPk0PwYSU2SH/Omx2qPv8EL6TbhPjvA7kKnUvZDfKMkUpKO0DBJZ34M+5xaxEjupy9IVlmQdIl1fYhKIlY3pNknOIP/mCfe/hEyhni93yv7BIrHtHIzBI2XFnrv/ZLp97FVTxxQpwdBY+pJUFqoOIPXuWk/3qdPUFAc5Mxazw+b7Ftpyyp8eWWOIAq+fKq/StkKI5v4rI+mLY48VuyzxJOQi5/7rlXM5mFkdcre13ZYPdny3BOhqL1icbHbxn9sNDGIHvgQxQeD2lFGPVDBTaGi9Uq894zw2DYCrAZndSYy1hbyOxia7HplYZmBcDVCMFG/leJ6aVPcWdCKeONRunSIaWrS4T48h1BeuuxL1y7p9MOXU/DYVtZXi1Nhp/eHTmgs99SBqAMuB02GBVX97kX4VRzMuxqBwvVR9ykuf0ah/m/FYGsZT5/RUUgciK5Hc1fV2C83pWg3fZNeJU02rQtGnATEqUtIx2MECb1x8G9WkkhDMwTCqA7kLmLyXGpA46LzT0GXsJ5U193GT76QoiREDS9BIMyXynaN28U7WDpXOlW2EiK+2eL4Y2ymL/27ViSKrtVtHWQg4aqXMXX0FLh/TpM7m70WEVL+nCbk9GiBGzcmYI6dNLPDFsAMCDL3sItPDe2+r3nqrCAyT7rKKcIfwfWgBhmPQBFVO21Qc53GbLQUkQzq6rnjFJD1oCV/1ZU7wq69zpG7tHWEuyATfJWds2v+R+xgZiuaRTbdb9L8epG1p/z95Bkr71d/bTt6BoQZuZqhaSdQ8/BFI3H7UvAw7M5C9efMxzmUCehh66hu9ny58DZ9NxI1z9Csn
  • Spamdiagnosticmetadata: NSPM
  • Spamdiagnosticoutput: 1:99

Thank you for the details. I've created GRP-1479 from them.


The problem with the Create-Delete-Recreate-etc processes are that PSPNG is handling a Group-Creation event with whatever information was in Grouper, which is different and insufficient and a bad idea if the group has since been deleted.


PSPNG is already "smart" enough to look for deleted in groups in various other event types, but not in the Group-Creation events. I've put the necessary checks into place, and I'll package up a patch after this change passes the unit tests this afternoon.


This was somehow easier for me to find than the renaming problems, which I'm continuing to investigate. Of course, it is remotely possible that the patch from GRP-1479 will help that as well.





From: <> on behalf of Sean Mason <>
Sent: Tuesday, January 31, 2017 9:24 AM
To: Marwan Shaher;
Subject: RE: [grouper-users] PSPNG ChangeLog issue where group is delete, or re-named
 
I've interpreted things differently, or perhaps am working under a different set of circumstances.  The AD group had not been created before the Grouper group was deleted in my environment.  It appears to me that it never had a chance to be created.  Instead, a Grouper Group was created, a few members added, and then the group was quickly deleted, which created about 5 changelog entries yet to be processed.

The PSPNG provisioner comes along and attempts to provision the new group based on those changelog entries, and continue over the next several changelog entries to add members, and then eventually delete the group.  Except when it attempts to resolve group information from grouper itself in that first "create" changelog entry, null is returned since that group isn't in Grouper anymore, and the JEXL scripts to resolve the LDAP group choke on that 'null' Group that is returned.

For example, you noted the JEXL _expression_: (&(objectclass=group)(cn=${group.extension}))
In my environment ${group.extension} throws a NullPointerException because 'group' is 'null', I assume because it no longer exists since it was deleted before the ChangeLog transaction was attempted.

I'm not certain if the internals of PSPNG should take care of this situation internally, or perhaps there is some configuration or more involved JEXL should handle this particular situation.

-----Original Message-----
From: [] On Behalf Of Marwan Shaher
Sent: Friday, January 27, 2017 6:14 PM
To: ; Sean Mason <>
Subject: Re: [grouper-users] PSPNG ChangeLog issue where group is delete, or re-named

Sean,
I'm trying to troubleshoot a somewhat similar issue in our dev environment. I think I've narrowed it down to the "singleGroupSearchFilter" parameter and how it works with the logic in the edu/internet2/middleware/grouper/pspng/GrouperGroupInfo.java code. I have the singleGroupSearchFilter parameter in grouper-loader.properties set to
(&(objectclass=group)(cn=${group.extension}))
That deletes the groups from AD if they were deleted in the Grouper UI, as long as the groups didn't have any subjects added to them at all.
I've also tried it with
(&(objectclass=group)(cn=${grouperUtil.extensionFromName(name)}))
But, that doesn't seem to delete the groups whether they had subjects added to them at any point in time, or not.

It seems to me though from your log post that the singleGroupSearchFilter parameter is not set to an ldap filter ? If I'm reading it correctly, the parameter is set to "dn:
cn=${grouperUtil.extensionFromName(name)} sAMAccountName:
${grouperUtil.extensionFromName(name)} cn:
${grouperUtil.extensionFromName(name)} objectclass: group " ?

Thanks,

- Marwan






On 01/23/2017 09:28 AM, Sean Mason wrote:
> Hi There,
>
>
>
> I have a pilot instance of Grouper running, with PSPNG provisioning
> group memberships to active directory for an academic department.
>
>
>
> I'm having an issue with the ChangeLog consumer tripping over groups
> that were created, then deleted or renamed.
>
> When the consumer gets to the transaction in the log, the result is:
>
>
>
> 2017-01-23 11:02:04,488: [DefaultQuartzScheduler_Worker-4] INFO
> LdapGroupProvisioner.createGroup(251) -  - Creating LDAP group for
> GrouperGroup: null
>
>
>
> (which makes sense to me, since the group no longer exists).
>
> However, this throws a wrench in the JEXL evaluation:
>
>
>
> 2017-01-23 11:02:04,495: [DefaultQuartzScheduler_Worker-4] ERROR
> Provisioner.evaluateJexlExpression(523) -  - Jexl _expression_ dn:
> cn=${grouperUtil.extensionFromName(name)}
>
> sAMAccountName: ${grouperUtil.extensionFromName(name)}
>
> cn: ${grouperUtil.extensionFromName(name)}
>
> objectclass: group could not be evaluated for subject 'null/null' and
> group 'null/null' which used variableMap
> '{userSearchBaseDn=OU=people,DC=...,
> provisionerType=LdapGroupProvisioner,
> groupCreationBaseDn=OU=Grouper,OU=...,
> utils=edu.internet2.middleware.grouper.pspng.PspJexlUtils@193221e,
> provisionerName=pspng_nexus, groupSearchBaseDn=OU=Grouper,...'
>
> 2017-01-23 11:02:04,497: [DefaultQuartzScheduler_Worker-4] ERROR
> ChangeLogHelper.processRecords(255) -  - Error
>
> java.lang.NullPointerException
>
>         at java.io.StringReader.<init>(StringReader.java:50)
>
>         at
> edu.internet2.middleware.grouper.pspng.LdapGroupProvisioner.createGrou
> p(LdapGroupProvisioner.java:258)
>
>         at
> edu.internet2.middleware.grouper.pspng.LdapGroupProvisioner.createGrou
> p(LdapGroupProvisioner.java:54)
>
>         at
> edu.internet2.middleware.grouper.pspng.Provisioner.provisionItem(Provi
> sioner.java:887)
>
>         at
> edu.internet2.middleware.grouper.pspng.Provisioner.provisionBatchOfIte
> ms(Provisioner.java:1299)
>
>         at
> edu.internet2.middleware.grouper.pspng.PspChangelogConsumerShim.proces
> sChangeLogEntries(PspChangelogConsumerShim.java:71)
>
>         at
> edu.internet2.middleware.grouper.changeLog.ChangeLogHelper.processReco
> rds(ChangeLogHelper.java:245)
>
>         at
> edu.internet2.middleware.grouper.app.loader.GrouperLoaderType$4.runJob
> (GrouperLoaderType.java:629)
>
>         at
> edu.internet2.middleware.grouper.app.loader.GrouperLoaderJob.runJob(Gr
> ouperLoaderJob.java:416)
>
>         at
> edu.internet2.middleware.grouper.app.loader.GrouperLoaderJob.execute(G
> rouperLoaderJob.java:318)
>
>         at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
>
>         at
> org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.ja
> va:573)
>
>
>
> Then:
>
> 2017-01-23 11:02:04,501: [DefaultQuartzScheduler_Worker-4] ERROR
> ChangeLogHelper.processRecords(286) -  - Did not get all the way
> through the batch! -1 != 2884196
>
>
>
> Which puts us in a state where the same transactions are tried again
> and again without moving forward.  I tried setting "retryOnError" to
> false, but that did not appear to change anything.  I suspect that
> setting may only affect "catchable" errors?  In any case, even if we
> get past this transaction, there are a number right after representing
> memberships being added to the group that could also be tried, and
> will likely fail...
>
>
>
> Have I missed a configuration that will allow the PSPNG to skip over
> these types of entries, or at the very least, move on from this error?
>
> I am on the latest patches of both the API, and PSPNG, and willing to
> experiment to get this going.
>
>
>
> Thanks,
>
> Sean.
>



Archive powered by MHonArc 2.6.19.

Top of Page