Details
-
Improvement
-
Resolution: Unresolved
-
Minor
-
None
-
2.5.52
-
None
-
None
Description
And also this error due to which loader jobs are failingAnd also this error due to which loader jobs are failingedu.internet2.middleware.grouper.exception.AttributeNotFoundException: Cant find attribute: grouperLoaderDisplayNameSyncType at edu.internet2.middleware.grouper.Group.getAttributeValue(Group.java:2899) at edu.internet2.middleware.grouper.app.loader.GrouperLoaderType.attributeValueOrDefaultOrNull(GrouperLoaderType.java:2496) at edu.internet2.middleware.grouper.app.loader.GrouperLoaderJob.runJob(GrouperLoaderJob.java:443) at edu.internet2.middleware.grouper.app.loader.GrouperLoaderJob.execute(GrouperLoaderJob.java:344) at org.quartz.core.JobRunShell.run(JobRunShell.java:202) at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573)37 replies
Chris Hyzer 4 hours agoI believe this is mentioned in the release notes for 2.5.53 and fixed in 2.5.54, can you please confirm?
Paul Rubenis 4 hours agoWe have upgraded to 2.5.54 and still see this error.
Chris Hyzer 3 hours agodo you see this attribute?image.png image.png
Sudheer Singidi 3 hours agoNo. We are not seeing it
Paul Rubenis 3 hours agoSo in our prod, 2.5.52, that attr does not exist either.
Paul Rubenis 3 hours agoBut those loader jobs do succeed.
Sudheer Singidi 3 hours ago@mchyzer IN 2019, We had similar issues where attributes were not created by default. SO you gave me few GSH commands to run..edu.internet2.middleware.grouper.misc.GrouperStartup.startup()If that doesnt work, try:edu.internet2.middleware.grouper.misc.GrouperStartup.initLoaderType()
Sudheer Singidi 3 hours agoI ran these now, and I see that attribute now
Paul Rubenis 3 hours agoa number of new types were created it seems
Sudheer Singidi 3 hours agoyup
Sudheer Singidi 3 hours agoand things are looking good so far…verifying couple of other things
Chris Hyzer 3 hours agodo you have a full stack of was that the full stack?
Sudheer Singidi 3 hours agothat was the full stack if you are referring to the code block above
Sudheer Singidi 3 hours agoThis didn’t do anything:edu.internet2.middleware.grouper.misc.GrouperStartup.startup()
Sudheer Singidi 3 hours agoThis command seems to be creating those attributes. but the output was not helpful to understand whether it did something or notedu.internet2.middleware.grouper.misc.GrouperStartup.initLoaderType()
Sudheer Singidi 3 hours agoOutput:groovy:000> :load '/swadm/grouper-2.5.54/grouper.api/WEB-INF/classes/groovysh.profile'groovy:000> edu.internet2.middleware.grouper.misc.GrouperStartup.startup()===> falsegroovy:000> edu.internet2.middleware.grouper.misc.GrouperStartup.initLoaderType()===> null
Sudheer Singidi 2 hours agoHow can we make sure that any new attributes in the future gets created by default ?
Sudheer Singidi 2 hours agoWe have this property set to true:loader.autoadd.typesAttributes
Chris Hyzer 2 hours agowhat do you have this set to in grouper.properties?legacyAttribute.attributeDef.prefix(edited)
Chris Hyzer 2 hours agoimage.png image.png
Sudheer Singidi 2 hours agoIt is set to :legacyAttribute.attributeDef.prefix=legacyAttributeDef_
Sudheer Singidi 2 hours agoin grouper.base.properties
Chris Hyzer 2 hours agoand its not in the database override right?
Sudheer Singidi 2 hours agoI don’t think so
Chris Hyzer 2 hours agocan you show me this screenshot?image.png image.png
Chris Hyzer 2 hours agoalso show me this screenshot (search for grouperLoaderGroupQuery and shoe results)image.png image.png
Sudheer Singidi 2 hours agoimage.png image.png
Sudheer Singidi 2 hours agoimage.png image.png
Chris Hyzer 1 hour agocan you run this script in GSH and let me know the value at each line?import edu.internet2.middleware.grouper.cfg.GrouperConfig;String attributeDefPrefix = GrouperConfig.retrieveConfig().propertyValueStringRequired("legacyAttribute.attributeDef.prefix");AttributeDefName legacyAttribute = GrouperDAOFactory.getFactory().getAttributeDefName().findLegacyAttributeByName("grouperLoaderGroupQuery", false);legacyAttribute = GrouperDAOFactory.getFactory().getAttributeDefName().findLegacyAttributeByName("grouperLoaderDisplayNameSyncType", false);Group adminGroup = GroupFinder.findByName(GrouperConfig.retrieveConfig().propertyValueString("groups.wheel.group"), true);adminGroup.getAttributeValue("grouperLoaderDisplayNameSyncType", false, false);Please also verify grouper version on GSH startupGrouper starting up: version: 2.5.54, build date: 2021/07/27 17:42:20 +0000, env: TESTHere is a sample outputgroovy:000> String attributeDefPrefix = GrouperConfig.retrieveConfig().propertyValueStringRequired("legacyAttribute.attributeDef.prefix");===> legacyAttributeDef_groovy:000> AttributeDefName legacyAttribute = GrouperDAOFactory.getFactory().getAttributeDefName().findLegacyAttributeByName("grouperLoaderGroupQuery", false);===> AttributeDefName[name=penn:etc:legacy:attribute:legacyAttribute_grouperLoaderGroupQuery,uuid=657e5d343f024a359b81f3a239f7ca0c]groovy:000> legacyAttribute = GrouperDAOFactory.getFactory().getAttributeDefName().findLegacyAttributeByName("grouperLoaderDisplayNameSyncType", false);===> AttributeDefName[name=penn:etc:legacy:attribute:legacyAttribute_grouperLoaderDisplayNameSyncType,uuid=1ff029f40ced467281ff9444cd68c211]groovy:000> Group adminGroup = GroupFinder.findByName(GrouperConfig.retrieveConfig().propertyValueString("groups.wheel.group"), true);===> Group[name=penn:etc:sysAdminGroup,uuid=02c9399a-04e2-48f5-862a-6f5f6b34dc45]groovy:000> adminGroup.getAttributeValue("grouperLoaderDisplayNameSyncType", false, false);ERROR edu.internet2.middleware.grouper.exception.AttributeNotFoundException:Group penn:etc:sysAdminGroup doesn't have attribute: grouperLoaderDisplayNameSyncType at edu.internet2.middleware.grouper.Group.getAttributeValue (Group.java:2907) at edu.internet2.middleware.grouper.Group$getAttributeValue.call (Unknown Source)
Sudheer Singidi 1 hour agoSure. Here’s the output:groovy:000> :load '/swadm/grouper-2.5.54/grouper.api/WEB-INF/classes/groovysh.profile'groovy:000> import edu.internet2.middleware.grouper.cfg.GrouperConfig;===> org.codehaus.groovy.tools.shell.CommandSupport, org.codehaus.groovy.tools.shell.Groovysh, edu.internet2.middleware.grouper., edu.internet2.middleware.grouper.app.gsh., edu.internet2.middleware.grouper.privs., edu.internet2.middleware.grouper.misc., edu.internet2.middleware.grouper.app.loader.ldap., edu.internet2.middleware.grouper.attr., edu.internet2.middleware.grouper.attr.assign., edu.internet2.middleware.grouper.attr.finder., edu.internet2.middleware.grouper.attr.value., edu.internet2.middleware.grouper.audit., edu.internet2.middleware.grouper.client., edu.internet2.middleware.grouper.entity., edu.internet2.middleware.grouper.externalSubjects., edu.internet2.middleware.grouper.group., edu.internet2.middleware.grouper.ldap., edu.internet2.middleware.grouper.app.loader., edu.internet2.middleware.grouper.xml., edu.internet2.middleware.grouper.registry., edu.internet2.middleware.grouper.app.usdu., edu.internet2.middleware.grouper.app.misc., edu.internet2.middleware.grouper.rules., edu.internet2.middleware.grouper.hibernate., edu.internet2.middleware.grouper.permissions., edu.internet2.middleware.grouper.util., edu.internet2.middleware.grouper.xml.export., edu.internet2.middleware.subject., edu.internet2.middleware.subject.provider., edu.internet2.middleware.grouper.userData., edu.internet2.middleware.grouper.messaging., edu.internet2.middleware.grouper.filter., edu.internet2.middleware.grouper.authentication., edu.internet2.middleware.grouper.j2ee., edu.internet2.middleware.grouper.cfg.GrouperConfiggroovy:000> String attributeDefPrefix = GrouperConfig.retrieveConfig().propertyValueStringRequired("legacyAttribute.attributeDef.prefix");===> legacyAttributeDef_groovy:000> AttributeDefName legacyAttribute = GrouperDAOFactory.getFactory().getAttributeDefName().findLegacyAttributeByName("grouperLoaderGroupQuery", false);===> AttributeDefName[name=etc:legacy:attribute:legacyAttribute_grouperLoaderGroupQuery,uuid=e47d658db07340da97341e464647bdd6]groovy:000> legacyAttribute = GrouperDAOFactory.getFactory().getAttributeDefName().findLegacyAttributeByName("grouperLoaderDisplayNameSyncType", false);===> AttributeDefName[name=etc:legacy:attribute:legacyAttribute_grouperLoaderDisplayNameSyncType,uuid=0ae3a1ac6f6943b5b69c2a37ab92aa06]groovy:000> Group adminGroup = GroupFinder.findByName(GrouperConfig.retrieveConfig().propertyValueString("groups.wheel.group"), true);===> Group[name=etc:grouperadmins,uuid=ef9629bdb46045bb9c790d2cfbb29cff]groovy:000> adminGroup.getAttributeValue("grouperLoaderDisplayNameSyncType", false, false);ERROR edu.internet2.middleware.grouper.exception.AttributeNotFoundException:Group etc:grouperadmins doesn't have attribute: grouperLoaderDisplayNameSyncType at edu.internet2.middleware.grouper.Group.getAttributeValue (Group.java:2907) at edu.internet2.middleware.grouper.Group$getAttributeValue.call (Unknown Source)groovy:000>
Sudheer Singidi 1 hour agoand we confirmed that the version is 2.5.54
Chris Hyzer 20 minutes agocan you bounce your UI then? I dont know why its finding the attribute now, but wasnt in your other stack?
Paul Rubenis 14 minutes agoWe ran the command :edu.internet2.middleware.grouper.misc.GrouperStartup.initLoaderType()and it created the legacy attributes that were missing (edited)
Paul Rubenis 13 minutes agoThe two issues in both dev/tst that we reported went away after running that cmd
Paul Rubenis 11 minutes agolegacyAttribute_grouperLoaderDisplayNameSyncBaseFolderName legacyAttribute_grouperLoaderDisplayNameSyncLevels legacyAttribute_grouperLoaderDisplayNameSyncType
Paul Rubenis 11 minutes agoThose were created
Paul Rubenis 8 minutes agoIn dev/tst we have 17 legacy attrs, in prd (2.5.52) we have 14@Shilen Patel there is no hard in running this right? how should we handle this? run that method more aggressively in startup? or have an upgrade task for it?
edu.internet2.middleware.grouper.misc.GrouperStartup.initLoaderType()I dont know why penn and the demo server and our dev env didnt need this, something about the state of the conversion tables... anyways, I added an upgrade step