[
https://issues.apache.org/jira/browse/SOLR-15420?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17348211#comment-17348211
]
Florin Babes commented on SOLR-15420:
-------------------------------------
Hello [~janhoy] ,
Yes, I am doing atomic updates of just one field.
java --version
openjdk 11.0.5 2019-10-15 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.5+10-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.5+10-LTS, mixed mode, sharing)
Request handler is this
{code:java}
<updateRequestProcessorChain name="tolerant-chain">
<processor class="solr.TolerantUpdateProcessorFactory">
<int name="maxErrors">-1</int>
</processor>
<processor class="solr.RunUpdateProcessorFactory" />
</updateRequestProcessorChain>
<requestHandler name="/update-bulk" class="solr.UpdateRequestHandler">
<lst name="defaults">
<str name = "update.chain">tolerant-chain</str>
</lst>
</requestHandler>
{code}
The schema looks like this:
{code:java}
<?xml version="1.0" encoding="UTF-8"?>
<schema name="example-data-driven-schema" version="1.6">
<uniqueKey>product_id</uniqueKey>
<similarity class="solr.SchemaSimilarityFactory" />
<fieldType name="plong" class="solr.LongPointField" />
<fieldType name="tags" class="solr.TextField" omitNorms="true"
positionIncrementGap="100" enableGraphQueries="false"
autoGeneratePhraseQueries="false">
<analyzer type="index">
<tokenizer class="solr.PatternTokenizerFactory"
pattern="([a-zA-Z0-9]+|\s+|\|\d+\.\d+)" group="1"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.HunspellStemFilterFactory" dictionary="hunspell_ro.dic"
affix="hunspell_ro.aff" ignoreCase="true" strictAffixParsing="true" />
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.HunspellStemFilterFactory" dictionary="hunspell_ro.dic"
affix="hunspell_ro.aff" ignoreCase="true" strictAffixParsing="true" />
</analyzer>
</fieldType>
<field name="_version_" type="plong" indexed="true" stored="true"
docValues="true" />
<field name="id" type="string" indexed="true" stored="true" required="true"
docValues="true" />
<field name="product_id" type="string" indexed="true" stored="true"
required="true" docValues="true" />
<field name="tags" type="tags" stored="true" indexed="true" multiValued="true"
termVectors="true" />
</schema>
{code}
This is an update request but instead of 2 docs we send 1000 per request
{code:java}
POST /solr/core_name/update-bulk/?version=2.2&indent=on&wt=xml HTTP/1.1
Host: localhost:8983
Accept: */*
Accept-Encoding: deflate, gzip
Accept-Charset: utf-8
Keep-Alive: 300
Connection: keep-alive
Content-Type: text/xml;charset=UTF-8
Content-Length: 9255
<?xml version="1.0" encoding="UTF-8"?>
<add overwrite="true">
<doc>
<field name="id">73615270</field>
<field name="product_id">37764204</field>
<field name="_version_">1</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags_product_traffic" update="removeregex">.*</field>
</doc>
<doc>
<field name="id">73615327</field>
<field name="product_id">37764210</field>
<field name="_version_">1</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
<field name="tags" update="set">word1 word2</field>
</doc>
</add>
{code}
> Exception thrown during intensive batch partial updating and segment merging
> ----------------------------------------------------------------------------
>
> Key: SOLR-15420
> URL: https://issues.apache.org/jira/browse/SOLR-15420
> Project: Solr
> Issue Type: Bug
> Security Level: Public(Default Security Level. Issues are Public)
> Affects Versions: 8.8.2
> Reporter: Florin Babes
> Priority: Major
>
> Hello,
> I have the following situation:
> solr 8.8.2 standalone
> core with ~7 million documents
> Daily we run an import in which we update all 7 million documents. The
> updated field is a multifield that can contain up to 300 string (max 5
> words). Updating so many documents triggers a segment merge in which big
> segments are merged (~5-6GB). The merge never finishes and solr raises the
> following exception. Also documents are written in tlog.
> I've tested also with 60 string per field, same thing happens.
> It this a bug or it can be a misconfiguration?I've tried to follow the
> stacktrace but I can't find a failure point.
> 2021-05-10 00:31:50.145 ERROR (qtp507819576-40899) [ x:products]
> o.a.s.s.HttpSolrCall org.apache.solr.common.SolrException: Server error
> writing document id 3664065 to the index
> at
> org.apache.solr.update.DirectUpdateHandler2.addDoc(DirectUpdateHandler2.java:246)
> at
> org.apache.solr.update.processor.RunUpdateProcessorFactory$RunUpdateProcessor.processAdd(RunUpdateProcessorFactory.java:73)
> at
> org.apache.solr.update.processor.UpdateRequestProcessor.processAdd(UpdateRequestProcessor.java:55)
> at
> org.apache.solr.update.processor.DistributedUpdateProcessor.doLocalAdd(DistributedUpdateProcessor.java:256)
> at
> org.apache.solr.update.processor.DistributedUpdateProcessor.doVersionAdd(DistributedUpdateProcessor.java:495)
> at
> org.apache.solr.update.processor.DistributedUpdateProcessor.lambda$versionAdd$0(DistributedUpdateProcessor.java:336)
> at
> org.apache.solr.update.VersionBucket.runWithLock(VersionBucket.java:50)
> at
> org.apache.solr.update.processor.DistributedUpdateProcessor.versionAdd(DistributedUpdateProcessor.java:336)
> at
> org.apache.solr.update.processor.DistributedUpdateProcessor.processAdd(DistributedUpdateProcessor.java:222)
> at
> org.apache.solr.handler.loader.XMLLoader.processUpdate(XMLLoader.java:263)
> at org.apache.solr.handler.loader.XMLLoader.load(XMLLoader.java:190)
> at
> org.apache.solr.handler.UpdateRequestHandler$1.load(UpdateRequestHandler.java:97)
> at
> org.apache.solr.handler.ContentStreamHandlerBase.handleRequestBody(ContentStreamHandlerBase.java:82)
> at
> org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:216)
> at org.apache.solr.core.SolrCore.execute(SolrCore.java:2646)
> at org.apache.solr.servlet.HttpSolrCall.execute(HttpSolrCall.java:794)
> at org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:567)
> at
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:427)
> at
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:357)
> at
> org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:201)
> at
> org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
> at
> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:548)
> at
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
> at
> org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:602)
> at
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
> at
> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
> at
> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1612)
> at
> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
> at
> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1434)
> at
> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
> at
> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:501)
> at
> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1582)
> at
> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
> at
> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1349)
> at
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
> at
> org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:191)
> at
> org.eclipse.jetty.server.handler.InetAccessHandler.handle(InetAccessHandler.java:177)
> at
> org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:146)
> at
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
> at
> org.eclipse.jetty.rewrite.handler.RewriteHandler.handle(RewriteHandler.java:322)
> at
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
> at org.eclipse.jetty.server.Server.handle(Server.java:516)
> at
> org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:383)
> at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:556)
> at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:375)
> at
> org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:273)
> at
> org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
> at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
> at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
> at
> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
> at
> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
> at
> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
> at
> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
> at
> org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:375)
> at
> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:773)
> at
> org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:905)
> at java.base/java.lang.Thread.run(Thread.java:834)
> Caused by: org.apache.lucene.store.AlreadyClosedException: this IndexWriter
> is closed
> at org.apache.lucene.index.IndexWriter.ensureOpen(IndexWriter.java:877)
> at org.apache.lucene.index.IndexWriter.ensureOpen(IndexWriter.java:891)
> at
> org.apache.lucene.index.IndexWriter.updateDocuments(IndexWriter.java:1468)
> at
> org.apache.lucene.index.IndexWriter.updateDocuments(IndexWriter.java:1464)
> at
> org.apache.solr.update.DirectUpdateHandler2.updateDocOrDocValues(DirectUpdateHandler2.java:967)
> at
> org.apache.solr.update.DirectUpdateHandler2.doNormalUpdate(DirectUpdateHandler2.java:342)
> at
> org.apache.solr.update.DirectUpdateHandler2.addDoc0(DirectUpdateHandler2.java:294)
> at
> org.apache.solr.update.DirectUpdateHandler2.addDoc(DirectUpdateHandler2.java:241)
> ... 56 more
> Caused by: java.lang.ArithmeticException: integer overflow
> at java.base/java.lang.Math.toIntExact(Math.java:1071)
> at
> org.apache.lucene.codecs.compressing.CompressingStoredFieldsWriter.finishDocument(CompressingStoredFieldsWriter.java:166)
> at
> org.apache.lucene.index.StoredFieldsConsumer.finishDocument(StoredFieldsConsumer.java:68)
> at
> org.apache.lucene.index.DefaultIndexingChain.finishStoredFields(DefaultIndexingChain.java:460)
> at
> org.apache.lucene.index.DefaultIndexingChain.processDocument(DefaultIndexingChain.java:496)
> at
> org.apache.lucene.index.DocumentsWriterPerThread.updateDocuments(DocumentsWriterPerThread.java:208)
> at
> org.apache.lucene.index.DocumentsWriter.updateDocuments(DocumentsWriter.java:415)
> at
> org.apache.lucene.index.IndexWriter.updateDocuments(IndexWriter.java:1471)
> at
> org.apache.lucene.index.IndexWriter.updateDocuments(IndexWriter.java:1464)
> at
> org.apache.solr.update.DirectUpdateHandler2.updateDocOrDocValues(DirectUpdateHandler2.java:967)
> at
> org.apache.solr.update.DirectUpdateHandler2.doNormalUpdate(DirectUpdateHandler2.java:342)
> at
> org.apache.solr.update.DirectUpdateHandler2.addDoc0(DirectUpdateHandler2.java:294)
> at
> org.apache.solr.update.DirectUpdateHandler2.addDoc(DirectUpdateHandler2.java:241)
> at
> org.apache.solr.update.processor.RunUpdateProcessorFactory$RunUpdateProcessor.processAdd(RunUpdateProcessorFactory.java:73)
> at
> org.apache.solr.update.processor.UpdateRequestProcessor.processAdd(UpdateRequestProcessor.java:55)
> at
> org.apache.solr.update.processor.DistributedUpdateProcessor.doLocalAdd(DistributedUpdateProcessor.java:256)
> at
> org.apache.solr.update.processor.DistributedUpdateProcessor.doVersionAdd(DistributedUpdateProcessor.java:495)
> at
> org.apache.solr.update.processor.DistributedUpdateProcessor.lambda$versionAdd$0(DistributedUpdateProcessor.java:336)
> at
> org.apache.solr.update.VersionBucket.runWithLock(VersionBucket.java:50)
> at
> org.apache.solr.update.processor.DistributedUpdateProcessor.versionAdd(DistributedUpdateProcessor.java:336)
> at
> org.apache.solr.update.processor.DistributedUpdateProcessor.processAdd(DistributedUpdateProcessor.java:222)
> at
> org.apache.solr.update.processor.UpdateRequestProcessor.processAdd(UpdateRequestProcessor.java:55)
> at
> org.apache.solr.update.processor.TolerantUpdateProcessor.processAdd(TolerantUpdateProcessor.java:150)
> ... 48 more
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]