bq: I checked in the Solr Admin and noticed that the same document resided in both shards on the same node....
If this means two _different_ shards (as opposed to two replicas in the _same_ shard) showed the document, then that's the proverbial "smoking gun", somehow your setup isn't what you think it is, perhaps you are somehow using implicit routing and routing the doc with the same ID to two different shards? try querying each of your replicas with &distrib=false to see if the doc is somehow on two different shards. If so, I suspect that's the root of your problems and figuring out _how_ that happened is the next step I'd recommend. As to why the raw URL deletes should work and CloudSolrClient doesn't, CloudSolrClient tries to send updates only to the shard that they should end up on. So if your routing is odd or you somehow have the same doc on two shards, the "wrong" shard wouldn't see the delete. There's some speculation here BTW, I didn't trace through the code... But this functionality is tested in the unit tests (CloudSolrClientTest.java), so I suspect it's something odd in your setup.... Best, Erick On Mon, May 30, 2016 at 12:33 PM, Moritz Becker <moritz.bec...@gmx.at> wrote: > Hi, > > I have the following issue: > I initially started with a Solr 5.3.1 + Zookeeper 3.4.6 cloud setup with 2 > solr nodes and with one collection consisting of 2 shards and 2 replicas. > > I am accessing the cluster using the CloudSolrClient. When I tried to delete > a document, no error occurred but after deletion and subsequent commit, the > document was still available via index queries. > I checked in the Solr Admin and noticed that the same document resided in > both shards on the same node which I thought was odd. > Also after deleting the collection and recreating it, the issue remained. > > Then I tried upgrading to latest Solr 6.0.1 with the same setup. Again, I > recreated the collection but I still could not delete the documents. Here is > a log snippet of the deletion attempt of a single document: > > -------------------------------------------- > > 126023 INFO (qtp12209492-16) [c:cc5363_dm_documentversion s:shard1 > r:core_node4 x:cc5363_dm_documentversion_shard1_replica1] > o.a.s.u.p.LogUpdateProcessorFactory > [cc5363_dm_documentversion_shard1_replica1] webapp=/solr path=/update > params={update.distrib=FROMLEADER&distrib.from=http://localhost:8983/solr/cc5363_dm_documentversion_shard1_replica2/&wt=javabin&version=2}{delete=[100002535 > (-1535773473331216384)]} 0 16 > 126024 INFO (commitScheduler-15-thread-1) [c:cc5363_dm_documentversion > s:shard1 r:core_node4 x:cc5363_dm_documentversion_shard1_replica1] > o.a.s.u.DirectUpdateHandler2 start > commit{,optimize=false,openSearcher=true,waitSearcher=true,expungeDeletes=false,softCommit=true,prepareCommit=false} > 126036 INFO (commitScheduler-15-thread-1) [c:cc5363_dm_documentversion > s:shard1 r:core_node4 x:cc5363_dm_documentversion_shard1_replica1] > o.a.s.c.SolrCore SolrIndexSearcher has not changed - not re-opening: > org.apache.solr.search.SolrIndexSearcher > 126038 INFO (commitScheduler-15-thread-1) [c:cc5363_dm_documentversion > s:shard1 r:core_node4 x:cc5363_dm_documentversion_shard1_replica1] > o.a.s.u.DirectUpdateHandler2 end_commit_flush > 126049 INFO (qtp12209492-20) [c:cc5363_dm_documentversion s:shard2 > r:core_node1 x:cc5363_dm_documentversion_shard2_replica1] > o.a.s.u.DirectUpdateHandler2 start > commit{,optimize=false,openSearcher=true,waitSearcher=true,expungeDeletes=false,softCommit=false,prepareCommit=false} > 126050 INFO (qtp12209492-20) [c:cc5363_dm_documentversion s:shard2 > r:core_node1 x:cc5363_dm_documentversion_shard2_replica1] > o.a.s.u.DirectUpdateHandler2 No uncommitted changes. Skipping IW.commit. > 126051 INFO (qtp12209492-19) [c:cc5363_dm_documentversion s:shard1 > r:core_node4 x:cc5363_dm_documentversion_shard1_replica1] > o.a.s.u.DirectUpdateHandler2 start > commit{,optimize=false,openSearcher=true,waitSearcher=true,expungeDeletes=false,softCommit=false,prepareCommit=false} > 126054 INFO (qtp12209492-20) [c:cc5363_dm_documentversion s:shard2 > r:core_node1 x:cc5363_dm_documentversion_shard2_replica1] o.a.s.c.SolrCore > SolrIndexSearcher has not changed - not re-opening: > org.apache.solr.search.SolrIndexSearcher > 126056 INFO (qtp12209492-20) [c:cc5363_dm_documentversion s:shard2 > r:core_node1 x:cc5363_dm_documentversion_shard2_replica1] > o.a.s.u.DirectUpdateHandler2 end_commit_flush > 126055 INFO (qtp12209492-19) [c:cc5363_dm_documentversion s:shard1 > r:core_node4 x:cc5363_dm_documentversion_shard1_replica1] > o.a.s.u.DirectUpdateHandler2 No uncommitted changes. Skipping IW.commit. > 126057 INFO (qtp12209492-20) [c:cc5363_dm_documentversion s:shard2 > r:core_node1 x:cc5363_dm_documentversion_shard2_replica1] > o.a.s.u.p.LogUpdateProcessorFactory > [cc5363_dm_documentversion_shard2_replica1] webapp=/solr path=/update > params={update.distrib=FROMLEADER&waitSearcher=true&openSearcher=true&commit=true&softCommit=false&distrib.from=http://localhost:8983/solr/cc5363_dm_documentversion_shard2_replica2/&commit_end_point=true&wt=javabin&version=2&expungeDeletes=false}{commit=} > 0 10 > 126059 INFO (qtp12209492-19) [c:cc5363_dm_documentversion s:shard1 > r:core_node4 x:cc5363_dm_documentversion_shard1_replica1] o.a.s.c.SolrCore > SolrIndexSearcher has not changed - not re-opening: > org.apache.solr.search.SolrIndexSearcher > 126063 INFO (qtp12209492-19) [c:cc5363_dm_documentversion s:shard1 > r:core_node4 x:cc5363_dm_documentversion_shard1_replica1] > o.a.s.u.DirectUpdateHandler2 end_commit_flush > 126064 INFO (qtp12209492-19) [c:cc5363_dm_documentversion s:shard1 > r:core_node4 x:cc5363_dm_documentversion_shard1_replica1] > o.a.s.u.p.LogUpdateProcessorFactory > [cc5363_dm_documentversion_shard1_replica1] webapp=/solr path=/update > params={update.distrib=FROMLEADER&waitSearcher=true&openSearcher=true&commit=true&softCommit=false&distrib.from=http://localhost:8983/solr/cc5363_dm_documentversion_shard2_replica2/&commit_end_point=true&wt=javabin&version=2&expungeDeletes=false}{commit=} > 0 13 > -------------------------------------------- > > I used the CloudSolrClient.deleteById(collection, id); to delete the document. > > According to the logs, Solr thinks that nothing has changed and does not > recreate the searcher so I tried to restart the instances but the document > was still there. > Finally, I was able to manually delete the document via the following request: > > POST > http://localhost:7574/solr/cc5363_dm_documentversion_shard2_replica1/update?commit=true > <delete><query>id:100002535</query></delete> > > So I tried CloudSolrClient.deleteByQuery(collection, "id:" + id); and it > worked as well. > This could be a bug in the CloudSolrClient.deleteById method or in the server > side handler. > > Since my schema defines a uniqueKey, deleteById should work, right? Here is > the relevant schema snippet: > > <field name="id" type="int" indexed="true" stored="true" required="true" > multiValued="false"/> > <fieldType name="int" class="solr.TrieIntField" precisionStep="0" > positionIncrementGap="0"/> > <uniqueKey>id</uniqueKey> > > I also tried string type for id but it did not make any difference. > > > <field name="id" type="string" indexed="true" stored="true" required="true" > multiValued="false"/> > <fieldType name="string" class="solr.StrField" sortMissingLast="true" /> > > Thanks, > > Moritz