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

Deadlock in InfinispanDirectoryProvider startup

    XMLWordPrintable

Details

    • Bug
    • Status: Closed (View Workflow)
    • Minor
    • Resolution: Out of Date
    • 7.2.0.Alpha1, 7.1.1.Final
    • None
    • 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 Nistor Adrian
            dberinde@redhat.com Dan Berindei
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: