[
https://issues.apache.org/jira/browse/SOLR-14392?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Constantin Mitocaru updated SOLR-14392:
---------------------------------------
Summary: CloudSolrClient executes select calls but not updates after adding
authentication (was: Solr Cloud 8.5.0 executes select calls but not updates
after adding authentication)
> CloudSolrClient executes select calls but not updates after adding
> authentication
> ---------------------------------------------------------------------------------
>
> Key: SOLR-14392
> URL: https://issues.apache.org/jira/browse/SOLR-14392
> Project: Solr
> Issue Type: Bug
> Security Level: Public(Default Security Level. Issues are Public)
> Components: SolrCloud
> Affects Versions: 8.5
> Environment: Windows 7 64bit
> java version "11.0.3" 2019-04-16 LTS
> Java(TM) SE Runtime Environment 18.9 (build 11.0.3+12-LTS)
> Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.3+12-LTS, mixed mode)
> solr 8.5.0 cloud
>
> RAM 32GB
>
> Reporter: Constantin Mitocaru
> Priority: Major
> Labels: Authorization
>
> I'm trying to upgrade from 8.3.1 to 8.5.0 and I was forced to enable
> authorization and authentication (set the file /security.json in zk):
> {code:java}
> {
> "authentication":{
> "blockUnknown": true,
> "class":"solr.BasicAuthPlugin",
> "credentials":{"solr":"fAOsiVaz+IMaWzzypxvbOsTgA4YC0m0PPymQH09T5Vs=
> 0DJIpGUbCUHtEr4NvF6Lluyd1en0cHgGsQLiUYYyphU="},
> "realm":"My Solr users",
> "forwardCredentials": true
> },
> "authorization":{
> "class":"solr.RuleBasedAuthorizationPlugin",
> "permissions":[{"name":"all","role":"admin"}],
> "user-role":{"solr":"admin"}
> }}
> {code}
> In my solr client config I have:
> {code:java}
> final ModifiableSolrParams params = new ModifiableSolrParams();
> params.set("followRedirects", false);
> params.set("allowCompression", false);
> params.set("httpBasicAuthUser", solrUser);
> params.set("httpBasicAuthPassword", solrPass);
> CloseableHttpClient httpClient = HttpClientUtil.createClient( params);
> final CloudSolrClient client = new CloudSolrClient.Builder(
> zkHosts,Optional.empty() )
> .withHttpClient(httpClient)
> .build();
> client.setZkClientTimeout( 30000 );
> return client;
> {code}
> Now, all the select calls (reads) are working via this client. However when I
> try to add new documents to a collection:
> {code:java}
> ...
> solrClient.add(collName, docs);
> ...
> {code}
> I get this exception:
> {code:java}
> org.apache.solr.client.solrj.impl.CloudSolrClient$RouteException:
> IOException occurred when talking to server at:
> http://192.168.2.159:8983/solr/coreTgy_shard1_replica_n1
> at
> org.apache.solr.client.solrj.impl.CloudSolrClient.getRouteException(CloudSolrClient.java:125)
> at
> org.apache.solr.client.solrj.impl.CloudSolrClient.getRouteException(CloudSolrClient.java:46)
> at
> org.apache.solr.client.solrj.impl.BaseCloudSolrClient.directUpdate(BaseCloudSolrClient.java:559)
> at
> org.apache.solr.client.solrj.impl.BaseCloudSolrClient.sendRequest(BaseCloudSolrClient.java:1046)
> at
> org.apache.solr.client.solrj.impl.BaseCloudSolrClient.requestWithRetryOnStaleState(BaseCloudSolrClient.java:906)
> at
> org.apache.solr.client.solrj.impl.BaseCloudSolrClient.request(BaseCloudSolrClient.java:838)
> at
> org.apache.solr.client.solrj.SolrRequest.process(SolrRequest.java:211)
> at
> org.apache.solr.client.solrj.SolrClient.add(SolrClient.java:106)
> at
> org.apache.solr.client.solrj.SolrClient.add(SolrClient.java:71)
> at
> com.sytrue.nlp.tgy.impl.SolrTgyEngine.saveConcept(SolrTgyEngine.java:1109)
> at
> com.sytrue.nlp.tgy.mtn.impl.SolrTgyMtnImpl.removeConceptTerm(SolrTgyMtnImpl.java:429)
> at
> com.sytrue.nlp.tgy.mtn.impl.SolrTgyMtnImpl.processTermAlteration(SolrTgyMtnImpl.java:91)
> at
> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at
> java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.base/java.lang.reflect.Method.invoke(Method.java:566)
> at
> org.apache.camel.support.ObjectHelper.invokeMethodSafe(ObjectHelper.java:207)
> at
> org.apache.camel.component.bean.MethodInfo.invoke(MethodInfo.java:421)
> at
> org.apache.camel.component.bean.MethodInfo$1.doProceed(MethodInfo.java:242)
> at
> org.apache.camel.component.bean.MethodInfo$1.proceed(MethodInfo.java:213)
> at
> org.apache.camel.component.bean.AbstractBeanProcessor.process(AbstractBeanProcessor.java:148)
> at
> org.apache.camel.component.bean.BeanProcessor.process(BeanProcessor.java:55)
> at
> org.apache.camel.component.bean.BeanProducer.process(BeanProducer.java:41)
> at
> org.apache.camel.processor.SendProcessor.process(SendProcessor.java:134)
> at
> org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$RedeliveryState.run(RedeliveryErrorHandler.java:476)
> at
> org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.schedule(DefaultReactiveExecutor.java:185)
> at
> org.apache.camel.impl.engine.DefaultReactiveExecutor.scheduleMain(DefaultReactiveExecutor.java:59)
> at org.apache.camel.processor.Pipeline.process(Pipeline.java:87)
> at
> org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:228)
> at
> org.apache.camel.impl.engine.DefaultAsyncProcessorAwaitManager.process(DefaultAsyncProcessorAwaitManager.java:78)
> at
> org.apache.camel.support.AsyncProcessorSupport.process(AsyncProcessorSupport.java:40)
> at
> org.apache.camel.component.jms.EndpointMessageListener.onMessage(EndpointMessageListener.java:129)
> at
> org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:736)
> at
> org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:696)
> at
> org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:674)
> at
> org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:318)
> at
> org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:245)
> at
> org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:1189)
> at
> org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:1179)
> at
> org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:1076)
> at
> java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
> at
> java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
> at java.base/java.lang.Thread.run(Thread.java:834)
> Caused by: org.apache.solr.client.solrj.SolrServerException:
> IOException occurred when talking to server at:
> http://192.168.2.159:8983/solr/coreTgy_shard1_replica_n1
> at
> org.apache.solr.client.solrj.impl.HttpSolrClient.executeMethod(HttpSolrClient.java:679)
> at
> org.apache.solr.client.solrj.impl.HttpSolrClient.request(HttpSolrClient.java:265)
> at
> org.apache.solr.client.solrj.impl.HttpSolrClient.request(HttpSolrClient.java:248)
> at
> org.apache.solr.client.solrj.impl.LBSolrClient.doRequest(LBSolrClient.java:368)
> at
> org.apache.solr.client.solrj.impl.LBSolrClient.request(LBSolrClient.java:296)
> at
> org.apache.solr.client.solrj.impl.BaseCloudSolrClient.lambda$directUpdate$0(BaseCloudSolrClient.java:533)
> at
> java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
> at
> org.apache.solr.common.util.ExecutorUtil$MDCAwareThreadPoolExecutor.lambda$execute$0(ExecutorUtil.java:210)
> ... 3 more
> {code}
> I think there might be an issue when the /update path is used in combination
> with basic authentication and POST method in which the "/update" portion is
> not added to the URL.
> What I'm trying to say is that the url should have been
> [http://192.168.2.159:8983/solr/coreTgy_shard1_replica_n1/update]
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]