LDAP Synchronization Fails due to java.lang.RuntimeException: Confluence does not support individual processing

Still need help?

The Atlassian Community is here for you.

Ask the community

Symptoms

Similar errors appear in the atlassian-confluence.log:

• Cannot insert value to Confluence database column due to value too large.

2014-12-02 07:52:28,246 WARN [scheduler_Worker-2] [persistence.hibernate.batch.AbstractBatchProcessor] processBatch batch failed falling back to individual processing
....
Caused by: net.sf.hibernate.exception.GenericJDBCException: could not insert: [com.atlassian.crowd.model.group.InternalGroup#XXXXXXX]
....
Caused by: java.sql.SQLException: ORA-12899: value too large for column "CONFLUENCE"."CWD_GROUP"."DESCRIPTION" (actual: 259, maximum: 255)


• Nested child group cannot be added due to missing parent group.

2014-12-02 07:55:32,454 WARN [scheduler_Worker-2] [atlassian.crowd.directory.DbCachingRemoteChangeOperations] addGroupMembershipsForGroup Could not add child group [child-group] to parent group [parent-group]. One or both groups was not found
com.atlassian.crowd.exception.GroupNotFoundException: Group <gparent-group> does not exist
	at com.atlassian.confluence.user.crowd.CachedCrowdGroupDao.findGroup(CachedCrowdGroupDao.java:96)
	at com.atlassian.confluence.user.crowd.CachedCrowdGroupDao.findByName(CachedCrowdGroupDao.java:114)
	at sun.reflect.GeneratedMethodAccessor268.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:606)
	at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
	at com.sun.proxy.$Proxy34.findByName(Unknown Source)
	at com.atlassian.crowd.directory.AbstractInternalDirectory.findGroupByName(AbstractInternalDirectory.java:710)
	at com.atlassian.crowd.directory.AbstractInternalDirectory.addGroupToGroup(AbstractInternalDirectory.java:830)
	at com.atlassian.crowd.directory.DbCachingRemoteChangeOperations.addGroupMembershipsForGroup(DbCachingRemoteChangeOperations.java:880)
	at sun.reflect.GeneratedMethodAccessor416.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:606)
	at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
	at com.atlassian.crowd.directory.$Proxy2145.addGroupMembershipsForGroup(Unknown Source)
	...


• java.lang.RuntimeException: Confluence does not support individual processing error.

2014-12-02 07:52:28,335 ERROR [scheduler_Worker-2] [persistence.hibernate.batch.AbstractBatchProcessor] processIndividual Could not process class com.atlassian.crowd.model.group.InternalGroup: com.atlassian.crowd.model.group.InternalGroup@1cb01700[id=XXXXXXXX,name=XXX,type=GROUP,active=true,description=XXX...XXX,lowerName=XXXX,createdDate=Tue Dec 02 07:52:28 CET 2014,updatedDate=Tue Dec 02 07:52:28 CET 2014,directoryId=XXXXXXXX]
java.lang.RuntimeException: Confluence does not support individual processing

Diagnosis

Enabling Detailed SQL Logging in order to identify which is the exact root cause or group(s) that causes synchronization process to fail.

Cause

  1. One of the group (regardless of parent group or child group) is having invalid strings length in the LDAP attribute.
  2. The LDAP attribute of a group has exceeded the standard Confluence database column size (usually 255).
  3. Confluence only supports batch processing.

    Batch Processing

    If one of the group fails at synchronization, it will immediately terminate the remaining process and the remaining groups will not be synchronized. For instance, you have a nested Group A that contains Group 1, Group 2, Group 3, and Group 4. However, Group 2 has an LDAP attribute (i.e. description) that does not fit Confluence database column size. As a result, this will cause synchronization to fail. In other words, Group 2, Group 3 and Group 4 will not be added into Confluence.

    Group ASync successful
    Group 1Sync successful
    Group 2Sync fails
    Group 3Sync fails
    Group 4Sync fails

Resolution

  1.  Identify, reduce and correct the strings or characters of the group(s) attribute in LDAP that having invalid strings length or exceeded the standard Confluence database column size.
  2. Set Group Description Attribute to other parameter via Confluence User Directories > LDAP Configuration > Group Schema Settings.
  3. Alter the column size in Confluence database in order to fit longer strings length.

    tip/resting Created with Sketch.

    Please note that we do not support database alteration and future Confluence upgrade will revert the column size back to default.

    Atlassian will not be held liable for any errors or other unexpected events resulting from database alteration.


Last modified on Nov 6, 2018

Was this helpful?

Yes
No
Provide feedback about this article
Powered by Confluence and Scroll Viewport.