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 58 forks source link

Nasty ERROR when changing Dynamic Index structure #4142

Closed stroomdev10 closed 3 months ago

stroomdev10 commented 4 months ago

I had a Dynamic Index, SourcePort was incorrectly defined as Text

I hanged the Dynamic Indexing pipeline to make the field Integer

The system made lots of corrupt shards, and the logs are filled with

ERROR  [2024-03-01T12:35:22.015Z] [Data Processor# #3477] stroom.index.impl.IndexerImpl -  Setting index shard status to corrupt because (java.lang.IllegalArgumentException: cannot change field "SourcePort" from index options=DOCS to inconsistent index options=NONE)
java.lang.IllegalArgumentException: cannot change field "SourcePort" from index options=DOCS to inconsistent index options=NONE
        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:280)
        at stroom.index.lucene980.Lucene980IndexShardWriter.addDocument(Lucene980IndexShardWriter.java:262)
        at stroom.index.impl.IndexerImpl.addDocument(IndexerImpl.java:111)
        at stroom.index.impl.IndexerImpl.addDocument(IndexerImpl.java:73)
        at stroom.index.impl.DynamicIndexingFilter.processFields(DynamicIndexingFilter.java:246)
        at stroom.search.extraction.AbstractFieldFilter.endElement(AbstractFieldFilter.java:103)
        at stroom.pipeline.filter.XMLFilterFork.endElement(XMLFilterFork.java:527)
        at stroom.pipeline.filter.AbstractXMLFilter.endElement(AbstractXMLFilter.java:326)
        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:188)
        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:184)
        at stroom.pipeline.parser.AbstractParser.lambda$createProcessors$0(AbstractParser.java:85)
        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)