You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ma...@apache.org on 2020/12/17 04:31:52 UTC

[lucene-solr] 02/02: @1248 Cleanup.

This is an automated email from the ASF dual-hosted git repository.

markrmiller pushed a commit to branch reference_impl_dev
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git

commit 8bb997849015cc9f696981919a37cbfd194c1a4a
Author: markrmiller@gmail.com <ma...@gmail.com>
AuthorDate: Wed Dec 16 22:23:00 2020 -0600

    @1248 Cleanup.
---
 solr/bin/solr                                               |  5 +++--
 solr/build.gradle                                           |  1 +
 solr/core/src/java/org/apache/solr/cloud/ZkShardTerms.java  | 10 +++++-----
 .../java/org/apache/solr/handler/admin/PrepRecoveryOp.java  |  2 +-
 solr/core/src/java/org/apache/solr/servlet/StopJetty.java   |  2 +-
 solr/packaging/build.gradle                                 | 13 +++++++++++++
 6 files changed, 24 insertions(+), 9 deletions(-)

diff --git a/solr/bin/solr b/solr/bin/solr
index 84f670e..1430227 100755
--- a/solr/bin/solr
+++ b/solr/bin/solr
@@ -844,6 +844,7 @@ function stop_solr() {
 
   echo -e "Sending stop command to Solr running on port $SOLR_PORT ...  "$JAVA" -cp $SOLR_TIP/server/lib/ext/solr-core*.jar $SOLR_SSL_OPTS $AUTHC_OPTS org.apache.solr.servlet.StopJetty "-DSTOP.PORT=$THIS_STOP_PORT" "-DSTOP.KEY=$STOP_KEY""
   "$JAVA" -cp $SOLR_TIP/server/lib/ext/solr-core*.jar $SOLR_SSL_OPTS $AUTHC_OPTS "-DSTOP.PORT=$THIS_STOP_PORT" "-DSTOP.KEY=$STOP_KEY" org.apache.solr.servlet.StopJetty || true
+  sleep .2
   PID=$(cat $SOLR_PID_DIR/$JETTY_PID)
   rm $SOLR_PID_DIR/$JETTY_PID
 } # end stop_solr
@@ -2179,8 +2180,8 @@ function start_solr() {
 
 }
 
-find "$SOLR_SERVER_DIR/lib" -type f -exec cat {} > /dev/null \;
-find "$SOLR_SERVER_DIR/lib/ext" -type f -exec cat {} > /dev/null \;
+#find "$SOLR_SERVER_DIR/lib" -type f -exec cat {} > /dev/null \;
+#find "$SOLR_SERVER_DIR/lib/ext" -type f -exec cat {} > /dev/null \;
 
 start_solr "$FG" "$ADDITIONAL_CMD_OPTS" "$ADDITIONAL_JETTY_CONFIG"
 
diff --git a/solr/build.gradle b/solr/build.gradle
index 6096174..e9bb1c2 100644
--- a/solr/build.gradle
+++ b/solr/build.gradle
@@ -22,3 +22,4 @@ subprojects {
 }
 
 
+
diff --git a/solr/core/src/java/org/apache/solr/cloud/ZkShardTerms.java b/solr/core/src/java/org/apache/solr/cloud/ZkShardTerms.java
index cba0e4d..b880283 100644
--- a/solr/core/src/java/org/apache/solr/cloud/ZkShardTerms.java
+++ b/solr/core/src/java/org/apache/solr/cloud/ZkShardTerms.java
@@ -106,7 +106,7 @@ public class ZkShardTerms implements Closeable {
     this.shard = shard;
     this.zkClient = zkClient;
     try {
-      refreshTerms();
+      refreshTerms(true);
     } catch (KeeperException e) {
       throw new IOException(e);
     }
@@ -330,7 +330,7 @@ public class ZkShardTerms implements Closeable {
       return true;
     } catch (KeeperException.BadVersionException e) {
       log.info("Failed to save terms, version is not a match, retrying version={}", newTerms.getVersion());
-      refreshTerms();
+      refreshTerms(false);
     }
     return false;
   }
@@ -338,7 +338,7 @@ public class ZkShardTerms implements Closeable {
   /**
    * Fetch latest terms from ZK
    */
-  public void refreshTerms() throws KeeperException {
+  public void refreshTerms(boolean setWatch) throws KeeperException {
     ShardTerms newTerms;
     try {
       Watcher watcher = event -> {
@@ -350,14 +350,14 @@ public class ZkShardTerms implements Closeable {
           retryRegisterWatcher();
           // Some events may be missed during register a watcher, so it is safer to refresh terms after registering watcher
           try {
-            refreshTerms();
+            refreshTerms(true);
           } catch (KeeperException e) {
             log.warn("Could not refresh terms", e);
           }
         }
       };
       Stat stat = new Stat();
-      byte[] data = zkClient.getData(znodePath, watcher, stat, true);
+      byte[] data = zkClient.getData(znodePath, setWatch ? watcher : null, stat, true);
       ConcurrentHashMap<String,Long> values = new ConcurrentHashMap<>((Map<String,Long>) Utils.fromJSON(data));
       log.info("refresh shard terms to zk version {}", stat.getVersion());
       newTerms = new ShardTerms(values, stat.getVersion());
diff --git a/solr/core/src/java/org/apache/solr/handler/admin/PrepRecoveryOp.java b/solr/core/src/java/org/apache/solr/handler/admin/PrepRecoveryOp.java
index 26bc283..dadaa8b 100644
--- a/solr/core/src/java/org/apache/solr/handler/admin/PrepRecoveryOp.java
+++ b/solr/core/src/java/org/apache/solr/handler/admin/PrepRecoveryOp.java
@@ -104,7 +104,7 @@ class PrepRecoveryOp implements CoreAdminHandler.CoreAdminOp {
         // This core already see replica as RECOVERING
         // so it is guarantees that a live-fetch will be enough for this core to see max term published
         log.info("refresh shard terms for core {}", cname);
-        shardTerms.refreshTerms();
+        shardTerms.refreshTerms(false);
       }
     } catch (NullPointerException e) {
       if (log.isDebugEnabled()) log.debug("No shards found", e);
diff --git a/solr/core/src/java/org/apache/solr/servlet/StopJetty.java b/solr/core/src/java/org/apache/solr/servlet/StopJetty.java
index 869e771..83e324b 100644
--- a/solr/core/src/java/org/apache/solr/servlet/StopJetty.java
+++ b/solr/core/src/java/org/apache/solr/servlet/StopJetty.java
@@ -18,7 +18,7 @@ public class StopJetty {
   public static void main(String[] args) {
     int port = Integer.getInteger("STOP.PORT",-1);
     String key = System.getProperty("STOP.KEY",null);
-    int timeout =  Integer.getInteger("STOP.WAIT",30);
+    int timeout =  Integer.getInteger("STOP.WAIT",0);
     stop(port,key,timeout);
   }
 
diff --git a/solr/packaging/build.gradle b/solr/packaging/build.gradle
index 98503c6..db57368 100644
--- a/solr/packaging/build.gradle
+++ b/solr/packaging/build.gradle
@@ -21,6 +21,7 @@
 plugins {
   id 'base'
   id 'distribution'
+  id "org.beryx.runtime" version "1.11.7"
 }
 
 description = 'Solr packaging'
@@ -139,4 +140,16 @@ task dev(type: Copy) {
   into devDir
 }
 
+runtime {
+  options = ['--strip-debug', '--compress', '2', '--no-header-files', '--no-man-pages']
+  modules = ['jdk.management', 'java.naming', 'java.xml', 'java.instrument', 'java.desktop', 'java.sql']
+}
+
+tasks.runtime.doLast {
+  copy {
+    from installDist.outputs
+    into("$buildDir/image/bin")
+  }
+}
+
 assemble.dependsOn installDist