Re: [VOTE] Release Solr 9.6.0 RC1

2024-04-23 Thread Jan Høydahl
Hi,

Smoketester succeeds:
SUCCESS! [0:45:28.467115]

But I cannot get the docker build to pass:
It seems to fail during GPG validation of your key during image build:

> gpg: key 140BC45803B03F7F: public key "Patrick Gustav Heck (CODE SIGNING KEY) 
> " imported
> gpg: can't connect to the agent: IPC connect call failed
> gpg: Total number processed: 1
> gpg:   imported: 1
> 

Not sure if that is the reason, but some command in the RUN line 30- fail.

+0

Jan

> 23. apr. 2024 kl. 07:05 skrev Gus Heck :
> 
> Please vote for release candidate 1 for Solr 9.6.0
> 
> The artifacts can be downloaded from:
> https://dist.apache.org/repos/dist/dev/solr/solr-9.6.0-RC1-rev-f8e5a93c11267e13b7b43005a428bfb910ac6e57
> 
> 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.6.0-RC1-rev-f8e5a93c11267e13b7b43005a428bfb910ac6e57
> 
> 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.6.0-RC1-rev-f8e5a93c11267e13b7b43005a428bfb910ac6e57/solr
> && \
> docker build $SOLR_DOWNLOAD_SERVER/9.6.0/docker/Dockerfile.official-full \
>   --build-arg SOLR_DOWNLOAD_SERVER=$SOLR_DOWNLOAD_SERVER \
>   -t solr-rc:9.6.0-1 && \
> docker build $SOLR_DOWNLOAD_SERVER/9.6.0/docker/Dockerfile.official-slim \
>   --build-arg SOLR_DOWNLOAD_SERVER=$SOLR_DOWNLOAD_SERVER \
>   -t solr-rc:9.6.0-1-slim
> 
> The vote will be open for at least 72 hours i.e. until 2024-04-26 06:00 UTC.
> 
> [ ] +1  approve
> [ ] +0  no opinion
> [ ] -1  disapprove (and reason why)
> 
> Here is my +1
> 
> 
> -- 
> http://www.needhamsoftware.com (work)
> https://a.co/d/b2sZLD9 (my fantasy fiction book)


-
To unsubscribe, e-mail: dev-unsubscr...@solr.apache.org
For additional commands, e-mail: dev-h...@solr.apache.org



Re: [VOTE] Release Solr 9.6.0 RC1

2024-04-23 Thread Gus Heck
This could be an issue with anti-virus software or gpg-agent... I got the
same result with the docker build until I killed clamav

gus@ns-l1:~$ ps aux | grep clamav
clamav  1806  0.0  0.0  59124 14080 ?Ss   09:01   0:00
/usr/bin/freshclam -d --foreground=true
gus11896  0.0  0.0   9212  2304 pts/0S+   09:09   0:00 grep
--color=auto clamav
gus@ns-l1:~$ sudo kill -9 1806
[sudo] password for gus:
gus@ns-l1:~$ ps aux | grep clamav
gus11940  0.0  0.0   9080  2304 pts/0S+   09:09   0:00 grep
--color=auto clamav
gus@ns-l1:~$ SOLR_DOWNLOAD_SERVER=
https://dist.apache.org/repos/dist/dev/solr/solr-9.6.0-RC1-rev-f8e5a93c11267e13b7b43005a428bfb910ac6e57/solr
&&   docker build
$SOLR_DOWNLOAD_SERVER/9.6.0/docker/Dockerfile.official-full --build-arg
SOLR_DOWNLOAD_SERVER=$SOLR_DOWNLOAD_SERVER -t solr-rc:9.6.0-1 &&
docker build $SOLR_DOWNLOAD_SERVER/9.6.0/docker/Dockerfile.official-slim
  --build-arg SOLR_DOWNLOAD_SERVER=$SOLR_DOWNLOAD_SERVER -t
solr-rc:9.6.0-1-slim
[+] Building 29.1s (10/10) FINISHED

  docker:default
 => CACHED [internal] load remote build context

0.2s
 => [internal] load metadata for
docker.io/library/eclipse-temurin:17-jre-jammy

0.3s
 => CACHED [1/7] FROM
docker.io/library/eclipse-temurin:17-jre-jammy@sha256:1b646daef966395c93995e73347d4c7c726c9ddba8695e984cd8dcf5d8b5b253
   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.6.0.tgz";   MAX_RED
 20.7s
 => [3/7] RUN set -ex;   groupadd -r --gid "8983" "solr";   useradd -r
--uid "8983" --gid "8983" "solr"
  0.4s
 => [4/7] RUN set -ex;   (cd /opt; ln -s solr-*/ solr);   rm -Rf
/opt/solr/docs /opt/solr/docker/Dockerfile;
   0.4s
 => [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/so  0.5s
 => [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/*;   5.3s
 => [7/7] WORKDIR /opt/solr

0.1s
 => exporting to image

 0.9s
 => => exporting layers

0.9s
 => => writing image
sha256:e426f6991bd325a5b01a31e90f3304ce45a787004c34fc6a90a2aa86c5193afc

   0.0s
 => => naming to docker.io/library/solr-rc:9.6.0-1

 0.0s
[+] Building 19.3s (10/10) FINISHED

  docker:default
 => [internal] load remote build context

 0.2s
 => [internal] load metadata for
docker.io/library/eclipse-temurin:17-jre-jammy

0.2s
 => CACHED [1/7] FROM
docker.io/library/eclipse-temurin:17-jre-jammy@sha256:1b646daef966395c93995e73347d4c7c726c9ddba8695e984cd8dcf5d8b5b253
   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.6.0-slim.tgz";   MA
 11.3s
 => [3/7] RUN set -ex;   groupadd -r --gid "8983" "solr";   useradd -r
--uid "8983" --gid "8983" "solr"
  0.5s
 => [4/7] RUN set -ex;   (cd /opt; ln -s solr-*/ solr);   rm -Rf
/opt/solr/docs /opt/solr/docker/Dockerfile;
   0.5s
 => [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/so  0.5s
 => [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/*;   5.6s
 => [7/7] WORKDIR /opt/solr

0.1s
 => exporting to image

 0.5s
 => => exporting layers

0.4s
 => => writing image
sha256:4933f3684276f1f7e239046e4978ab223df902f428b7af3a20300fca264a94c3

   0.0s
 => => naming to docker.io/library/solr-rc:9.6.0-1-slim


On Tue, Apr 23, 2024 at 7:11 AM Jan Høydahl  wrote:

> Hi,
>
> Smoketester succeeds:
> SUCCESS! [0:45:28.467115]
>
> But I cannot get the docker build to pass:
> It seems to fail during GPG validation of your key during image build:
>
> > gpg: key 140BC45803B03F7F: public key "Patrick Gustav Heck (CODE SIGNING
> KEY) " imported
> > gpg: can't connect to the agent: IPC connect call failed
> > gpg: Total number pro

Re: Ideas for release notes for 9.6

2024-04-23 Thread James Dyer
For the second item, instead of "Solrj now offers async HTTP/2
Requests", it would be better to say "SolrJ now offers an improved
async request API".  We previously supported async but SOLR-14763
merely offers a better API and deprecates the existing one.  I realize
the JIRA title is not so accurate for what we actually did!

On Mon, Apr 22, 2024 at 9:48 PM Gus Heck  wrote:
>
> Initial release notes have been drafted here, please flesh out, refine,
> copy edit as needed.
>
> https://cwiki.apache.org/confluence/display/SOLR/ReleaseNote9_6_0
>
> -Gus
>
> --
> http://www.needhamsoftware.com (work)
> https://a.co/d/b2sZLD9 (my fantasy fiction book)

-
To unsubscribe, e-mail: dev-unsubscr...@solr.apache.org
For additional commands, e-mail: dev-h...@solr.apache.org



Re: [VOTE] Release Solr 9.6.0 RC1

2024-04-23 Thread Gus Heck
As a side note the clamav process appears to have been a red herring. For
me the command succeeds ~40-50% of the time (after adding --no-cache) no
idea why.

On Tue, Apr 23, 2024 at 9:23 AM Gus Heck  wrote:

> This could be an issue with anti-virus software or gpg-agent... I got the
> same result with the docker build until I killed clamav
>
> gus@ns-l1:~$ ps aux | grep clamav
> clamav  1806  0.0  0.0  59124 14080 ?Ss   09:01   0:00
> /usr/bin/freshclam -d --foreground=true
> gus11896  0.0  0.0   9212  2304 pts/0S+   09:09   0:00 grep
> --color=auto clamav
> gus@ns-l1:~$ sudo kill -9 1806
> [sudo] password for gus:
> gus@ns-l1:~$ ps aux | grep clamav
> gus11940  0.0  0.0   9080  2304 pts/0S+   09:09   0:00 grep
> --color=auto clamav
> gus@ns-l1:~$ SOLR_DOWNLOAD_SERVER=
> https://dist.apache.org/repos/dist/dev/solr/solr-9.6.0-RC1-rev-f8e5a93c11267e13b7b43005a428bfb910ac6e57/solr
> &&   docker build
> $SOLR_DOWNLOAD_SERVER/9.6.0/docker/Dockerfile.official-full --build-arg
> SOLR_DOWNLOAD_SERVER=$SOLR_DOWNLOAD_SERVER -t solr-rc:9.6.0-1 &&
> docker build $SOLR_DOWNLOAD_SERVER/9.6.0/docker/Dockerfile.official-slim
>   --build-arg SOLR_DOWNLOAD_SERVER=$SOLR_DOWNLOAD_SERVER -t
> solr-rc:9.6.0-1-slim
> [+] Building 29.1s (10/10) FINISHED
>
> docker:default
>  => CACHED [internal] load remote build context
>
>   0.2s
>  => [internal] load metadata for
> docker.io/library/eclipse-temurin:17-jre-jammy
>
>   0.3s
>  => CACHED [1/7] FROM
> docker.io/library/eclipse-temurin:17-jre-jammy@sha256:1b646daef966395c93995e73347d4c7c726c9ddba8695e984cd8dcf5d8b5b253
>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.6.0.tgz";   MAX_RED
>  20.7s
>  => [3/7] RUN set -ex;   groupadd -r --gid "8983" "solr";   useradd -r
> --uid "8983" --gid "8983" "solr"
>   0.4s
>  => [4/7] RUN set -ex;   (cd /opt; ln -s solr-*/ solr);   rm -Rf
> /opt/solr/docs /opt/solr/docker/Dockerfile;
>0.4s
>  => [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/so  0.5s
>  => [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/*;   5.3s
>  => [7/7] WORKDIR /opt/solr
>
>   0.1s
>  => exporting to image
>
>  0.9s
>  => => exporting layers
>
>   0.9s
>  => => writing image
> sha256:e426f6991bd325a5b01a31e90f3304ce45a787004c34fc6a90a2aa86c5193afc
>
>0.0s
>  => => naming to docker.io/library/solr-rc:9.6.0-1
>
>0.0s
> [+] Building 19.3s (10/10) FINISHED
>
> docker:default
>  => [internal] load remote build context
>
>  0.2s
>  => [internal] load metadata for
> docker.io/library/eclipse-temurin:17-jre-jammy
>
>   0.2s
>  => CACHED [1/7] FROM
> docker.io/library/eclipse-temurin:17-jre-jammy@sha256:1b646daef966395c93995e73347d4c7c726c9ddba8695e984cd8dcf5d8b5b253
>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.6.0-slim.tgz";   MA
>  11.3s
>  => [3/7] RUN set -ex;   groupadd -r --gid "8983" "solr";   useradd -r
> --uid "8983" --gid "8983" "solr"
>   0.5s
>  => [4/7] RUN set -ex;   (cd /opt; ln -s solr-*/ solr);   rm -Rf
> /opt/solr/docs /opt/solr/docker/Dockerfile;
>0.5s
>  => [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/so  0.5s
>  => [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/*;   5.6s
>  => [7/7] WORKDIR /opt/solr
>
>   0.1s
>  => exporting to image
>
>  0.5s
>  => => exporting layers
>
>   0.4s
>  => => writing image
> sha256:4933f3684276f1f7e239046e4978ab223df902f428b7af3a20300fca264a94c3
>
>0.0s
>  => => naming to docker.io/library/solr-rc:9

Replicas-on-demand

2024-04-23 Thread David Smiley
I’m soliciting interest / feedback on something.

Maybe some of you are familiar with transient-cores (SOLR-1028), an
LRU cache SolrCore mechanism that allows you to have an almost
unlimited number of cores on a node in name-only with a limited number
that are actually loaded at any one time.  It’s for use-cases where
the working set is significantly smaller than the total possible
addressable set.  Transient-cores only works in standalone Solr; I
tried to get it to work in SolrCloud but it proved difficult / buggy,
especially with leader election entanglements.  Furthermore, if we
imagine tens of thousands of replicas on a node, actually maintaining
that in SolrCloud / ZooKeeper is a ton of information and book-keeping
/ watching etc.

I am imagining another approach where replicas are created and removed
on-demand and thus the underlying core as well.  And at a higher level
of abstraction (at the request level) that can make more informed
decisions than the “SolrCores”/transient-cores mechanism can.  If a
request comes in and we have 0 replicas and a shared file system,
create one similar to autoAddReplicas[1].  If we have 1 replica, maybe
we should asynchronously arrange for another to maintain good
availability.  If the core seems saturated with query activity, create
another (to have more than 2 total).  That might depend on /select vs
/update and be replica-type specific.  Meanwhile a node listener can
remove replicas that have not been used recently, especially to limit
the number of replicas per node.  It can consider the number of
*other* replicas for the same shard that exists, and leadership and
replica type in its decision.  Of course different users/apps might
want to tune such settings differently, and it doesn’t imply a shared
file system to be useful either.

To support such a feature, I don’t think much is needed of Solr.  The
request “demand driven” aspect suggests a new plugin type within
HttpSolrCall that resolves a request to a SolrCore, perhaps called a
“RequestToCoreResolver”, or we make HttpSolrCall itself more
extensible.  For the 0-replica scenario, CloudSolrClient probably
needs a little more tolerance to just get the request to Solr instead
of prematurely failing.  HttpShardHandler (for distributed-search)
might similarly.  There is no core-listener; it could be added, or we
do polling, or we extend SolrCores as a collaborating plugin.

One risk/concern is ensuring the core data is retained after the
replica is removed.  It’s not necessary to do that but if it’s
removed, then it’s expensive & slow to create it again — a problem if
there are no replicas to serve a request.  I haven’t yet checked on
the feasibility of keeping data lying around, and using it again when
re-creating the replica.

A significant motivation of mine with this proposal is to help SIP-20
“Zero Replicas” [2].  The biggest obstacle I see with it is that
unused cores are empty until queried, yet still are in state ACTIVE
the whole time (don’t even use the RECOVERY state).  A hack in
SearchHandler throws an exception and gets the data.  This stuff
doesn’t *need* to be in that branch (it’s not fundamental to Zero even
if it’s fundamental to how we scale with Zero right now) but a
replica-on-demand approach would obsolete that.

[1]:  Solr used to have an “autoAddReplicas” feature prior to Solr 9.
In Solr 9 a substitute was developed — CollectionsRepairEventListener.
Regardless, the idea is to create replicas automatically in response
to nodes going away (or maybe other circumstances) in order to
maintain a replicationFactor.  There are many references to
autoAddReplicas in CHANGES.txt; originally in SOLR-5656 it was
intended for shared file system but was later expanded to be more
general SOLR-10397.  In the case of a shared file system, you can even
reach 0 replicas and nonetheless create more later.

[2]: SIP-20 https://cwiki.apache.org/confluence/x/8YokEQ and branch
https://github.com/apache/solr/tree/jira/solr-17125-zero-replicas

~ David Smiley
Apache Lucene/Solr Search Developer
http://www.linkedin.com/in/davidwsmiley

-
To unsubscribe, e-mail: dev-unsubscr...@solr.apache.org
For additional commands, e-mail: dev-h...@solr.apache.org