Skip to Content.
Sympa Menu

grouper-dev - [grouper-dev] PSP bulkSyncing in batches

Subject: Grouper Developers Forum

List archive

[grouper-dev] PSP bulkSyncing in batches


Chronological Thread 
  • From: Gagné Sébastien <>
  • To: <>
  • Subject: [grouper-dev] PSP bulkSyncing in batches
  • Date: Fri, 28 Sep 2012 19:49:17 -0400

Hi,

I’ve been testing the PSP, aside from performance issue, large quantity of object creation results in OutOfMemory issues.

 

My setup :

I create 10 500 groups base on academic’s data.

I try to bulkSync these groups to AD (since the changelog provisioning isn’t working well for something that large)

I set MEM_MAX to 2000m

 

The process will fail after about 270 minutes and the creation of about 75% of groups, in “top” the process was using 1.8g and 100% of a CPU (probably the GC running like crazy, usually the bulk sync uses about 2-5%) :

Caused by: java.lang.OutOfMemoryError: Java heap space

        at java.util.Arrays.copyOf(Arrays.java:2882)

        at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:100)

        at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:390)

        at java.lang.StringBuffer.append(StringBuffer.java:224)

        at org.openspml.v2.util.xml.XmlBuffer.append(XmlBuffer.java:126)

        at org.openspml.v2.util.xml.XmlBuffer.addAnyElement(XmlBuffer.java:519)

        at org.openspml.v2.util.xml.ReflectiveXMLMarshaller.addOpenContentElements(ReflectiveXMLMarshaller.java:330)

        at org.openspml.v2.util.xml.ReflectiveXMLMarshaller.processElementFields(ReflectiveXMLMarshaller.java:210)

        at org.openspml.v2.util.xml.ReflectiveXMLMarshaller.default_marshall(ReflectiveXMLMarshaller.java:342)

        at org.openspml.v2.util.xml.ReflectiveXMLMarshaller.redispatch(ReflectiveXMLMarshaller.java:133)

        at org.openspml.v2.util.xml.ReflectiveXMLMarshaller.marshall(ReflectiveXMLMarshaller.java:109)

        at org.openspml.v2.util.xml.ReflectiveXMLMarshaller.marshall(ReflectiveXMLMarshaller.java:74)

        at org.openspml.v2.util.xml.ReflectiveXMLMarshaller.marshall(ReflectiveXMLMarshaller.java:372)

        at org.openspml.v2.msg.spml.Response.toXML(Response.java:144)

        at edu.internet2.middleware.psp.spml.provider.BaseSpmlProvider.toXML(BaseSpmlProvider.java:796)

        at edu.internet2.middleware.psp.Psp.execute(Psp.java:1436)

        at edu.internet2.middleware.psp.Psp.execute(Psp.java:879)

        at edu.internet2.middleware.psp.Psp.execute(Psp.java:800)

 

If I run a new bulkSync after it, it completes and uses far less memory, as well as all the following sync where there are no object creation.

 

My question :

Is it possible that there’s a memory leak somewhere in LDAP object creation ?

Would it be possible to configure some kind of batch size for object creation ? e.g. after 2000 objects created, restart the bulkSync, or clean up the memory, or ???

 

I believe this also crashes the PSP full sync cron in the Loader (if I let it create the 10 500 groups by itself) and requires a restart (I think it won’t show up in the diagnostic WS either)

 

Thanks

 

 

Sébastien Gagné,     | Analyste en informatique

514-343-6111 x33844  | Université de Montréal,

                     | Pavillon Roger-Gaudry, local X-100-11

 



  • [grouper-dev] PSP bulkSyncing in batches, Gagné Sébastien, 09/28/2012

Archive powered by MHonArc 2.6.16.

Top of Page