[ https://issues.apache.org/jira/browse/SOLR-12803?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jason Gerlowski resolved SOLR-12803. ------------------------------------ Resolution: Fixed Fix Version/s: master (8.0) 7.6 Not sure where the gitbot commits are here, but I've committed fixes for this on {{master}} (367bdf7f749a4386071f4444e2d6a09591f38daf) and {{branch_7x}} (688fe19d5a76596b1d45a9644af5f7f9ba246e84). Marking this as closed. > ConcurrentUpdateSolrClient doesn't obey "collection" when streaming updates > --------------------------------------------------------------------------- > > Key: SOLR-12803 > URL: https://issues.apache.org/jira/browse/SOLR-12803 > Project: Solr > Issue Type: Test > Security Level: Public(Default Security Level. Issues are Public) > Components: SolrJ > Affects Versions: 7.5 > Reporter: Jason Gerlowski > Assignee: Jason Gerlowski > Priority: Major > Fix For: 7.6, master (8.0) > > Attachments: SOLR-12803.patch, SOLR-12803.patch > > > ConcurrentUpdateSolrClient spins up background threads that pull documents > from a queue and feed them into open HTTP connections. Before writing each > UpdateRequest on the connection, CUSC checks that the SolrParams match the > params used when originally opening the connection. But it doesn't check > that the collection is the same. > If a user is using the same ConcurrentUpdateSolrClient to send documents to > multiple collections simultaneously, each of their UpdateRequest might go to > the wrong collection entirely, based on what connections are already open. > The problem can be reproduced with the snippet below. The correct behavior > would be for 500 docs to go to each collection. But instead, on most runs > all 1000 go to collection1. > {code:java} > @Test > public void cusc_test() throws Exception { > try (SolrClient client = new > ConcurrentUpdateSolrClient.Builder("http://localhost:8983/solr").build()) { > for (int i = 0; i < 1000; i++) { > SolrInputDocument doc = new SolrInputDocument(); > doc.setField("id", "value" + i); > if (i%2 == 0) { > client.add("collection1", doc); > } else { > client.add("collection2", doc); > } > } > client.commit("collection1"); > client.commit("collection2"); > } > }{code} -- This message was sent by Atlassian JIRA (v7.6.3#76005) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org