Uploaded image for project: 'Nuxeo Platform'
  1. Nuxeo Platform
  2. NXP-18080

Possible ConcurrentModificationException on Redis based ClusterInvalidator

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: 7.4
    • Fix Version/s: 7.10
    • Component/s: Redis

      Description

      When using the Redis cluster invalidator (NXP-14923) the following on very high load this concurrent exception is posssible:

      ben : tu vois comment c'est possible ├ža:
      Caused by: javax.resource.ResourceException: Unknown throwable when trying to enlist connection in tx
              at org.apache.geronimo.connector.outbound.TransactionEnlistingInterceptor.getConnection(TransactionEnlistingInterceptor.java:75)
              at org.apache.geronimo.connector.outbound.TransactionCachingInterceptor.getConnection(TransactionCachingInterceptor.java:101)
              at org.apache.geronimo.connector.outbound.ConnectionHandleInterceptor.getConnection(ConnectionHandleInterceptor.java:43)
              at org.apache.geronimo.connector.outbound.TCCLInterceptor.getConnection(TCCLInterceptor.java:39)
              at org.apache.geronimo.connector.outbound.ConnectionTrackingInterceptor.getConnection(ConnectionTrackingInterceptor.java:66)
              at org.apache.geronimo.connector.outbound.AbstractConnectionManager.allocateConnection(AbstractConnectionManager.java:77)
              at org.nuxeo.runtime.jtajca.NuxeoContainer$ConnectionManagerWrapper.allocateConnection(NuxeoContainer.java:837)
              at org.nuxeo.ecm.core.storage.sql.ra.ConnectionFactoryImpl.getConnection(ConnectionFactoryImpl.java:98)
              ... 22 more
      Caused by: java.util.ConcurrentModificationException
              at java.util.HashMap$HashIterator.nextNode(HashMap.java:1429)
              at java.util.HashMap$KeyIterator.next(HashMap.java:1453)
              at java.util.AbstractCollection.addAll(AbstractCollection.java:343)
              at org.nuxeo.ecm.core.storage.sql.Invalidations.add(Invalidations.java:119)
              at org.nuxeo.ecm.core.storage.sql.InvalidationsQueue.addInvalidations(InvalidationsQueue.java:37)
              at org.nuxeo.ecm.core.storage.sql.InvalidationsPropagator.propagateInvalidations(InvalidationsPropagator.java:46)
              at org.nuxeo.ecm.core.storage.sql.jdbc.JDBCRowMapper.receiveInvalidations(JDBCRowMapper.java:92)
              at sun.reflect.GeneratedMethodAccessor54.invoke(Unknown Source)
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
              at java.lang.reflect.Method.invoke(Method.java:497)
              at org.nuxeo.ecm.core.storage.sql.jdbc.JDBCMapperConnector.doInvoke(JDBCMapperConnector.java:22)
              at org.nuxeo.ecm.core.storage.sql.jdbc.JDBCMapperConnector.invoke(JDBCMapperConnector.java:55)
              at com.sun.proxy.$Proxy49.receiveInvalidations(Unknown Source)
              at org.nuxeo.ecm.core.storage.sql.SoftRefCachingRowMapper.receiveInvalidations(SoftRefCachingRowMapper.java:210)
              at org.nuxeo.ecm.core.storage.sql.PersistenceContext.processReceivedInvalidations(PersistenceContext.java:470)
              at org.nuxeo.ecm.core.storage.sql.SessionImpl.processReceivedInvalidations(SessionImpl.java:571)
              at org.nuxeo.ecm.core.storage.sql.SessionImpl.start(SessionImpl.java:1309)
      

        Attachments

          Activity

            People

            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: