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

Deadlock in InfinispanDirectoryProvider startup

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed (View Workflow)
    • Priority: Minor
    • Resolution: Out of Date
    • Affects Version/s: 7.2.0.Alpha1, 7.1.1.Final
    • Fix Version/s: None
    • Component/s: Embedded Querying
    • Labels:
      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

            Assignee:
            anistor Nistor Adrian
            Reporter:
            dan.berindei Dan Berindei
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved: