Uploaded image for project: 'Infinispan'
  1. Infinispan
  2. ISPN-5270

Deadlock in InfinispanDirectoryProvider startup

This issue belongs to an archived project. You can view it, but you can't modify it. Learn more

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Obsolete
    • Icon: Minor Minor
    • None
    • 7.2.0.Alpha1, 7.1.1.Final
    • Embedded Querying
    • None

      The InfinispanDirectoryProvider tries to start the metadata, data, and locking caches when it starts up, with DefaultCacheManager.startCaches().

      However, when one of these caches (e.g. the metadata cache) starts, the LifecycleManager.cacheStarting(), which can then try to start the InfinispanDirectoryProvider again:

      "CacheStartThread,null,LuceneIndexesMetadata" prio=10 tid=0x00007f5f74484000 nid=0xe42 in Object.wait() [0x00007f5efff48000]
         java.lang.Thread.State: WAITING (on object monitor)
      	at java.lang.Object.wait(Native Method)
      	- waiting on <0x00000000c2180000> (a org.infinispan.manager.DefaultCacheManager$1)
      	at java.lang.Thread.join(Thread.java:1281)
      	- locked <0x00000000c2180000> (a org.infinispan.manager.DefaultCacheManager$1)
      	at java.lang.Thread.join(Thread.java:1355)
      	at org.infinispan.manager.DefaultCacheManager.startCaches(DefaultCacheManager.java:465)
      	at org.hibernate.search.infinispan.spi.InfinispanDirectoryProvider.start(InfinispanDirectoryProvider.java:84)
      	at org.hibernate.search.indexes.spi.DirectoryBasedIndexManager.initialize(DirectoryBasedIndexManager.java:88)
      	at org.hibernate.search.indexes.impl.IndexManagerHolder.createIndexManager(IndexManagerHolder.java:256)
      	at org.hibernate.search.indexes.impl.IndexManagerHolder.createIndexManager(IndexManagerHolder.java:513)
      	- locked <0x00000000ce6001d0> (a org.hibernate.search.indexes.impl.IndexManagerHolder)
      	at org.hibernate.search.indexes.impl.IndexManagerHolder.createIndexManagers(IndexManagerHolder.java:482)
      	at org.hibernate.search.indexes.impl.IndexManagerHolder.buildEntityIndexBinding(IndexManagerHolder.java:91)
      	- locked <0x00000000ce6001d0> (a org.hibernate.search.indexes.impl.IndexManagerHolder)
      	at org.hibernate.search.spi.SearchIntegratorBuilder.initDocumentBuilders(SearchIntegratorBuilder.java:366)
      	at org.hibernate.search.spi.SearchIntegratorBuilder.buildNewSearchFactory(SearchIntegratorBuilder.java:204)
      	at org.hibernate.search.spi.SearchIntegratorBuilder.buildSearchIntegrator(SearchIntegratorBuilder.java:122)
      	at org.hibernate.search.spi.SearchFactoryBuilder.buildSearchFactory(SearchFactoryBuilder.java:35)
      	at org.infinispan.query.impl.LifecycleManager.getSearchFactory(LifecycleManager.java:260)
      	at org.infinispan.query.impl.LifecycleManager.cacheStarting(LifecycleManager.java:102)
      	at org.infinispan.factories.ComponentRegistry.notifyCacheStarting(ComponentRegistry.java:230)
      	at org.infinispan.factories.ComponentRegistry.start(ComponentRegistry.java:216)
      	at org.infinispan.cache.impl.CacheImpl.start(CacheImpl.java:814)
      	at org.infinispan.manager.DefaultCacheManager.wireAndStartCache(DefaultCacheManager.java:591)
      	at org.infinispan.manager.DefaultCacheManager.createCache(DefaultCacheManager.java:546)
      	at org.infinispan.manager.DefaultCacheManager.access$100(DefaultCacheManager.java:115)
      	at org.infinispan.manager.DefaultCacheManager$1.run(DefaultCacheManager.java:452)
      

      This can hang the test, the attached thread dumps show EmbeddedCompatTest and IndexCacheStopTest.

        1. surefire.stacks
          103 kB
        2. surefire2.stacks
          1.00 MB

              anistor Adrian Nistor (Inactive)
              dberinde@redhat.com Dan Berindei (Inactive)
              Archiver:
              rhn-support-adongare Amol Dongare

                Created:
                Updated:
                Resolved:
                Archived: