[
https://issues.jboss.org/browse/ISPN-8168?page=com.atlassian.jira.plugin....
]
Gustavo Fernandes commented on ISPN-8168:
-----------------------------------------
The cache {{LuceneIndexesMetadata}} has an entry with a value of type
{{FileListCacheValue}} that store a list of Strings, which is {{DeltaAware}}. So a command
to replace an item from a value replicates only the removed item. In the TRACE below, the
value "_4.nvd" is supposed to be removed from the list, but the whole list is
wiped:
The delta aware becomes a FunctionalCommand
{code}
09:29:22,672 TRACE (jgroups-6,ISPN,gfernandes-29609:[]) [StateTransferInterceptor]
Retrying command ReadWriteKeyValueCommand
{key=*|emails|-1,
value=*FileListCacheValueDelta{ops=[DeleteOperation{element='_4.nvd'}]}*,
prevValue=null, prevMetadata=null,
flags=[SKIP_INDEXING, IGNORE_RETURN_VALUES, COMMAND_RETRY], valueMatcher=MATCH_ALWAYS,
successful=true} for topology 11
{code}
Topology is changed in every step of the test, so a retry happens:
{code}
09:29:22,673 TRACE (jgroups-6,ISPN,gfernandes-29609:[]) [EntryWrappingInterceptor] This is
a retry- removing looked up entry
ReadCommittedEntry(392a2ecf){key=*|emails|-1, value=FileListCacheValue [filenames=[_3.si,
_0.si, _1.cfe, _1.si, _2.si, _0.cfs,
_2.cfs, _4.cfe, _3.cfe, segments_6, segments_5, _4.fdx, _4_Lucene50_0.doc,
_4_Lucene50_0.tim, _1.cfs, _0.cfe, _2.cfe, _3.cfs,
_4.cfs, _4.si]], isCreated=false, isChanged=false, isRemoved=false, isValid=true,
isExpired=false, skipLookup=false,
metadata=MetaParamsInternalMetadata{params=MetaParams{length=0, metas=[]}}}
{code}
We can see that in the data container the FileListCacheValue contains lots of values:
{code}
09:29:22,673 TRACE (jgroups-6,ISPN,gfernandes-29609:[]) [EntryFactoryImpl] Exists in
context? null
09:29:22,673 TRACE (jgroups-6,ISPN,gfernandes-29609:[]) [EntryFactoryImpl] Retrieved from
container
MetadataImmortalCacheEntry{key=*|emails|-1, value=FileListCacheValue [filenames=[_3.si,
_0.si, _1.cfe, _1.si, _2.si, _0.cfs,
_2.cfs, _4.cfe, _3.cfe, segments_6, segments_5, _4.fdx, _4_Lucene50_0.doc,
_4_Lucene50_0.tim, _1.cfs, _0.cfe, _2.cfe, _3.cfs,
_4.cfs, _4.si]], metadata=MetaParamsInternalMetadata{params=MetaParams{length=0,
metas=[]}}}
09:29:22,673 TRACE (jgroups-6,ISPN,gfernandes-29609:[]) [EntryFactoryImpl] Creating new
entry for key *|emails|-1
09:29:22,673 TRACE (jgroups-6,ISPN,gfernandes-29609:[]) [EntryFactoryImpl] Updated context
entry null ->
ReadCommittedEntry(31f4a69f){key=*|emails|-1, value=FileListCacheValue [filenames=[_3.si,
_0.si, _1.cfe, _1.si, _2.si, _0.cfs,
_2.cfs, _4.cfe, _3.cfe, segments_6, segments_5, _4.fdx, _4_Lucene50_0.doc,
_4_Lucene50_0.tim, _1.cfs, _0.cfe, _2.cfe, _3.cfs,
_4.cfs, _4.si]], isCreated=false, isChanged=false, isRemoved=false, isValid=true,
isExpired=false, skipLookup=false,
metadata=MetaParamsInternalMetadata{params=MetaParams{length=0, metas=[]}}}
09:29:22,673 TRACE (jgroups-6,ISPN,gfernandes-29609:[]) [CallInterceptor] Invoking:
ReadWriteKeyValueCommand
{code}
But those values are wiped when the functional command is executed:
{code}
09:29:22,674 TRACE (jgroups-6,ISPN,gfernandes-29609:[]) [ReadWriteKeyValueCommand] Execute
read-write function on previous value
null and previous metadata null
09:29:22,674 TRACE (jgroups-6,ISPN,gfernandes-29609:[]) [BaseDistributionInterceptor]
Current topology 11, command topology 11
09:29:22,674 TRACE (jgroups-6,ISPN,gfernandes-29609:[]) [EntryWrappingInterceptor] About
to commit entry ReadCommittedEntry(31f4a69f)
{key=*|emails|-1, value=FileListCacheValue [filenames=[]], isCreated=false,
isChanged=true, isRemoved=false, isValid=true, isExpired=false,
skipLookup=false, metadata=MetaParamsInternalMetadata{params=MetaParams{length=0,
metas=[]}}}
09:29:22,674 TRACE (jgroups-6,ISPN,gfernandes-29609:[]) [DefaultDataContainer] Creating
new ICE for writing.
*Existing=MetadataImmortalCacheEntry{key=*|emails|-1, value=FileListCacheValue
[filenames=[_3.si, _0.si, _1.cfe, _1.si, _2.si, _0.cfs,
_2.cfs, _4.cfe, _3.cfe, segments_6, segments_5, _4.fdx, _4_Lucene50_0.doc,
_4_Lucene50_0.tim, _1.cfs, _0.cfe, _2.cfe, _3.cfs, _4.cfs,
_4.si]*], metadata=MetaParamsInternalMetadata{params=MetaParams{length=0, metas=[]}}},
metadata=MetaParamsInternalMetadata{params=
MetaParams{length=0, metas=[]}}, new value=FileListCacheValue [filenames=[]]
09:29:22,674 TRACE (jgroups-6,ISPN,gfernandes-29609:[]) [DefaultDataContainer] Store
MetadataImmortalCacheEntry
{key=*|emails|-1, value=FileListCacheValue [*filenames=[]]*,
metadata=MetaParamsInternalMetadata{params=MetaParams{length=0, metas=[]}}} in container
{code}
LiveRunningTest random failures
-------------------------------
Key: ISPN-8168
URL:
https://issues.jboss.org/browse/ISPN-8168
Project: Infinispan
Issue Type: Bug
Components: Lucene Directory
Affects Versions: 9.1.0.Final
Reporter: Gustavo Fernandes
Assignee: Gustavo Fernandes
Labels: testsuite_stability
The test fails very often with
{noformat}
Caused by: org.apache.lucene.index.IndexNotFoundException: no segments* file found in
InfinispanDirectory{indexName='emails'}: files: []
at org.apache.lucene.index.SegmentInfos$FindSegmentsFile.run(SegmentInfos.java:726)
at org.apache.lucene.index.SegmentInfos$FindSegmentsFile.run(SegmentInfos.java:683)
{noformat}
The cache entry that contains the list of files the lucene directory (FileListCacheValue)
for some reason is empty, although the index is not. The missing value for
FileListCacheValue causes the index reader to think the index is empty and thus the error
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)