[
https://issues.jboss.org/browse/ISPN-5270?page=com.atlassian.jira.plugin....
]
Gustavo Fernandes commented on ISPN-5270:
-----------------------------------------
I don't like the idea to automagically disable indexing on a
Cache, when the user might have explicitly enabled it via configuration.
What could
possibly go wrong? Enabling indexing on Lucene* caches sounds a mistake, and disabling it
is a good thing :) , since it won't leave many threads hanging around and intercepting
every single index call.
If we do such a thing, then I'd go for option 1
The side
effect of that is, something very basic like the unit test above will greet the user with
an exception. To "fix" it, a newcomer needs to grab understanding of the
internals of the lucene directory storage, eventually configure 3 more caches or create
another named cache, disabling indexing in the default cache.
Deadlock in InfinispanDirectoryProvider startup
-----------------------------------------------
Key: ISPN-5270
URL:
https://issues.jboss.org/browse/ISPN-5270
Project: Infinispan
Issue Type: Bug
Components: Embedded Querying
Affects Versions: 7.2.0.Alpha1, 7.1.1.Final
Reporter: Dan Berindei
Assignee: Gustavo Fernandes
Priority: Minor
Attachments: surefire.stacks, surefire2.stacks
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:
{noformat}
"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)
{noformat}
This can hang the test, the attached thread dumps show {{EmbeddedCompatTest}} and
{{IndexCacheStopTest}}.
--
This message was sent by Atlassian JIRA
(v6.3.11#6341)