From a4d357897dd9c00d9c0c4c5e1b4ab7dc5cd24701 Mon Sep 17 00:00:00 2001 From: Jacek Date: Tue, 14 Dec 2021 14:57:10 +0100 Subject: [PATCH] SONAR-15840 Fix SSF-219 --- build.gradle | 10 +++++----- gradle.properties | 4 ++-- .../sonar/application/command/CommandFactoryImpl.java | 3 ++- .../org/sonar/application/command/EsJvmOptions.java | 5 +++-- .../sonar/application/command/EsJvmOptionsTest.java | 2 ++ .../java/org/sonar/server/es/EsRequestDetailsTest.java | 2 +- sonar-application/build.gradle | 1 + 7 files changed, 16 insertions(+), 11 deletions(-) diff --git a/build.gradle b/build.gradle index 91ccc590eba..23443c0b989 100644 --- a/build.gradle +++ b/build.gradle @@ -371,7 +371,7 @@ subprojects { exclude 'commons-logging:commons-logging' } // Be aware that Log4j is used by Elasticsearch client - dependencySet(group: 'org.apache.logging.log4j', version: '2.15.0') { + dependencySet(group: 'org.apache.logging.log4j', version: '2.16.0') { entry 'log4j-core' entry 'log4j-api' entry 'log4j-to-slf4j' @@ -394,12 +394,12 @@ subprojects { entry 'jetty-server' entry 'jetty-servlet' } - dependency('org.elasticsearch.client:elasticsearch-rest-high-level-client:7.14.1') { + dependency('org.elasticsearch.client:elasticsearch-rest-high-level-client:7.16.0') { exclude 'org.apache.logging.log4j:log4j-core' } - dependency 'org.elasticsearch.plugin:transport-netty4-client:7.14.1' + dependency 'org.elasticsearch.plugin:transport-netty4-client:7.16.0' dependency 'org.elasticsearch:mocksocket:1.0' - dependency 'org.codelibs.elasticsearch.module:analysis-common:7.14.1' + dependency 'org.codelibs.elasticsearch.module:analysis-common:7.16.0' dependency 'org.eclipse.jgit:org.eclipse.jgit:5.11.0.202103091610-r' dependency 'org.tmatesoft.svnkit:svnkit:1.10.1' dependency 'org.hamcrest:hamcrest-all:1.3' @@ -666,7 +666,7 @@ gradle.projectsEvaluated { gradle -> ext.osAdaptiveCommand = { commands -> def newCommands = [] - + if (System.properties['os.name'].toLowerCase().contains('windows')) { newCommands = ['cmd', '/c'] } diff --git a/gradle.properties b/gradle.properties index eb510a1e72b..0e6b9769d7e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -11,5 +11,5 @@ org.gradle.vfs.watch=true # https://www.elastic.co/downloads/elasticsearch-no-jdk elasticsearchDownloadUrlPath=https://artifacts.elastic.co/downloads/elasticsearch/ elasticsearchDownloadRepoxUrlPath=https://repox.jfrog.io/artifactory/sonarsource-bucket/sonarqube/elasticsearch/ -elasticsearchDownloadUrlFile=elasticsearch-7.14.1-no-jdk-linux-x86_64.tar.gz -elasticsearchDownloadSha512=77dca78ba865ae74863b3b2a3cd61e8a8e4478cd02eb020184dbf89fa32cf145a6bbd1d11a1cb88c2236a3b8cdb8b0047e3c0f1a40f609f31b898c905b2c211d +elasticsearchDownloadUrlFile=elasticsearch-7.16.1-no-jdk-linux-x86_64.tar.gz +elasticsearchDownloadSha512=529280741a3fe87df267abfa0fa03e79c24d0403f293f3604ddfddf01980efdc654cbb4586513d8424186298707bfd6fcbd21027d345262d6418e6021a9c4f88 diff --git a/server/sonar-main/src/main/java/org/sonar/application/command/CommandFactoryImpl.java b/server/sonar-main/src/main/java/org/sonar/application/command/CommandFactoryImpl.java index 5b89acf18ce..4508eee5212 100644 --- a/server/sonar-main/src/main/java/org/sonar/application/command/CommandFactoryImpl.java +++ b/server/sonar-main/src/main/java/org/sonar/application/command/CommandFactoryImpl.java @@ -34,6 +34,7 @@ import org.sonar.process.ProcessProperties; import org.sonar.process.Props; import org.sonar.process.System2; +import static org.sonar.process.ProcessProperties.parseTimeoutMs; import static org.sonar.process.ProcessProperties.Property.CE_GRACEFUL_STOP_TIMEOUT; import static org.sonar.process.ProcessProperties.Property.CE_JAVA_ADDITIONAL_OPTS; import static org.sonar.process.ProcessProperties.Property.CE_JAVA_OPTS; @@ -53,7 +54,6 @@ import static org.sonar.process.ProcessProperties.Property.SOCKS_PROXY_PORT; import static org.sonar.process.ProcessProperties.Property.WEB_GRACEFUL_STOP_TIMEOUT; import static org.sonar.process.ProcessProperties.Property.WEB_JAVA_ADDITIONAL_OPTS; import static org.sonar.process.ProcessProperties.Property.WEB_JAVA_OPTS; -import static org.sonar.process.ProcessProperties.parseTimeoutMs; public class CommandFactoryImpl implements CommandFactory { private static final String ENV_VAR_JAVA_TOOL_OPTIONS = "JAVA_TOOL_OPTIONS"; @@ -110,6 +110,7 @@ public class CommandFactoryImpl implements CommandFactory { .setEnvVariable("ES_PATH_CONF", esInstallation.getConfDirectory().getAbsolutePath()) .setEnvVariable("ES_JVM_OPTIONS", esInstallation.getJvmOptions().getAbsolutePath()) .setEnvVariable("ES_JAVA_HOME", System.getProperties().getProperty("java.home")) + .setEnvVariable("LIBFFI_TMPDIR", this.tempDir.getAbsolutePath()) .suppressEnvVariable(ENV_VAR_JAVA_TOOL_OPTIONS) .suppressEnvVariable(ENV_VAR_ES_JAVA_OPTS); } diff --git a/server/sonar-main/src/main/java/org/sonar/application/command/EsJvmOptions.java b/server/sonar-main/src/main/java/org/sonar/application/command/EsJvmOptions.java index 09ac20a2199..5bb7aaafd2e 100644 --- a/server/sonar-main/src/main/java/org/sonar/application/command/EsJvmOptions.java +++ b/server/sonar-main/src/main/java/org/sonar/application/command/EsJvmOptions.java @@ -44,7 +44,7 @@ public class EsJvmOptions extends JvmOptions { private static Map mandatoryOptions(File tmpDir, Props props) { Map res = new LinkedHashMap<>(30); fromJvmDotOptionsFile(tmpDir, res); - fromSystemJvmOptionsClass(res); + fromSystemJvmOptionsClass(tmpDir, res); if (!props.value("sonar.jdbc.url", "").contains("jdbc:h2") && !props.valueAsBoolean("sonar.es.bootstrap.checks.disable")) { res.put("-Des.enforce.bootstrap.checks=", "true"); @@ -76,7 +76,7 @@ public class EsJvmOptions extends JvmOptions { /** * JVM options from class "org.elasticsearch.tools.launchers.SystemJvmOptions" */ - private static void fromSystemJvmOptionsClass(Map res) { + private static void fromSystemJvmOptionsClass(File tmpDir, Map res) { /* * Cache ttl in seconds for positive DNS lookups noting that this overrides the JDK security property networkaddress.cache.ttl; * can be set to -1 to cache forever. @@ -97,6 +97,7 @@ public class EsJvmOptions extends JvmOptions { res.put("-Dfile.encoding=", "UTF-8"); // use our provided JNA always versus the system one res.put("-Djna.nosys=", "true"); + res.put("-Djna.tmpdir=", tmpDir.getAbsolutePath()); /* * Turn off a JDK optimization that throws away stack traces for common exceptions because stack traces are important for * debugging. diff --git a/server/sonar-main/src/test/java/org/sonar/application/command/EsJvmOptionsTest.java b/server/sonar-main/src/test/java/org/sonar/application/command/EsJvmOptionsTest.java index 92620a037c5..cca8c41702c 100644 --- a/server/sonar-main/src/test/java/org/sonar/application/command/EsJvmOptionsTest.java +++ b/server/sonar-main/src/test/java/org/sonar/application/command/EsJvmOptionsTest.java @@ -60,6 +60,7 @@ public class EsJvmOptionsTest { "-Djava.awt.headless=true", "-Dfile.encoding=UTF-8", "-Djna.nosys=true", + "-Djna.tmpdir=" + tmpDir.getAbsolutePath(), "-XX:-OmitStackTraceInFastThrow", "-Dio.netty.noUnsafe=true", "-Dio.netty.noKeySetOptimization=true", @@ -143,6 +144,7 @@ public class EsJvmOptionsTest { "-Djava.awt.headless=true\n" + "-Dfile.encoding=UTF-8\n" + "-Djna.nosys=true\n" + + "-Djna.tmpdir=" + tmpDir.getAbsolutePath() + "\n" + "-XX:-OmitStackTraceInFastThrow\n" + "-Dio.netty.noUnsafe=true\n" + "-Dio.netty.noKeySetOptimization=true\n" + diff --git a/server/sonar-server-common/src/test/java/org/sonar/server/es/EsRequestDetailsTest.java b/server/sonar-server-common/src/test/java/org/sonar/server/es/EsRequestDetailsTest.java index 8cb3ca582f3..e624dedf909 100644 --- a/server/sonar-server-common/src/test/java/org/sonar/server/es/EsRequestDetailsTest.java +++ b/server/sonar-server-common/src/test/java/org/sonar/server/es/EsRequestDetailsTest.java @@ -50,7 +50,7 @@ public class EsRequestDetailsTest { + " ignore_throttled=true], types=[type], routing='null', preference='null', requestCache=null," + " scroll=null, maxConcurrentShardRequests=0, batchedReduceSize=512, preFilterShardSize=null," + " allowPartialSearchResults=null, localClusterAlias=null, getOrCreateAbsoluteStartMillis=-1," - + " ccsMinimizeRoundtrips=true, source={}}' on indices '[index]' on types '[type]'"); + + " ccsMinimizeRoundtrips=true, enableFieldsEmulation=false, source={}}' on indices '[index]' on types '[type]'"); } @Test diff --git a/sonar-application/build.gradle b/sonar-application/build.gradle index 2a70c75b0a4..dd75f240b63 100644 --- a/sonar-application/build.gradle +++ b/sonar-application/build.gradle @@ -172,6 +172,7 @@ task zip(type: Zip, dependsOn: [configurations.compileClasspath, tasks.downloadL exclude '**/modules/transform/**' exclude '**/modules/unsigned-long/**' exclude '**/modules/vectors/**' + exclude '**/modules/vector-tile/**' exclude '**/modules/wildcard/**' exclude '**/modules/x-pack-*/**' includeEmptyDirs = false -- 2.39.5