[
https://issues.jboss.org/browse/ISPN-4258?page=com.atlassian.jira.plugin....
]
Sanne Grinovero commented on ISPN-4258:
---------------------------------------
I guess it's not a deadlock but high contention: the {{SharedIndexWorkspaceImpl}} is
the one which by contract requires the indexwriter lock for each operation, then releases
it.
This backend is not suggested for high load, so this problem would be fixed by using the
exclusive index option: that would replace the stack with usage of
{{org.hibernate.search.backend.impl.lucene.ExclusiveIndexWorkspaceImpl}} which is
non-blocking.
An alternative could be to improve the {{SharedIndexWorkspaceImpl}} to have a "not
fair" option which allows a different request to reuse an IW which is already open,
if it's still open, to postpone the close operation for as long as work is incoming.
You think we should do that? It's probably a useful mode for other situations too, but
it implies other requestors might never receive access to an IW under high load.. still
under high load the Shared implementation is an horrible choice anyway as it would
generate the contention shown above.
*MassIndexing.testReindexing test fails randomly on RHEL7
-----------------------------------------------------------
Key: ISPN-4258
URL:
https://issues.jboss.org/browse/ISPN-4258
Project: Infinispan
Issue Type: Bug
Security Level: Public(Everyone can see)
Components: Embedded Querying
Affects Versions: 7.0.0.Alpha3
Reporter: Vitalii Chepeliuk
Assignee: Gustavo Fernandes
Labels: testsuite_stability
Attachments: MassIndexingTests.zip
Following tests fail with assertion error
DistProgrammaticMassIndexTest.testReindexing
TopologyAwareDistMassIndexingTest.testReindexing
DistributedMassIndexingTest.testReindexing
DistributedMassIndexingViaJmxTest.testReindexing
DistributedMassIndexingViaJmxTest.createBeforeClass
{noformat}
java.lang.AssertionError: expected:<3> but was:<0>
at org.junit.Assert.fail(Assert.java:88)
at org.junit.Assert.failNotEquals(Assert.java:743)
at org.junit.Assert.assertEquals(Assert.java:118)
at org.junit.Assert.assertEquals(Assert.java:555)
at org.junit.Assert.assertEquals(Assert.java:542)
at
org.infinispan.query.distributed.DistributedMassIndexingTest.verifyFindsCar(DistributedMassIndexingTest.java:89)
at
org.infinispan.query.distributed.DistributedMassIndexingTest.verifyFindsCar(DistributedMassIndexingTest.java:80)
at
org.infinispan.query.distributed.DistributedMassIndexingTest.testReindexing(DistributedMassIndexingTest.java:58)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at
org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:80)
at org.testng.internal.Invoker.invokeMethod(Invoker.java:714)
at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901)
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231)
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
at org.testng.TestRunner.privateRun(TestRunner.java:767)
at org.testng.TestRunner.run(TestRunner.java:617)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:334)
at org.testng.SuiteRunner.access$000(SuiteRunner.java:37)
at org.testng.SuiteRunner$SuiteWorker.run(SuiteRunner.java:368)
at org.testng.internal.thread.ThreadUtil$2.call(ThreadUtil.java:64)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)
{noformat}
--
This message was sent by Atlassian JIRA
(v6.2.6#6264)