Post

How to help Apache Solr™ project testing Solr 9.5 RC3

Jason Gerlowski, release manager of Solr 9.5.0, wrote on Wednesday, February 7th, 2024, to the Solr developer mailing list:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
[VOTE] Release Solr 9.5.0 RC3
Jason Gerlowski [email protected] via solr.apache.org 
	
Wed, Feb 7, 5:58 PM
	
to dev
Please vote for release candidate 3 for Solr 9.5.0

The artifacts can be downloaded from:
https://dist.apache.org/repos/dist/dev/solr/solr-9.5.0-RC3-rev-cdd27dd15c3a6574032e9b1b92b148ab4e383599

You can run the smoke tester directly with this command:

python3 -u dev-tools/scripts/smokeTestRelease.py \
https://dist.apache.org/repos/dist/dev/solr/solr-9.5.0-RC3-rev-cdd27dd15c3a6574032e9b1b92b148ab4e383599

You can build a release-candidate of the official docker images (full &
slim) using the following command:

SOLR_DOWNLOAD_SERVER=
https://dist.apache.org/repos/dist/dev/solr/solr-9.5.0-RC3-rev-cdd27dd15c3a6574032e9b1b92b148ab4e383599/solr
&& \
  docker build $SOLR_DOWNLOAD_SERVER/9.5.0/docker/Dockerfile.official-full \
    --build-arg SOLR_DOWNLOAD_SERVER=$SOLR_DOWNLOAD_SERVER \
    -t solr-rc:9.5.0-3 && \
  docker build $SOLR_DOWNLOAD_SERVER/9.5.0/docker/Dockerfile.official-slim \
    --build-arg SOLR_DOWNLOAD_SERVER=$SOLR_DOWNLOAD_SERVER \
    -t solr-rc:9.5.0-3-slim

The vote will be open for at least 72 hours i.e. until 2024-02-10 21:00 UTC.

[ ] +1  approve
[ ] +0  no opinion
[ ] -1  disapprove (and reason why)

Here is my +1

So now is the time to test the Solr 9.5.0 RC3 and report any possible issues.

Jan Høydahl describes the release process here in detail:

  • The release is vetted and personally approved by at least three PMC members.
  • Any PMC member can stop a release with her veto if there are legitimate concerns.
  • The artifacts (downloads) are built and signed by a committer and not tampered with, which is why we PGP sign and SHA512 checksum the files.

I am not a Solr committer nor a PMC member, but I can give a non-binding vote with my test results. You can help test the release candidate, too, and here is how:

Configure Solr development environment

I used Ubuntu 22.04 LTS AMD64 with 16GB RAM. For running the Solr smoke tests, 8GB RAM was enough to finish the smoke tests successfully.

Installing JDK 11

We will use Java 11 JDK from Eclipse Temurin as the Solr source code recommends. Here are the original steps to install Temurin OpenJDK 11 on Debian/Ubuntu—the following steps as root.

Ensure the necessary packages are present:

1
apt install -y wget apt-transport-https gpg

Download the Eclipse Adoptium GPG key:

1
wget -qO - https://packages.adoptium.net/artifactory/api/gpg/key/public | gpg --dearmor | tee /etc/apt/trusted.gpg.d/adoptium.gpg > /dev/null

Configure the Eclipse Adoptium apt repository. To check the complete list of supported versions, look at the list in the tree at https://packages.adoptium.net/ui/native/deb/dists/.

1
echo "deb https://packages.adoptium.net/artifactory/deb $(awk -F= '/^VERSION_CODENAME/{print$2}' /etc/os-release) main" | tee /etc/apt/sources.list.d/adoptium.list

Install the Temurin version you require:

1
2
apt update # update if you haven't already
apt install -y temurin-11-jdk

Setting JDK 11 environment

Set the system Java to Opendk 11 Temurin. The following steps are as root.

1
update-java-alternatives -s temurin-11-jdk-amd64

Now, test if we are using Temurin as your user.

1
java --version

Expected output

1
2
3
openjdk 11.0.22 2024-01-16
OpenJDK Runtime Environment Temurin-11.0.22+7 (build 11.0.22+7)
OpenJDK 64-Bit Server VM Temurin-11.0.22+7 (build 11.0.22+7, mixed mode)

Setting JAVA_HOME for all users in /etc/environment with this line:

1
JAVA_HOME="/usr/lib/jvm/temurin-11-jdk-amd64/"

or only for your user in ~/.profile with this line:

1
export JAVA_HOME="/usr/lib/jvm/temurin-11-jdk-amd64/"

You will need to log out and log in again and to test as your user:

1
export|grep JAVA_HOME

Expected output:

1
declare -x JAVA_HOME="/usr/lib/jvm/temurin-11-jdk-amd64/"

Setting user limits

As described in the Taking Solr to Production, if nofile - max number of open file descriptors or nproc - max number of processes user soft limits are less than 65000, you will see warnings and solr compilation/smoke tests may fail. To see your user hard limits:

1
ulimit -aH

My output, yours, may be different.

1
2
open files                          (-n) 1048576
max user processes                  (-u) 63498

And your user soft limits:

1
ulimit -aS

My output, yours, may be different.

1
2
open files                          (-n) 1024
max user processes                  (-u) 63498

Add/edit /etc/security/limits.conf or /etc/security/limits.d/user.conf soft limits for nproc and nofile higher than 65000. Soft limits must be less or equal to the hard limits. This changes as root.

1
2
3
4
vagrant hard    nofile  1048576
vagrant soft    nofile  65000
vagrant hard    nproc   65000
vagrant soft    nproc   65000

My user is vagrant change to your user accordingly. I used 65000 to see if they were enough. You must log out and log in for the changes to be applied.

Installing docker

This step is only necessary to build a release candidate of the official docker images (full & slim). The original steps to install Docker in Ubuntu are here. Run the following command to uninstall all conflicting packages; these steps use sudo:

1
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done

Add Docker’s official GPG key (run each command separately):

1
2
3
4
5
sudo apt-get update
sudo apt-get install -y ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

Add the repository to Apt sources:

1
2
3
4
5
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

Install the Docker packages.

1
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Add your user to the docker group to be able to run dockers. My user is vagrant:

1
 sudo usermod -aG docker vagrant

You will need to log out and log in. As your user, execute to test if you can run dockers:

1
docker run hello-world

Expected output

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
c1ec31eb5944: Pull complete
Digest: sha256:4bd78111b6914a99dbc560e6a20eab57ff6655aea4a80c50b0c5491968cbc2e6
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

Downloading Solr source code

Go to the folder where you want to download the Solr source code and the Apache Solr git. Run as your user.

1
git clone https://github.com/apache/solr.git solr

Expected output

1
2
3
4
5
Cloning into 'solr'...
remote: Enumerating objects: 1285026, done.
remote: Total 1285026 (delta 0), reused 0 (delta 0), pack-reused 1285026
Receiving objects: 100% (1285026/1285026), 485.30 MiB | 28.73 MiB/s, done.
Resolving deltas: 100% (760079/760079), done.

Change the branch to one of the RCs, in this case, branch_9_5.

1
2
cd solr
git checkout branch_9_5

Expected output

1
2
Branch 'branch_9_5' set up to track remote branch 'branch_9_5' from 'origin'.
Switched to a new branch 'branch_9_5'

To check the current branch:

1
git branch

Expected output

1
2
* branch_9_5
  main

Now we are in branch_9_5 ready to run the smoke tests.

Running Solr 9.5.0 RC3 smoke tests

Inside the folder with the Solr source code, run the command suggested by the release manager in the email:

1
2
python3 -u dev-tools/scripts/smokeTestRelease.py \
https://dist.apache.org/repos/dist/dev/solr/solr-9.5.0-RC3-rev-cdd27dd15c3a6574032e9b1b92b148ab4e383599

Expected output if all tests finish successfully:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
Revision: cdd27dd15c3a6574032e9b1b92b148ab4e383599
Java 11 JAVA_HOME=/usr/lib/jvm/temurin-11-jdk-amd64/
NOTE: output encoding is utf-8
NOTE: Not running @Nightly or @BadApple tests. Please verify that recent Jenkins runs have passed.

Load release URL "https://dist.apache.org/repos/dist/dev/solr/solr-9.5.0-RC3-rev-cdd27dd15c3a6574032e9b1b92b148ab4e383599"...

Get KEYS...
    Downloading online KEYS file https://archive.apache.org/dist/solr/KEYS
Downloading https://archive.apache.org/dist/solr/KEYS
    0.3 MB in 2.00 sec (0.2 MB/sec)

Test Solr...
  test basics...
  check changes HTML...
  check OpenAPI specification...
  download solr-9.5.0-slim.tgz...
Downloading https://dist.apache.org/repos/dist/dev/solr/solr-9.5.0-RC3-rev-cdd27dd15c3a6574032e9b1b92b148ab4e383599/solr/9.5.0/solr-9.5.0-slim.tgz
    61.2 MB in 3.53 sec (17.4 MB/sec)
    verify sha512 digest
    verify sig
Downloading https://dist.apache.org/repos/dist/dev/solr/solr-9.5.0-RC3-rev-cdd27dd15c3a6574032e9b1b92b148ab4e383599/solr/9.5.0/solr-9.5.0-slim.tgz.asc
File: /tmp/smoke_solr_9.5.0_cdd27dd15c3a6574032e9b1b92b148ab4e383599/solr.solr-9.5.0-slim.tgz.gpg.verify.log
    verify trust
      GPG: gpg: WARNING: This key is not certified with a trusted signature!
  download solr-9.5.0-src.tgz...
Downloading https://dist.apache.org/repos/dist/dev/solr/solr-9.5.0-RC3-rev-cdd27dd15c3a6574032e9b1b92b148ab4e383599/solr/9.5.0/solr-9.5.0-src.tgz
    86.0 MB in 4.82 sec (17.9 MB/sec)
    verify sha512 digest
    verify sig
Downloading https://dist.apache.org/repos/dist/dev/solr/solr-9.5.0-RC3-rev-cdd27dd15c3a6574032e9b1b92b148ab4e383599/solr/9.5.0/solr-9.5.0-src.tgz.asc
File: /tmp/smoke_solr_9.5.0_cdd27dd15c3a6574032e9b1b92b148ab4e383599/solr.solr-9.5.0-src.tgz.gpg.verify.log
    verify trust
      GPG: gpg: WARNING: This key is not certified with a trusted signature!
  download solr-9.5.0.tgz...
Downloading https://dist.apache.org/repos/dist/dev/solr/solr-9.5.0-RC3-rev-cdd27dd15c3a6574032e9b1b92b148ab4e383599/solr/9.5.0/solr-9.5.0.tgz
    268.4 MB in 14.26 sec (18.8 MB/sec)
    verify sha512 digest
    verify sig
Downloading https://dist.apache.org/repos/dist/dev/solr/solr-9.5.0-RC3-rev-cdd27dd15c3a6574032e9b1b92b148ab4e383599/solr/9.5.0/solr-9.5.0.tgz.asc
File: /tmp/smoke_solr_9.5.0_cdd27dd15c3a6574032e9b1b92b148ab4e383599/solr.solr-9.5.0.tgz.gpg.verify.log
    verify trust
      GPG: gpg: WARNING: This key is not certified with a trusted signature!
  unpack solr-9.5.0.tgz...
  solr-9.5.0.tgz
    Checking LICENSE.txt
    Checking NOTICE.txt
    Checking README.txt
    Checking CHANGES.txt
    Checking bin
    Checking modules
    Checking docker
    Checking prometheus-exporter
    Checking docs
    Checking example
    Checking licenses
    Checking server
    Checking lib
    verify JAR metadata/identity/no javax.* or java.* classes...
      **WARNING**: skipping check of /tmp/smoke_solr_9.5.0_cdd27dd15c3a6574032e9b1b92b148ab4e383599/unpack/solr-9.5.0/server/solr-webapp/webapp/WEB-INF/lib/jakarta.inject-api-2.0.1.jar: it has javax.* classes
      **WARNING**: skipping check of /tmp/smoke_solr_9.5.0_cdd27dd15c3a6574032e9b1b92b148ab4e383599/unpack/solr-9.5.0/server/solr-webapp/webapp/WEB-INF/lib/jakarta.validation-api-3.0.2.jar: it has javax.* classes
      **WARNING**: skipping check of /tmp/smoke_solr_9.5.0_cdd27dd15c3a6574032e9b1b92b148ab4e383599/unpack/solr-9.5.0/server/solr-webapp/webapp/WEB-INF/lib/jakarta.annotation-api-2.1.1.jar: it has javax.* classes
      **WARNING**: skipping check of /tmp/smoke_solr_9.5.0_cdd27dd15c3a6574032e9b1b92b148ab4e383599/unpack/solr-9.5.0/server/solr-webapp/webapp/WEB-INF/lib/jakarta.ws.rs-api-3.1.0.jar: it has javax.* classes
      **WARNING**: skipping check of /tmp/smoke_solr_9.5.0_cdd27dd15c3a6574032e9b1b92b148ab4e383599/unpack/solr-9.5.0/server/lib/ext/jetty-servlet-api-4.0.6.jar: it has javax.* classes
      **WARNING**: skipping check of /tmp/smoke_solr_9.5.0_cdd27dd15c3a6574032e9b1b92b148ab4e383599/unpack/solr-9.5.0/modules/extraction/lib/jakarta.activation-api-1.2.2.jar: it has javax.* classes
      **WARNING**: skipping check of /tmp/smoke_solr_9.5.0_cdd27dd15c3a6574032e9b1b92b148ab4e383599/unpack/solr-9.5.0/modules/extraction/lib/jakarta.activation-1.2.2.jar: it has javax.* classes
      **WARNING**: skipping check of /tmp/smoke_solr_9.5.0_cdd27dd15c3a6574032e9b1b92b148ab4e383599/unpack/solr-9.5.0/modules/extraction/lib/jakarta.xml.bind-api-2.3.3.jar: it has javax.* classes
      **WARNING**: skipping check of /tmp/smoke_solr_9.5.0_cdd27dd15c3a6574032e9b1b92b148ab4e383599/unpack/solr-9.5.0/modules/extraction/lib/unit-api-1.0.jar: it has javax.* classes
    copying unpacked distribution for Java 11 ...
    test solr example w/ Java 11...
      start Solr instance (log=/tmp/smoke_solr_9.5.0_cdd27dd15c3a6574032e9b1b92b148ab4e383599/unpack/solr-9.5.0-java11/solr-example.log)...
No process found for Solr node running on port 8983
      Running techproducts example on port 8983 from /tmp/smoke_solr_9.5.0_cdd27dd15c3a6574032e9b1b92b148ab4e383599/unpack/solr-9.5.0-java11
Creating Solr home directory /tmp/smoke_solr_9.5.0_cdd27dd15c3a6574032e9b1b92b148ab4e383599/unpack/solr-9.5.0-java11/example/techproducts/solr

Starting up Solr on port 8983 using command:
"bin/solr" start -p 8983 -s "example/techproducts/solr"

Waiting up to 180 seconds to see Solr running on port 8983 [|]  
Started Solr server on port 8983 (pid=6539). Happy search
Created new core 'techproducts'
Indexing tech product example docs from /tmp/smoke_solr_9.5.0_cdd27dd15c3a6574032e9b1b92b148ab4e383599/unpack/solr-9.5.0-java11/example/exampledocs
SimplePostTool version 9.5.0
Posting files to [base] url http://localhost:8983/solr/techproducts/update using content-type application/xml...
POSTing file utf8-example.xml to [base]
POSTing file money.xml to [base]
POSTing file monitor.xml to [base]
POSTing file solr.xml to [base]
POSTing file mp500.xml to [base]
POSTing file ipod_video.xml to [base]
POSTing file vidcard.xml to [base]
POSTing file hd.xml to [base]
POSTing file sd500.xml to [base]
POSTing file manufacturers.xml to [base]
POSTing file monitor2.xml to [base]
POSTing file mem.xml to [base]
POSTing file ipod_other.xml to [base]
POSTing file gb18030-example.xml to [base]
14 files indexed.
COMMITting Solr index changes to http://localhost:8983/solr/techproducts/update...
Time spent: 0:00:00.364
      test utf8...
      run query...
      stop server using: bin/solr stop -p 8983
Sending stop command to Solr running on port 8983 ... waiting up to 180 seconds to allow Jetty process 6539 to stop gracefully.
  unpack solr-9.5.0-slim.tgz...
  solr-9.5.0-slim.tgz
    Checking LICENSE.txt
    Checking NOTICE.txt
    Checking README.txt
    Checking CHANGES.txt
    Checking bin
    Checking docker
    Checking docs
    Checking example
    Checking licenses
    Checking server
    Checking lib
    verify JAR metadata/identity/no javax.* or java.* classes...
      **WARNING**: skipping check of /tmp/smoke_solr_9.5.0_cdd27dd15c3a6574032e9b1b92b148ab4e383599/unpack/solr-9.5.0-slim/server/solr-webapp/webapp/WEB-INF/lib/jakarta.inject-api-2.0.1.jar: it has javax.* classes
      **WARNING**: skipping check of /tmp/smoke_solr_9.5.0_cdd27dd15c3a6574032e9b1b92b148ab4e383599/unpack/solr-9.5.0-slim/server/solr-webapp/webapp/WEB-INF/lib/jakarta.validation-api-3.0.2.jar: it has javax.* classes
      **WARNING**: skipping check of /tmp/smoke_solr_9.5.0_cdd27dd15c3a6574032e9b1b92b148ab4e383599/unpack/solr-9.5.0-slim/server/solr-webapp/webapp/WEB-INF/lib/jakarta.annotation-api-2.1.1.jar: it has javax.* classes
      **WARNING**: skipping check of /tmp/smoke_solr_9.5.0_cdd27dd15c3a6574032e9b1b92b148ab4e383599/unpack/solr-9.5.0-slim/server/solr-webapp/webapp/WEB-INF/lib/jakarta.ws.rs-api-3.1.0.jar: it has javax.* classes
      **WARNING**: skipping check of /tmp/smoke_solr_9.5.0_cdd27dd15c3a6574032e9b1b92b148ab4e383599/unpack/solr-9.5.0-slim/server/lib/ext/jetty-servlet-api-4.0.6.jar: it has javax.* classes
    copying unpacked distribution for Java 11 ...
    test solr example w/ Java 11...
      start Solr instance (log=/tmp/smoke_solr_9.5.0_cdd27dd15c3a6574032e9b1b92b148ab4e383599/unpack/solr-9.5.0-slim-java11/solr-example.log)...
No process found for Solr node running on port 8983
      Running techproducts example on port 8983 from /tmp/smoke_solr_9.5.0_cdd27dd15c3a6574032e9b1b92b148ab4e383599/unpack/solr-9.5.0-slim-java11
Creating Solr home directory /tmp/smoke_solr_9.5.0_cdd27dd15c3a6574032e9b1b92b148ab4e383599/unpack/solr-9.5.0-slim-java11/example/techproducts/solr

Starting up Solr on port 8983 using command:
"bin/solr" start -p 8983 -s "example/techproducts/solr"

Waiting up to 180 seconds to see Solr running on port 8983 [|]  
Started Solr server on port 8983 (pid=6943). Happy search
Created new core 'techproducts'
Indexing tech product example docs from /tmp/smoke_solr_9.5.0_cdd27dd15c3a6574032e9b1b92b148ab4e383599/unpack/solr-9.5.0-slim-java11/example/exampledocs
SimplePostTool version 9.5.0
Posting files to [base] url http://localhost:8983/solr/techproducts/update using content-type application/xml...
POSTing file utf8-example.xml to [base]
POSTing file money.xml to [base]
POSTing file monitor.xml to [base]
POSTing file solr.xml to [base]
POSTing file mp500.xml to [base]
POSTing file ipod_video.xml to [base]
POSTing file vidcard.xml to [base]
POSTing file hd.xml to [base]
POSTing file sd500.xml to [base]
POSTing file manufacturers.xml to [base]
POSTing file monitor2.xml to [base]
POSTing file mem.xml to [base]
POSTing file ipod_other.xml to [base]
POSTing file gb18030-example.xml to [base]
14 files indexed.
COMMITting Solr index changes to http://localhost:8983/solr/techproducts/update...
Time spent: 0:00:00.354
      test utf8...
      run query...
      stop server using: bin/solr stop -p 8983
Sending stop command to Solr running on port 8983 ... waiting up to 180 seconds to allow Jetty process 6943 to stop gracefully.
  unpack solr-9.5.0-src.tgz...
  solr-9.5.0-src.tgz
    Checking LICENSE.txt
    Checking NOTICE.txt
    Checking README.md
    Checking CONTRIBUTING.md
    Checking CHANGES.txt
    Checking README.adoc
    Checking buildSrc
    Checking dev-docs
    Checking dev-tools
    Checking gradle
    Checking help
    Checking solr
    Checking build.gradle
    Checking gradlew
    Checking gradlew.bat
    Checking settings.gradle
    Checking versions.lock
    Checking versions.props
    Checking benchmark
    Checking bin
    Checking modules
    Checking api
    Checking core
    Checking docker
    Checking documentation
    Checking example
    Checking licenses
    Checking packaging
    Checking distribution
    Checking prometheus-exporter
    Checking server
    Checking solr-ref-guide
    Checking solrj
    Checking solrj-streaming
    Checking solrj-zookeeper
    Checking test-framework
    Checking webapp
    Checking .gitignore
    Checking .gitattributes
    Checking build.gradle
    make sure no JARs/WARs in src dist...
    run "./gradlew --no-daemon check -p solr/documentation"
    run tests w/ Java 11 and testArgs='-Dtests.nightly=false -Dtests.badapples=false '...
    run integration tests w/ Java 11
    build binary release w/ Java 11
      start Solr instance (log=/tmp/smoke_solr_9.5.0_cdd27dd15c3a6574032e9b1b92b148ab4e383599/unpack/solr-9.5.0/solr/packaging/build/dev/solr-example.log)...
No process found for Solr node running on port 8983
      Running techproducts example on port 8983 from /tmp/smoke_solr_9.5.0_cdd27dd15c3a6574032e9b1b92b148ab4e383599/unpack/solr-9.5.0/solr/packaging/build/dev
Creating Solr home directory /tmp/smoke_solr_9.5.0_cdd27dd15c3a6574032e9b1b92b148ab4e383599/unpack/solr-9.5.0/solr/packaging/build/dev/example/techproducts/solr

Starting up Solr on port 8983 using command:
"bin/solr" start -p 8983 -s "example/techproducts/solr"

Waiting up to 180 seconds to see Solr running on port 8983 [|]  
Started Solr server on port 8983 (pid=189916). Happy search
Created new core 'techproducts'
Indexing tech product example docs from /tmp/smoke_solr_9.5.0_cdd27dd15c3a6574032e9b1b92b148ab4e383599/unpack/solr-9.5.0/solr/packaging/build/dev/example/exampledocs
SimplePostTool version 9.5.0
Posting files to [base] url http://localhost:8983/solr/techproducts/update using content-type application/xml...
POSTing file utf8-example.xml to [base]
POSTing file money.xml to [base]
POSTing file monitor.xml to [base]
POSTing file solr.xml to [base]
POSTing file mp500.xml to [base]
POSTing file ipod_video.xml to [base]
POSTing file vidcard.xml to [base]
POSTing file hd.xml to [base]
POSTing file sd500.xml to [base]
POSTing file manufacturers.xml to [base]
POSTing file monitor2.xml to [base]
POSTing file mem.xml to [base]
POSTing file ipod_other.xml to [base]
POSTing file gb18030-example.xml to [base]
14 files indexed.
COMMITting Solr index changes to http://localhost:8983/solr/techproducts/update...
Time spent: 0:00:00.347
      test utf8...
      run query...
      stop server using: bin/solr stop -p 8983
Sending stop command to Solr running on port 8983 ... waiting up to 180 seconds to allow Jetty process 189916 to stop gracefully.

Test Maven artifacts...
    download artifacts
..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
    verify that each binary artifact has a deployed POM...
    verify Maven artifacts' md5/sha1 digests...
    check for javadoc and sources artifacts...
    verify deployed POMs' coordinates...
    verify maven artifact sigs ........................................................................................
    unpack solr-9.5.0.tgz...
    verify that Maven artifacts are same as in the binary distribution...
    verify JAR metadata/identity/no javax.* or java.* classes...

SUCCESS! [0:46:08.940629]

Build full and slim docker images of the release condidate

Now we can build the full and slim solr docker images with the commands from the email (check newlines and spaces) as your user:

1
2
3
4
5
6
7
SOLR_DOWNLOAD_SERVER=https://dist.apache.org/repos/dist/dev/solr/solr-9.5.0-RC3-rev-cdd27dd15c3a6574032e9b1b92b148ab4e383599/solr && \
  docker build $SOLR_DOWNLOAD_SERVER/9.5.0/docker/Dockerfile.official-full \
    --build-arg SOLR_DOWNLOAD_SERVER=$SOLR_DOWNLOAD_SERVER \
    -t solr-rc:9.5.0-3 && \
  docker build $SOLR_DOWNLOAD_SERVER/9.5.0/docker/Dockerfile.official-slim \
    --build-arg SOLR_DOWNLOAD_SERVER=$SOLR_DOWNLOAD_SERVER \
    -t solr-rc:9.5.0-3-slim

Expected output

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
[+] Building 136.5s (10/10) FINISHED                                                                                                                                                                                                                                                                          docker:default
 => CACHED [internal] load remote build context                                                                                                                                                                                                                                                                         0.5s
 => [internal] load metadata for docker.io/library/eclipse-temurin:17-jre-jammy                                                                                                                                                                                                                                         0.5s
 => CACHED [1/7] FROM docker.io/library/eclipse-temurin:17-jre-jammy@sha256:5c2c306ee7a4bee38be4b26dc652e8523e66bf679ca736c3876b87b2b2335e91                                                                                                                                                                            0.0s
 => [2/7] RUN set -ex;   apt-get update;   apt-get -y --no-install-recommends install wget gpg gnupg dirmngr;   rm -rf /var/lib/apt/lists/*;   export SOLR_BINARY="solr-9.5.0.tgz";   MAX_REDIRECTS=3;   case "https://dist.apache.org/repos/dist/dev/solr/solr-9.5.0-RC3-rev-cdd27dd15c3a6574032e9b1b92b148ab4e38359  30.0s
 => [3/7] RUN set -ex;   groupadd -r --gid "8983" "solr";   useradd -r --uid "8983" --gid "8983" "solr"                                                                                                                                                                                                                 0.2s
 => [4/7] RUN set -ex;   (cd /opt; ln -s solr-*/ solr);   rm -Rf /opt/solr/docs /opt/solr/docker/Dockerfile;                                                                                                                                                                                                            0.3s
 => [5/7] RUN set -ex;   mkdir -p /opt/solr/server/solr/lib /docker-entrypoint-initdb.d;   cp /opt/solr/bin/solr.in.sh /etc/default/solr.in.sh;   mv /opt/solr/bin/solr.in.sh /opt/solr/bin/solr.in.sh.orig;   mv /opt/solr/bin/solr.in.cmd /opt/solr/bin/solr.in.cmd.orig;   chmod 0664 /etc/default/solr.in.sh;   mk  0.4s
 => [6/7] RUN set -ex;     apt-get update;     apt-get -y --no-install-recommends install acl lsof procps wget netcat gosu tini jattach;     rm -rf /var/lib/apt/lists/*;                                                                                                                                             103.9s
 => [7/7] WORKDIR /opt/solr                                                                                                                                                                                                                                                                                             0.0s
 => exporting to image                                                                                                                                                                                                                                                                                                  0.9s
 => => exporting layers                                                                                                                                                                                                                                                                                                 0.9s
 => => writing image sha256:b7af92b80b2e22fe5518e8c14fd2cad34ba72e791b9e5a3e09ca7b0f7f25ddca                                                                                                                                                                                                                            0.0s
 => => naming to docker.io/library/solr-rc:9.5.0-3                                                                                                                                                                                                                                                                      0.0s
[+] Building 119.3s (10/10) FINISHED                                                                                                                                                                                                                                                                          docker:default
 => [internal] load remote build context                                                                                                                                                                                                                                                                                0.5s
 => [internal] load metadata for docker.io/library/eclipse-temurin:17-jre-jammy                                                                                                                                                                                                                                         0.5s
 => CACHED [1/7] FROM docker.io/library/eclipse-temurin:17-jre-jammy@sha256:5c2c306ee7a4bee38be4b26dc652e8523e66bf679ca736c3876b87b2b2335e91                                                                                                                                                                            0.0s
 => [2/7] RUN set -ex;   apt-get update;   apt-get -y --no-install-recommends install wget gpg gnupg dirmngr;   rm -rf /var/lib/apt/lists/*;   export SOLR_BINARY="solr-9.5.0-slim.tgz";   MAX_REDIRECTS=3;   case "https://dist.apache.org/repos/dist/dev/solr/solr-9.5.0-RC3-rev-cdd27dd15c3a6574032e9b1b92b148ab4  109.0s
 => [3/7] RUN set -ex;   groupadd -r --gid "8983" "solr";   useradd -r --uid "8983" --gid "8983" "solr"                                                                                                                                                                                                                 0.2s
 => [4/7] RUN set -ex;   (cd /opt; ln -s solr-*/ solr);   rm -Rf /opt/solr/docs /opt/solr/docker/Dockerfile;                                                                                                                                                                                                            0.2s
 => [5/7] RUN set -ex;   mkdir -p /opt/solr/server/solr/lib /docker-entrypoint-initdb.d;   cp /opt/solr/bin/solr.in.sh /etc/default/solr.in.sh;   mv /opt/solr/bin/solr.in.sh /opt/solr/bin/solr.in.sh.orig;   mv /opt/solr/bin/solr.in.cmd /opt/solr/bin/solr.in.cmd.orig;   chmod 0664 /etc/default/solr.in.sh;   mk  0.2s
 => [6/7] RUN set -ex;     apt-get update;     apt-get -y --no-install-recommends install acl lsof procps wget netcat gosu tini jattach;     rm -rf /var/lib/apt/lists/*;                                                                                                                                               8.4s
 => [7/7] WORKDIR /opt/solr                                                                                                                                                                                                                                                                                             0.0s
 => exporting to image                                                                                                                                                                                                                                                                                                  0.3s
 => => exporting layers                                                                                                                                                                                                                                                                                                 0.3s
 => => writing image sha256:350772600fff27d7364f1abd9537a4d7ccb44473c60e7a2ac3bff30431e6135b                                                                                                                                                                                                                            0.0s
 => => naming to docker.io/library/solr-rc:9.5.0-3-slim

Let’s check the docker images available.

1
docker image ls

Expected output

1
2
3
4
REPOSITORY    TAG            IMAGE ID       CREATED              SIZE
solr-rc       9.5.0-3-slim   350772600fff   About a minute ago   357MB
solr-rc       9.5.0-3        b7af92b80b2e   3 minutes ago        596MB
hello-world   latest         d2c94e258dcb   9 months ago         13.3kB

We can now run Solr Docker and test our use case.

Report back your test results.

Now, we reply to Jason’s email with our results. As we had no issues:

1
2
+1 not binding
SUCCESS! [0:46:08.940629]

Notes

  • This procedure should apply to the next Solr 9.x release candidates.
  • Solr 8.x source code is in a different git repository, lucene-solr, and the build procedure differs. Solr 8.x uses ant, and 9.x uses gradle as build utils.
  • I used a Virtualbox VM created using Vagrant from a bento/ubuntu-22.04 box.
  • Please report any issues with this blog post.
  • This blog post is for educational and entertainment purposes only. It worked as described in my controlled environment.
This post is licensed under CC BY 4.0 by the author.

Trending Tags