Uploaded image for project: 'Grouper'
  1. Grouper
  2. GRP-5416

java.lang.OutOfMemoryError: Required array length 2147483639 + 11 is too large

    XMLWordPrintable

Details

    • Bug
    • Resolution: Unresolved
    • Minor
    • None
    • 4.12.0
    • provisioning
    • 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)
      

      Attachments

        Activity

          People

            chris.hyzer@at.internet2.edu Chris Hyzer (upenn.edu)
            chad.redman.3@at.internet2.edu Chad Redman
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated: