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

Deadlock in InfinispanDirectoryProvider startup

    XMLWordPrintable

Details

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

    Description

      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.

      Attachments

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

        Activity

          People

            anistor Adrian Nistor (Inactive)
            dberinde@redhat.com Dan Berindei (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: