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 usesgradle
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.