Details
-
Bug
-
Resolution: Unresolved
-
Minor
-
None
-
4.12.0
-
None
Description
In an attribute provisioner with total 67000 memberships, failing with array too large. It looks like it's creating an array with 2 billion+ elements. The daemon container is 12G; we can make it bigger but it seems excessive
java.lang.RuntimeException: provisionerClass: LdapSync, configId: ldapFacstaffExampleEduPersonAffiliation, provisioningType: fullProvisionFull, state: retrieveIndividualEntitiesIfNeeded, retrieveSyncGroupsMillis: 2, syncGroupCount: 74, retrieveSyncEntitiesMillis: 213, syncEntityCount: 16340, retrieveSyncMshipsMillis: 599, syncMshipCount: 77442, propagateProvisioningAttributes_millis: 5163, retrieveGrouperGroupsMillis: 12, grouperGroupCount: 74, retrieveGrouperEntitiesMillis: 3224, grouperEntityCount: 48953, retrieveGrouperMshipsMillis: 9951, grouperMshipCount: 67106, provisioningEntitiesToDelete: 12, provisioningMshipsToDelete: 9596, retrieveDataPass1_millis: 13694, grouperGroupsRetrieved: 74, grouperEntitiesRetrieved: 48953, grouperMembershipsRetrieved: 67106, exception: java.lang.RuntimeException: java.lang.OutOfMemoryError: Required array length 2147483639 + 11 is too large,
|
Problem in job: retrieveEntities_ldapFacstaffExampleEduPersonAffiliation_v5yjxnoq
|
at edu.internet2.middleware.grouper.util.GrouperCallable.throwRuntimeException(GrouperCallable.java:103)
|
at edu.internet2.middleware.grouper.util.GrouperFuture.get(GrouperFuture.java:104)
|
at edu.internet2.middleware.grouper.util.GrouperFuture.waitForJob(GrouperFuture.java:190)
|
at edu.internet2.middleware.grouper.util.GrouperUtil.executorServiceSubmit(GrouperUtil.java:14446)
|
at edu.internet2.middleware.grouper.app.provisioning.targetDao.GrouperProvisionerTargetDaoAdapter.retrieveEntities(GrouperProvisionerTargetDaoAdapter.java:2667)
|
at edu.internet2.middleware.grouper.app.provisioning.GrouperProvisioningLogic.retrieveIndividualTargetEntitiesIfNeeded(GrouperProvisioningLogic.java:759)
|
at edu.internet2.middleware.grouper.app.provisioning.GrouperProvisioningLogic.retrieveFullIndividualTargetGroupsAndEntities(GrouperProvisioningLogic.java:526)
|
at edu.internet2.middleware.grouper.app.provisioning.GrouperProvisioningLogic.provisionFull(GrouperProvisioningLogic.java:157)
|
at edu.internet2.middleware.grouper.app.provisioning.GrouperProvisioningType$1.provision(GrouperProvisioningType.java:41)
|
at edu.internet2.middleware.grouper.app.provisioning.GrouperProvisioningLogic.provision(GrouperProvisioningLogic.java:77)
|
at edu.internet2.middleware.grouper.app.provisioning.GrouperProvisioner.provision(GrouperProvisioner.java:855)
|
at edu.internet2.middleware.grouper.app.provisioning.GrouperProvisioningFullSyncJob.runFullSync(GrouperProvisioningFullSyncJob.java:56)
|
at edu.internet2.middleware.grouper.app.provisioning.GrouperProvisioningFullSyncJob$1.callback(GrouperProvisioningFullSyncJob.java:30)
|
at edu.internet2.middleware.grouper.GrouperSession.callbackGrouperSession(GrouperSession.java:1063)
|
at edu.internet2.middleware.grouper.GrouperSession.internal_callbackRootGrouperSession(GrouperSession.java:1132)
|
at edu.internet2.middleware.grouper.GrouperSession.internal_callbackRootGrouperSession(GrouperSession.java:1099)
|
at edu.internet2.middleware.grouper.app.provisioning.GrouperProvisioningFullSyncJob.run(GrouperProvisioningFullSyncJob.java:19)
|
at edu.internet2.middleware.grouper.app.loader.OtherJobBase$2.callback(OtherJobBase.java:441)
|
at edu.internet2.middleware.grouper.GrouperSession.callbackGrouperSession(GrouperSession.java:1063)
|
at edu.internet2.middleware.grouper.GrouperSession.internal_callbackRootGrouperSession(GrouperSession.java:1132)
|
at edu.internet2.middleware.grouper.GrouperSession.internal_callbackRootGrouperSession(GrouperSession.java:1099)
|
at edu.internet2.middleware.grouper.app.loader.OtherJobBase.execute(OtherJobBase.java:394)
|
at edu.internet2.middleware.grouper.app.loader.OtherJobBase.execute(OtherJobBase.java:378)
|
at edu.internet2.middleware.grouper.app.loader.GrouperDaemonJob.execute(GrouperDaemonJob.java:57)
|
at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
|
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573)
|
Caused by: java.lang.OutOfMemoryError: Required array length 2147483639 + 11 is too large
|
at java.base/jdk.internal.util.ArraysSupport.hugeLength(ArraysSupport.java:649)
|
at java.base/jdk.internal.util.ArraysSupport.newLength(ArraysSupport.java:642)
|
at java.base/java.lang.AbstractStringBuilder.newCapacity(AbstractStringBuilder.java:257)
|
at java.base/java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:229)
|
at java.base/java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:582)
|
at java.base/java.lang.StringBuilder.append(StringBuilder.java:179)
|
at edu.internet2.middleware.grouper.ldap.ldaptive.LdaptiveSessionImpl.processSearchRequest(LdaptiveSessionImpl.java:830)
|
at edu.internet2.middleware.grouper.ldap.ldaptive.LdaptiveSessionImpl$3.callback(LdaptiveSessionImpl.java:627)
|
at edu.internet2.middleware.grouper.ldap.ldaptive.LdaptiveSessionImpl.callbackLdapSession(LdaptiveSessionImpl.java:474)
|
at edu.internet2.middleware.grouper.ldap.ldaptive.LdaptiveSessionImpl.list(LdaptiveSessionImpl.java:621)
|
at edu.internet2.middleware.grouper.app.ldapProvisioning.ldapSyncDao.LdapSyncDaoForLdap.search(LdapSyncDaoForLdap.java:16)
|
at edu.internet2.middleware.grouper.app.ldapProvisioning.LdapProvisioningTargetDao.retrieveEntities(LdapProvisioningTargetDao.java:945)
|
at edu.internet2.middleware.grouper.app.provisioning.targetDao.GrouperProvisionerTargetDaoAdapter.retrieveEntitiesHelper(GrouperProvisionerTargetDaoAdapter.java:2461)
|
at edu.internet2.middleware.grouper.app.provisioning.targetDao.GrouperProvisionerTargetDaoAdapter$19.callLogic(GrouperProvisionerTargetDaoAdapter.java:2612)
|
at edu.internet2.middleware.grouper.app.provisioning.targetDao.GrouperProvisionerTargetDaoAdapter$19.callLogic(GrouperProvisionerTargetDaoAdapter.java:2604)
|
at edu.internet2.middleware.grouper.util.GrouperCallable$1.callback(GrouperCallable.java:205)
|
at edu.internet2.middleware.grouper.GrouperSession.callbackGrouperSession(GrouperSession.java:1063)
|
at edu.internet2.middleware.grouper.util.GrouperCallable.callLogicWithSessionIfExists(GrouperCallable.java:202)
|
at edu.internet2.middleware.grouper.util.GrouperCallable.call(GrouperCallable.java:167)
|
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
|
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
|
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
|
at java.base/java.lang.Thread.run(Thread.java:840)
|
, finalLog: true, queryCount: 17, tookMillis: 20013, took: 00:00:20.013
|
at edu.internet2.middleware.grouper.app.provisioning.GrouperProvisioner.provisionFinallyBlock(GrouperProvisioner.java:968)
|
at edu.internet2.middleware.grouper.app.provisioning.GrouperProvisioner.provision(GrouperProvisioner.java:887)
|
at edu.internet2.middleware.grouper.app.provisioning.GrouperProvisioningFullSyncJob.runFullSync(GrouperProvisioningFullSyncJob.java:56)
|
at edu.internet2.middleware.grouper.app.provisioning.GrouperProvisioningFullSyncJob$1.callback(GrouperProvisioningFullSyncJob.java:30)
|
at edu.internet2.middleware.grouper.GrouperSession.callbackGrouperSession(GrouperSession.java:1063)
|
at edu.internet2.middleware.grouper.GrouperSession.internal_callbackRootGrouperSession(GrouperSession.java:1132)
|
at edu.internet2.middleware.grouper.GrouperSession.internal_callbackRootGrouperSession(GrouperSession.java:1099)
|
at edu.internet2.middleware.grouper.app.provisioning.GrouperProvisioningFullSyncJob.run(GrouperProvisioningFullSyncJob.java:19)
|
at edu.internet2.middleware.grouper.app.loader.OtherJobBase$2.callback(OtherJobBase.java:441)
|
at edu.internet2.middleware.grouper.GrouperSession.callbackGrouperSession(GrouperSession.java:1063)
|
at edu.internet2.middleware.grouper.GrouperSession.internal_callbackRootGrouperSession(GrouperSession.java:1132)
|
at edu.internet2.middleware.grouper.GrouperSession.internal_callbackRootGrouperSession(GrouperSession.java:1099)
|
at edu.internet2.middleware.grouper.app.loader.OtherJobBase.execute(OtherJobBase.java:394)
|
at edu.internet2.middleware.grouper.app.loader.OtherJobBase.execute(OtherJobBase.java:378)
|
at edu.internet2.middleware.grouper.app.loader.GrouperDaemonJob.execute(GrouperDaemonJob.java:57)
|
at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
|
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573)
|