launched solr 8.10 fails to "get system information"/create core, error: 'Cannot invoke "String.contains(java.lang.CharSequence)" because the return value of "org.apache.http.client.ClientProtocolExce

2022-04-08 Thread PGNet Dev

i'm re-installing an instance of solr 8.10.1 on a dedicated box

it's launched,

ps ax | grep solr
  85664 ?Sl 1:26 /usr/lib/jvm/java-18-openjdk/bin/java 
-server -Xms512m -Xmx512m -XX:+UseG1GC -XX:+PerfDisableSharedMem 
-XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=250 -XX:+AlwaysPreTouch 
-XX:+ExplicitGCInvokesConcurrent 
-Xlog:gc*:file=/var/log/solr/solr_gc.log:time,uptime:filecount=9,filesize=20M 
-Dsolr.jetty.inetaccess.includes=10.1.1.50, 127.0.0.1, 
-Dsolr.jetty.inetaccess.excludes= -Dsolr.log.level=DEBUG 
-Dsolr.log.dir=/var/log/solr -Djetty.port=8984 -DSTOP.PORT=7984 
-DSTOP.KEY=solrrocks -Dhost=solr.example.com -Duser.timezone=America/New_York 
-XX:-OmitStackTraceInFastThrow -XX:OnOutOfMemoryError=/srv/solr/bin/oom_solr.sh 
8984 /var/log/solr -Djetty.home=/srv/solr/server 
-Dsolr.solr.home=/data/solr/data -Dsolr.data.home= 
-Dsolr.install.dir=/srv/solr/solr 
-Dsolr.default.confdir=/srv/solr/server/solr/configsets/_default/conf 
-Dlog4j.configurationFile=/data/solr/log4j2.xml -Djetty.host=solr.example.com 
-Xss256k -Dsolr.jetty.keystore=/srv/ssl/solr/solr.example.com.server.EC.pfx 
-Dsolr.jetty.keystore.type=PKCS12 
-Dsolr.jetty.truststore=/srv/ssl/solr/solr.example.com.server.EC.pfx 
-Dsolr.jetty.truststore.type=PKCS12 -Dsolr.jetty.ssl.needClientAuth=false 
-Dsolr.jetty.ssl.wantClientAuth=false 
-Djavax.net.ssl.keyStore=/srv/ssl/solr/solr.example.com.server.EC.pfx 
-Djavax.net.ssl.keyStoreType=PKCS12 -Dsolr.ssl.checkPeerName=false 
-Djavax.net.ssl.trustStore=/srv/ssl/solr/solr.example.com.server.EC.pfx 
-Djavax.net.ssl.trustStoreType=PKCS12 -Dsolr.jetty.https.port=8984 
-Dsolr.httpclient.builder.factory=org.apache.solr.client.solrj.impl.PreemptiveBasicAuthClientBuilderFactory
 -Dbasicauth=solradm:solrRocks -Dsolr.log.muteconsole -jar start.jar 
--module=https --lib=/srv/solr/server/solr-webapp/webapp/WEB-INF/lib/* 
--module=gzip

and responds, as usual/expected, in browser @

https://solr.example.com:8984/solr

where

host solr.example.com
solr.example.com has address 10.1.1.50

as well as at shell

sudo -u solr /srv/solr/bin/solr  version
8.10.1

but, checking status, FAILs,

sudo -u solr /srv/solr/bin/solr  status

Found 1 Solr nodes:

Solr process 85664 running on port 8984

ERROR: Failed to get system information from http://localhost:8984/solr due to: 
java.lang.NullPointerException: Cannot invoke "String.contains(java.lang.CharSequence)" 
because the return value of "org.apache.http.client.ClientProtocolException.getMessage()" 
is null

it's looking for

http://localhost:8984/solr

which, @ browser, is non responsive, as in

cat /etc/default/solr.in.sh
...
SOLR_HOST="solr.example.com"
SOLR_OPTS="$SOLR_OPTS -Djetty.host=solr.example.com"
...

and checking @

https://solr.example.com:8984/solr/#/
...
-Dhost=solr.example.com
...
-Djetty.host=solr.example.com
-Djetty.port=8984
...

also, and more problematic, creating a new core fails

sudo -u solr /srv/solr/bin/solr create \
 -c test \
 -p 8984

WARNING: Using _default configset with data driven schema 
functionality. NOT RECOMMENDED for production use.
 To turn off: bin/solr config -c dovecot -p 8984 
-action set-user-property -property update.autoCreateFields -value false

ERROR: Cannot invoke "String.contains(java.lang.CharSequence)" because 
the return value of "org.apache.http.client.ClientProtocolException.getMessage()" is null

java.lang.NullPointerException: Cannot invoke 
"String.contains(java.lang.CharSequence)" because the return value of 
"org.apache.http.client.ClientProtocolException.getMessage()" is null
at 
org.apache.solr.util.SolrCLI.getJson(SolrCLI.java:761)
at 
org.apache.solr.util.SolrCLI.getJson(SolrCLI.java:673)
at 
org.apache.solr.util.SolrCLI$CreateTool.runImpl(SolrCLI.java:2170)
at 
org.apache.solr.util.SolrCLI$ToolBase.runTool(SolrCLI.java:196)
at org.apache.solr.util.SolrCLI.main(SolrCLI.java:304)

i suspect i need to tell the instance config to "get system information" NOT 
from

http://localhost:8984/solr

but instead

https://solr.example.com:8984/solr

where's that set/configured ?
or is there a different cause at work here?


Re: launched solr 8.10 fails to "get system information"/create core, error: 'Cannot invoke "String.contains(java.lang.CharSequence)" because the return value of "org.apache.http.client.ClientProtocol

2022-04-09 Thread PGNet Dev

easily enough 'fixed'

upgrading from solr 8.10.1 -> 8.11.1, cures this reproducible problem

i'm still not clear on the specific cause; i'm guessing atm it's to do with my 
recent/local upgrades of 'java-latest' pkgs from v17 -> v18



solr 8x -> 9.0.0 upgrade; BasicAuth security FAILs @ "o.a.s.s.BasicAuthPlugin Bad auth credentials supplied in Authorization header" ?

2022-05-13 Thread PGNet Dev

 on

lsb_release -rd
Description:Fedora release 36 (Thirty Six)
Release:36

java -version
Picked up JAVA_TOOL_OPTIONS: -Xmx512M
openjdk version "18.0.1" 2022-04-19
OpenJDK Runtime Environment 22.3 (build 18.0.1+10)
OpenJDK 64-Bit Server VM 22.3 (build 18.0.1+10, mixed mode, 
sharing)

i've clean-installed solr 9.0.0

sudo -u solr /srv/webapps/solr/solr/bin/solr version
9.0.0

it's up/running

systemctl status solr
● solr.service - LSB: Controls Apache Solr as a Service
 Loaded: loaded (/etc/rc.d/init.d/solr; generated)
 Active: active (exited) since Fri 2022-05-13 06:22:40 EDT; 2min 
54s ago
   Docs: man:systemd-sysv-generator(8)
Process: 56877 ExecStart=/etc/rc.d/init.d/solr start (code=exited, 
status=0/SUCCESS)
CPU: 43ms

with no user/auth security,

ls -al /data/solr/data/security.json
ls: cannot access '/data/solr/data/security.json': No such file 
or directory

nav to & admin @,

https:///solr.example.com:8983/solr

works as expected.

deploying user BasicAuth security


https://solr.apache.org/guide/solr/latest/deployment-guide/basic-authentication-plugin.html

with

MY_USER_PASS="aa__1+ccc_22"
MY_USER_HASH=$( echo -n $MY_USER_PASS | shasum -a 256 | awk '{print 
$1}' | tr -d ' ')
echo $MY_USER_HASH
79a054509e27e20b16fb85caf221ac8d488168afa6715f2543d761269a72d832
and


egrep "Dbasicauth|SOLR_LOG_LEVEL" /etc/default/solr.in.sh
SOLR_LOG_LEVEL=DEBUG

SOLR_AUTHENTICATION_OPTS="-Dbasicauth=testuser:aa__1+ccc_22"

and

cat /data/solr/data/security.json
{
"authentication":{
   "blockUnknown": true,
   "class":"solr.BasicAuthPlugin",
   
"credentials":{"testuser":"79a054509e27e20b16fb85caf221ac8d488168afa6715f2543d761269a72d832"},
   "realm":"MyRealm Solr",
   "forwardCredentials": false
},
"authorization":{
   "class":"solr.RuleBasedAuthorizationPlugin",
   "permissions":[{"name":"security-edit",
  "role":"admin"}],
   "user-role":{"solr":"admin"}
}}

nav to:

https:///solr.example.com:8983/solr

returns the expected

Basic Authentication

form.

entering credentials

username: testuser
password: aa__1+ccc_22

fails with

Basic Authentication
Unauthorized

Solr requires authentication for resource Dashboard.
Please log in with your username and password for realm MyRealm Solr.

and DEBUG logs,

--> https://pastebin.com/raw/aHVCgGKF

there, this looks possibly suspect,

...
2022-05-13 06:33:00.651 DEBUG (qtp1777443462-23) [] 
o.a.s.s.SolrDispatchFilter Request to authenticate: 
org.apache.solr.servlet.ServletUtils$1@3acaf4f, domain: 10.1.1.27, port: 8983
2022-05-13 06:33:00.656 DEBUG (qtp1777443462-22) [] 
o.a.s.s.SolrDispatchFilter Request to authenticate: 
org.apache.solr.servlet.ServletUtils$1@540dbd19, domain: 10.1.1.27, port: 8983
2022-05-13 06:33:00.660 DEBUG (qtp1777443462-23) [] 
o.a.s.s.BasicAuthPlugin Bad auth credentials supplied in Authorization header
2022-05-13 06:33:00.650 DEBUG (qtp1777443462-20) [] 
o.a.s.s.SolrDispatchFilter Request to authenticate: 
org.apache.solr.servlet.ServletUtils$1@7e6b57df, domain: 10.1.1.27, port: 8983
2022-05-13 06:33:00.661 DEBUG (qtp1777443462-20) [] 
o.a.s.s.BasicAuthPlugin Bad auth credentials supplied in Authorization header
2022-05-13 06:33:00.662 DEBUG (qtp1777443462-20) [] 
o.a.s.s.BasicAuthPlugin Prefixing WWW-Authenticate header for Basic Auth with 
'x' to prevent browser basic auth popup
??  2022-05-13 06:33:00.663 DEBUG (qtp1777443462-22) [] 
o.a.s.s.BasicAuthPlugin Bad auth credentials supplied in Authorization header
??  2022-05-13 06:33:00.663 DEBUG (qtp1777443462-22) [] 
o.a.s.s.BasicAuthPlugin Prefixing WWW-Authenticate header for Basic Auth with 
'x' to prevent browser basic auth popup
2022-05-13 06:33:00.667 DEBUG (qtp1777443462-22) [] 
o.e.j.s.HttpChannelState sendError HttpChannelState@191ce1ad{s=HANDLING 
rs=BLOCKING os=OPEN is=IDLE awp=false se=false i=true al=0}
...

dropping back to solr 8x, i've no issues with basicauth.

is my config wrong for 9x?  known issue? other?