Uploaded image for project: 'Confluence Data Center'
  1. Confluence Data Center
  2. CONFSERVER-35781

ORA-12899 error caused user directory synchronisation failed with Active directory

    XMLWordPrintable

Details

    Description

      Here are the steps to reproduce the issue:

      1. Install a new Confluence 4.3.7 with oracle database.
      2. On the active directory, create a couple groups with one group got a description for more have 254 normal character plus one german character.
      3. Connect Confluence with the Active directory and perform the synchronisation.
      4. The first synchronisation will be failed with the error message:
        2014-12-02 13:53:13,496 ERROR [scheduler_Worker-2] [sf.hibernate.util.JDBCExceptionReporter] logExceptions ORA-12899: value too large for column "CONF_437"."CWD_GROUP"."DESCRIPTION" (actual: 256, maximum: 255)
        
        2014-12-02 13:53:13,497 ERROR [scheduler_Worker-2] [sf.hibernate.impl.SessionImpl] execute Could not synchronize database state with session
        2014-12-02 13:53:13,498 WARN [scheduler_Worker-2] [persistence.hibernate.batch.AbstractBatchProcessor] processBatch batch failed falling back to individual processing
        java.lang.RuntimeException: could not flush session
        	at com.atlassian.crowd.embedded.hibernate2.batch.Hibernate2BatchProcessor.flushSession(Hibernate2BatchProcessor.java:177)
        	at com.atlassian.crowd.embedded.hibernate2.batch.Hibernate2BatchProcessor.commitTransaction(Hibernate2BatchProcessor.java:115)
        	at com.atlassian.crowd.embedded.hibernate2.batch.Hibernate2BatchProcessor.afterProcessBatch(Hibernate2BatchProcessor.java:46)
        	at com.atlassian.crowd.util.persistence.hibernate.batch.AbstractBatchProcessor.processBatch(AbstractBatchProcessor.java:160)
        	at com.atlassian.crowd.util.persistence.hibernate.batch.AbstractBatchProcessor.execute(AbstractBatchProcessor.java:132)
        	at com.atlassian.crowd.embedded.hibernate2.HibernateGroupDao.addAll(HibernateGroupDao.java:127)
        	at com.atlassian.confluence.user.crowd.CachedCrowdGroupDao.addAll(CachedCrowdGroupDao.java:145)
        	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        	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.$Proxy25.addAll(Unknown Source)
        	at com.atlassian.crowd.directory.CachingDirectory.addAllGroups(CachingDirectory.java:109)
        	at com.atlassian.crowd.directory.DbCachingRemoteChangeOperations.addGroups(DbCachingRemoteChangeOperations.java:454)
        	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        	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.$Proxy1328.addGroups(Unknown Source)
        	at com.atlassian.crowd.directory.DirectoryCacheImplUsingChangeOperations.addOrUpdateCachedGroups(DirectoryCacheImplUsingChangeOperations.java:85)
        	at com.atlassian.crowd.directory.ldap.cache.UsnChangedCacheRefresher.synchroniseAllGroups(UsnChangedCacheRefresher.java:273)
        	at com.atlassian.crowd.directory.ldap.cache.AbstractCacheRefresher.synchroniseAll(AbstractCacheRefresher.java:85)
        	at com.atlassian.crowd.directory.ldap.cache.UsnChangedCacheRefresher.synchroniseAll(UsnChangedCacheRefresher.java:206)
        	at com.atlassian.crowd.directory.DbCachingRemoteDirectory.synchroniseCache(DbCachingRemoteDirectory.java:620)
        	at com.atlassian.crowd.manager.directory.DirectorySynchroniserImpl.synchronise(DirectorySynchroniserImpl.java:63)
        	at com.atlassian.crowd.directory.DbCachingDirectoryPoller.pollChanges(DbCachingDirectoryPoller.java:50)
        	at com.atlassian.crowd.manager.directory.monitor.poller.DirectoryPollerJobBean.executeInternal(DirectoryPollerJobBean.java:29)
        	at org.springframework.scheduling.quartz.QuartzJobBean.execute(QuartzJobBean.java:86)
        	at org.quartz.core.JobRunShell.run(JobRunShell.java:199)
        	at com.atlassian.confluence.schedule.quartz.ConfluenceQuartzThreadPool$1.run(ConfluenceQuartzThreadPool.java:20)
        	at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:549)
        Caused by: net.sf.hibernate.exception.GenericJDBCException: could not insert: [com.atlassian.crowd.model.group.InternalGroup#786433]
        	at net.sf.hibernate.exception.ErrorCodeConverter.handledNonSpecificException(ErrorCodeConverter.java:90)
        	at net.sf.hibernate.exception.ErrorCodeConverter.convert(ErrorCodeConverter.java:79)
        	at net.sf.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:29)
        	at net.sf.hibernate.persister.AbstractEntityPersister.convert(AbstractEntityPersister.java:1331)
        	at net.sf.hibernate.persister.EntityPersister.insert(EntityPersister.java:472)
        	at net.sf.hibernate.persister.EntityPersister.insert(EntityPersister.java:436)
        	at net.sf.hibernate.impl.ScheduledInsertion.execute(ScheduledInsertion.java:37)
        	at net.sf.hibernate.impl.SessionImpl.execute(SessionImpl.java:2464)
        	at net.sf.hibernate.impl.SessionImpl.executeAll(SessionImpl.java:2450)
        	at net.sf.hibernate.impl.SessionImpl.execute(SessionImpl.java:2407)
        	at net.sf.hibernate.impl.SessionImpl.flush(SessionImpl.java:2276)
        	at com.atlassian.crowd.embedded.hibernate2.batch.Hibernate2BatchProcessor.flushSession(Hibernate2BatchProcessor.java:173)
        	... 42 more
        Caused by: java.sql.SQLException: ORA-12899: value too large for column "CONF_437"."CWD_GROUP"."DESCRIPTION" (actual: 256, maximum: 255)
        
        	at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:445)
        	at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:396)
        	at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:879)
        	at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:450)
        	at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:192)
        	at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:531)
        	at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:207)
        	at oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:1044)
        	at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1329)
        	at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3584)
        	at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:3665)
        	at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeUpdate(OraclePreparedStatementWrapper.java:1352)
        	at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeUpdate(NewProxyPreparedStatement.java:105)
        	at net.sf.hibernate.impl.NonBatchingBatcher.addToBatch(NonBatchingBatcher.java:22)
        	at net.sf.hibernate.persister.EntityPersister.insert(EntityPersister.java:462)
        	... 49 more
        
      5. As a consequence, any new created group will not be added in Confluence even thought the synchronisation is success.
      6. After Confluence restart, the error message will appear again, but still the new group will not be added.

      Attachments

        Activity

          People

            Unassigned Unassigned
            yilinmo Yilin (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: