gchq / stroom

Stroom is a highly scalable data storage, processing and analysis platform.
https://gchq.github.io/stroom-docs/
Apache License 2.0
424 stars 57 forks source link

7.3 Corrupting Index Shards #4169

Closed stroomdev10 closed 3 months ago

stroomdev10 commented 3 months ago

I updated to 7.3-beta.13 from 7.3-beta.12.

beta.12 wrote a shard (Index ver 9.8.0) , which was then written to by beta.13 , then marked as corrupt.

Is 7.3-beta.13 ignoring the POSITIONS settings?

Setting index shard status to corrupt because (java.lang.IllegalArgumentException: cannot change field "BigTextField" from index options=DOCS_AND_FREQS_AND_POSITIONS to inconsistent index options=DOCS) 
java.lang.IllegalArgumentException: cannot change field "BigTextField" from index options=DOCS_AND_FREQS_AND_POSITIONS to inconsistent index options=DOCS
    at org.apache.lucene980.index.FieldInfo.verifySameIndexOptions(FieldInfo.java:259)
    at org.apache.lucene980.index.FieldInfos$FieldNumbers.verifySameSchema(FieldInfos.java:471)
    at org.apache.lucene980.index.FieldInfos$FieldNumbers.addOrGet(FieldInfos.java:407)
    at org.apache.lucene980.index.FieldInfos$Builder.add(FieldInfos.java:786)
    at org.apache.lucene980.index.FieldInfos$Builder.add(FieldInfos.java:724)
    at org.apache.lucene980.index.IndexingChain.initializeFieldInfo(IndexingChain.java:631)
    at org.apache.lucene980.index.IndexingChain.processDocument(IndexingChain.java:566)
    at org.apache.lucene980.index.DocumentsWriterPerThread.updateDocuments(DocumentsWriterPerThread.java:242)
    at org.apache.lucene980.index.DocumentsWriter.updateDocuments(DocumentsWriter.java:432)
    at org.apache.lucene980.index.IndexWriter.updateDocuments(IndexWriter.java:1545)
    at org.apache.lucene980.index.IndexWriter.updateDocument(IndexWriter.java:1830)
    at org.apache.lucene980.index.IndexWriter.addDocument(IndexWriter.java:1470)
    at stroom.index.lucene980.Lucene980IndexShardWriter.addDocument(Lucene980IndexShardWriter.java:287)
    at stroom.index.lucene980.Lucene980IndexShardWriter.addDocument(Lucene980IndexShardWriter.java:269)
    at stroom.index.impl.IndexerImpl.addDocument(IndexerImpl.java:111)
    at stroom.index.impl.IndexerImpl.addDocument(IndexerImpl.java:73)
    at stroom.index.impl.IndexingFilter.processDocument(IndexingFilter.java:237)
    at stroom.index.impl.IndexingFilter.endElement(IndexingFilter.java:201)
    at stroom.pipeline.filter.AbstractXMLFilter.endElement(AbstractXMLFilter.java:326)
    at stroom.pipeline.filter.RecordCountFilter.endElement(RecordCountFilter.java:192)
    at net.sf.saxon.event.ContentHandlerProxy.endElement(ContentHandlerProxy.java:412)
    at net.sf.saxon.event.ProxyReceiver.endElement(ProxyReceiver.java:185)
    at net.sf.saxon.event.SequenceNormalizer.endElement(SequenceNormalizer.java:230)
    at net.sf.saxon.event.NamespaceReducer.endElement(NamespaceReducer.java:235)
    at net.sf.saxon.event.ComplexContentOutputter.endElement(ComplexContentOutputter.java:559)
    at net.sf.saxon.expr.instruct.ElementCreator.processLeavingTail(ElementCreator.java:356)
    at net.sf.saxon.expr.instruct.ElementCreator.processLeavingTail(ElementCreator.java:300)
    at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:352)
    at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:533)
    at net.sf.saxon.expr.instruct.ApplyTemplates.apply(ApplyTemplates.java:300)
    at net.sf.saxon.expr.instruct.ApplyTemplates.processLeavingTail(ApplyTemplates.java:255)
    at net.sf.saxon.expr.instruct.Block.processLeavingTail(Block.java:735)
    at net.sf.saxon.expr.instruct.Instruction.process(Instruction.java:132)
    at net.sf.saxon.expr.instruct.ElementCreator.processLeavingTail(ElementCreator.java:353)
    at net.sf.saxon.expr.instruct.ElementCreator.processLeavingTail(ElementCreator.java:300)
    at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:352)
    at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:533)
    at net.sf.saxon.trans.rules.TextOnlyCopyRuleSet.process(TextOnlyCopyRuleSet.java:71)
    at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:495)
    at net.sf.saxon.trans.XsltController.applyTemplates(XsltController.java:746)
    at net.sf.saxon.s9api.AbstractXsltTransformer.applyTemplatesToSource(AbstractXsltTransformer.java:347)
    at net.sf.saxon.s9api.XsltTransformer.transform(XsltTransformer.java:349)
    at net.sf.saxon.jaxp.TransformerImpl.transform(TransformerImpl.java:71)
    at net.sf.saxon.jaxp.TransformerHandlerImpl.endDocument(TransformerHandlerImpl.java:173)
    at stroom.pipeline.filter.XsltFilter.endDocument(XsltFilter.java:305)
    at stroom.pipeline.filter.AbstractXMLFilter.endDocument(AbstractXMLFilter.java:158)
    at stroom.pipeline.filter.AbstractXMLFilter.endDocument(AbstractXMLFilter.java:158)
    at stroom.pipeline.filter.SplitFilter.endElement(SplitFilter.java:356)
    at stroom.pipeline.filter.AbstractXMLFilter.endElement(AbstractXMLFilter.java:326)
    at stroom.pipeline.filter.RecordCountFilter.endElement(RecordCountFilter.java:192)
    at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
    at org.apache.xerces.impl.XML11NSDocumentScannerImpl.scanEndElement(Unknown Source)
    at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
    at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
    at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
    at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
    at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
    at stroom.pipeline.parser.AbstractParser.parse(AbstractParser.java:185)
    at stroom.pipeline.parser.AbstractParser.lambda$createProcessors$0(AbstractParser.java:86)
    at stroom.pipeline.factory.PipelineImpl.process(PipelineImpl.java:129)
    at stroom.core.dataprocess.AbstractProcessorTaskExecutor.processNestedStreams(AbstractProcessorTaskExecutor.java:458)
    at stroom.core.dataprocess.AbstractProcessorTaskExecutor.process(AbstractProcessorTaskExecutor.java:339)
    at stroom.core.dataprocess.AbstractProcessorTaskExecutor.exec(AbstractProcessorTaskExecutor.java:238)
    at stroom.processor.impl.DataProcessorTaskHandler.exec(DataProcessorTaskHandler.java:164)
    at stroom.processor.impl.DataProcessorTaskHandler.lambda$exec$0(DataProcessorTaskHandler.java:92)
    at stroom.task.impl.TaskContextFactoryImpl.lambda$wrap$2(TaskContextFactoryImpl.java:253)
    at stroom.util.logging.LocationAwareLambdaLogger.logDurationIfDebugEnabled(LocationAwareLambdaLogger.java:307)
    at stroom.task.impl.TaskContextFactoryImpl.lambda$wrap$4(TaskContextFactoryImpl.java:253)
    at stroom.util.pipeline.scope.PipelineScopeRunnable.scopeResult(PipelineScopeRunnable.java:39)
    at stroom.task.impl.TaskContextFactoryImpl.lambda$wrap$5(TaskContextFactoryImpl.java:250)
    at stroom.task.impl.TaskContextFactoryImpl.lambda$wrap$6(TaskContextFactoryImpl.java:262)
    at stroom.security.impl.SecurityContextImpl.useAsReadResult(SecurityContextImpl.java:390)
    at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
    at java.base/java.lang.reflect.Method.invoke(Method.java:580)
    at com.google.inject.internal.DelegatingInvocationHandler.invoke(DelegatingInvocationHandler.java:50)
    at jdk.proxy2/jdk.proxy2.$Proxy120.useAsReadResult(Unknown Source)
    at stroom.task.impl.TaskContextFactoryImpl.lambda$wrap$7(TaskContextFactoryImpl.java:262)
    at stroom.security.impl.SecurityContextImpl.asUserResult(SecurityContextImpl.java:322)
    at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
    at java.base/java.lang.reflect.Method.invoke(Method.java:580)
    at com.google.inject.internal.DelegatingInvocationHandler.invoke(DelegatingInvocationHandler.java:50)
    at jdk.proxy2/jdk.proxy2.$Proxy120.asUserResult(Unknown Source)
    at stroom.task.impl.TaskContextFactoryImpl.lambda$wrap$11(TaskContextFactoryImpl.java:260)
    at stroom.processor.impl.DataProcessorTaskHandler.lambda$exec$1(DataProcessorTaskHandler.java:92)
    at stroom.security.impl.SecurityContextImpl.useAsReadResult(SecurityContextImpl.java:390)
    at stroom.processor.impl.DataProcessorTaskHandler.lambda$exec$2(DataProcessorTaskHandler.java:87)
    at stroom.security.impl.SecurityContextImpl.asUserResult(SecurityContextImpl.java:322)
    at stroom.processor.impl.DataProcessorTaskHandler.exec(DataProcessorTaskHandler.java:87)
    at stroom.processor.impl.DataProcessorTaskFactory$RunnableFactoryImpl.lambda$create$0(DataProcessorTaskFactory.java:166)
    at java.base/java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1804)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
    at java.base/java.lang.Thread.run(Thread.java:1583)

The affected field is defined as below

Screenshot 2024-03-20 080735

at055612 commented 3 months ago

Fixed in v7.3-beta.14