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

"maximum number of expressions in a list is 1000" error when user is in more than 1000 groups visits dashboard

    XMLWordPrintable

Details

    Description

      In Oracle, if a user belongs to more than 1000 groups and visits the dashboard, the following error occurs:

      -- url: /confluence/pages/viewpage.action | page: 69468465 | userName: user | referer: Confluence URL | action: viewpage
      org.springframework.jdbc.BadSqlGrammarException: Hibernate operation: Could not execute query; bad SQL grammar []; nested exception is java.sql.SQLException: ORA-01795: maximum number of expressions in a list is 1000
      
      Caused by: java.sql.SQLException: ORA-01795: maximum number of expressions in a list is 1000
      
      	at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
      	at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
      	at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
      	at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:745)
      	at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:219)
      	at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:813)
      	at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1049)
      	at oracle.jdbc.driver.T4CPreparedStatement.executeMaybeDescribe(T4CPreparedStatement.java:854)
      	at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1154)
      	at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3370)
      	at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3415)
      	at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:93)
      	at net.sf.hibernate.impl.BatcherImpl.getResultSet(BatcherImpl.java:89)
      	at net.sf.hibernate.loader.Loader.getResultSet(Loader.java:880)
      	at net.sf.hibernate.loader.Loader.doQuery(Loader.java:273)
      	at net.sf.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:138)
      	at net.sf.hibernate.loader.Loader.doList(Loader.java:1063)
      	at net.sf.hibernate.loader.Loader.list(Loader.java:1048)
      	at net.sf.hibernate.hql.QueryTranslator.list(QueryTranslator.java:854)
      	at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1552)
      	at net.sf.hibernate.impl.QueryImpl.list(QueryImpl.java:49)
      	at net.sf.hibernate.impl.AbstractQueryImpl.uniqueResult(AbstractQueryImpl.java:550)
      	at com.atlassian.confluence.spaces.persistence.dao.hibernate.HibernateSpaceDao$7.doInHibernate(HibernateSpaceDao.java:455)
      	at org.springframework.orm.hibernate.HibernateTemplate.execute(HibernateTemplate.java:370)
      	at org.springframework.orm.hibernate.HibernateTemplate.execute(HibernateTemplate.java:337)
      	at com.atlassian.confluence.spaces.persistence.dao.hibernate.HibernateSpaceDao.countSpaces(HibernateSpaceDao.java:447)
      	at com.atlassian.confluence.spaces.DefaultSpaceManager$1.getAvailableSize(DefaultSpaceManager.java:799)
      	at com.atlassian.confluence.core.DefaultListBuilder.getAvailableSize(DefaultListBuilder.java:51)
      	at com.atlassian.confluence.plugins.macros.dashboard.DashboardMacroSupport.getLabelsForPermittedSpaces(DashboardMacroSupport.java:216)
      	at com.atlassian.confluence.plugins.macros.dashboard.DashboardMacroSupport.getViewableTeamLabels(DashboardMacroSupport.java:201)
      

      The problem is that com.atlassian.confluence.spaces.persistence.dao.hibernate.HibernateSpacesQueryBuilder specifies the full list of groups the user is a member of in the "in" clause. It's unexpected for a user to be in more than 1000 groups, but it can happen, particularly if Confluence is delegating user management to a large LDAP server.

      Attachments

        Issue Links

          Activity

            People

              vhu@atlassian.com Vivian Hu (Inactive)
              asdosreis AlysonA
              Votes:
              23 Vote for this issue
              Watchers:
              33 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: