You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by us...@apache.org on 2014/08/18 19:33:50 UTC
svn commit: r1618672 - in /lucene/dev/trunk/solr: ./
contrib/map-reduce/src/test/org/apache/solr/hadoop/
contrib/morphlines-core/src/test/org/apache/solr/morphlines/solr/
core/src/java/org/apache/solr/core/
core/src/java/org/apache/solr/handler/admin/
Author: uschindler
Date: Mon Aug 18 17:33:49 2014
New Revision: 1618672
URL: http://svn.apache.org/r1618672
Log:
SOLR-6387: Add better error messages throughout Solr and supply a work around for Java bug #8047340 to SystemInfoHandler: On Turkish default locale, some JVMs fail to fork on MacOSX, BSD, AIX, and Solaris platforms.
Modified:
lucene/dev/trunk/solr/CHANGES.txt
lucene/dev/trunk/solr/contrib/map-reduce/src/test/org/apache/solr/hadoop/MRUnitBase.java
lucene/dev/trunk/solr/contrib/morphlines-core/src/test/org/apache/solr/morphlines/solr/AbstractSolrMorphlineTestBase.java
lucene/dev/trunk/solr/contrib/morphlines-core/src/test/org/apache/solr/morphlines/solr/AbstractSolrMorphlineZkTestBase.java
lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/RunExecutableListener.java
lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/admin/SystemInfoHandler.java
Modified: lucene/dev/trunk/solr/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/CHANGES.txt?rev=1618672&r1=1618671&r2=1618672&view=diff
==============================================================================
--- lucene/dev/trunk/solr/CHANGES.txt (original)
+++ lucene/dev/trunk/solr/CHANGES.txt Mon Aug 18 17:33:49 2014
@@ -285,6 +285,10 @@ Bug Fixes
* SOLR-6383: RegexTransformer returns no results after replaceAll if regex does not match a value.
(Alexander Kingson, shalin)
+* SOLR-6387: Add better error messages throughout Solr and supply a work around for
+ Java bug #8047340 to SystemInfoHandler: On Turkish default locale, some JVMs fail
+ to fork on MacOSX, BSD, AIX, and Solaris platforms. (hossman, Uwe Schindler)
+
Optimizations
---------------------
Modified: lucene/dev/trunk/solr/contrib/map-reduce/src/test/org/apache/solr/hadoop/MRUnitBase.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/contrib/map-reduce/src/test/org/apache/solr/hadoop/MRUnitBase.java?rev=1618672&r1=1618671&r2=1618672&view=diff
==============================================================================
--- lucene/dev/trunk/solr/contrib/map-reduce/src/test/org/apache/solr/hadoop/MRUnitBase.java (original)
+++ lucene/dev/trunk/solr/contrib/map-reduce/src/test/org/apache/solr/hadoop/MRUnitBase.java Mon Aug 18 17:33:49 2014
@@ -18,6 +18,7 @@ package org.apache.solr.hadoop;
import java.io.File;
import java.io.IOException;
+import java.util.Locale;
import org.apache.commons.io.FileUtils;
import org.apache.hadoop.conf.Configuration;
@@ -35,13 +36,15 @@ public abstract class MRUnitBase extends
@BeforeClass
public static void setupClass() throws Exception {
+ assumeFalse("This test fails on UNIX with Turkish default locale (https://issues.apache.org/jira/browse/SOLR-6387)",
+ new Locale("tr").getLanguage().equals(Locale.getDefault().getLanguage()));
solrHomeZip = SolrOutputFormat.createSolrHomeZip(new File(RESOURCES_DIR + "/solr/mrunit"));
assertNotNull(solrHomeZip);
}
@AfterClass
public static void teardownClass() throws Exception {
- solrHomeZip.delete();
+ if (solrHomeZip != null) solrHomeZip.delete();
}
protected void setupHadoopConfig(Configuration config) throws IOException {
Modified: lucene/dev/trunk/solr/contrib/morphlines-core/src/test/org/apache/solr/morphlines/solr/AbstractSolrMorphlineTestBase.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/contrib/morphlines-core/src/test/org/apache/solr/morphlines/solr/AbstractSolrMorphlineTestBase.java?rev=1618672&r1=1618671&r2=1618672&view=diff
==============================================================================
--- lucene/dev/trunk/solr/contrib/morphlines-core/src/test/org/apache/solr/morphlines/solr/AbstractSolrMorphlineTestBase.java (original)
+++ lucene/dev/trunk/solr/contrib/morphlines-core/src/test/org/apache/solr/morphlines/solr/AbstractSolrMorphlineTestBase.java Mon Aug 18 17:33:49 2014
@@ -84,6 +84,8 @@ public class AbstractSolrMorphlineTestBa
@BeforeClass
public static void beforeClass() throws Exception {
+ assumeFalse("This test fails on UNIX with Turkish default locale (https://issues.apache.org/jira/browse/SOLR-6387)",
+ new Locale("tr").getLanguage().equals(Locale.getDefault().getLanguage()));
myInitCore(DEFAULT_BASE_DIR);
}
Modified: lucene/dev/trunk/solr/contrib/morphlines-core/src/test/org/apache/solr/morphlines/solr/AbstractSolrMorphlineZkTestBase.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/contrib/morphlines-core/src/test/org/apache/solr/morphlines/solr/AbstractSolrMorphlineZkTestBase.java?rev=1618672&r1=1618671&r2=1618672&view=diff
==============================================================================
--- lucene/dev/trunk/solr/contrib/morphlines-core/src/test/org/apache/solr/morphlines/solr/AbstractSolrMorphlineZkTestBase.java (original)
+++ lucene/dev/trunk/solr/contrib/morphlines-core/src/test/org/apache/solr/morphlines/solr/AbstractSolrMorphlineZkTestBase.java Mon Aug 18 17:33:49 2014
@@ -20,6 +20,7 @@ package org.apache.solr.morphlines.solr;
import java.io.File;
import java.io.IOException;
import java.util.Iterator;
+import java.util.Locale;
import org.apache.commons.io.FileUtils;
import org.apache.solr.client.solrj.SolrServerException;
@@ -68,6 +69,8 @@ public abstract class AbstractSolrMorphl
@BeforeClass
public static void setupClass() throws Exception {
+ assumeFalse("This test fails on UNIX with Turkish default locale (https://issues.apache.org/jira/browse/SOLR-6387)",
+ new Locale("tr").getLanguage().equals(Locale.getDefault().getLanguage()));
solrHomeDirectory = createTempDir();
AbstractZkTestCase.SOLRHOME = solrHomeDirectory;
FileUtils.copyDirectory(SOLR_INSTANCE_DIR, solrHomeDirectory);
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/RunExecutableListener.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/RunExecutableListener.java?rev=1618672&r1=1618671&r2=1618672&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/RunExecutableListener.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/RunExecutableListener.java Mon Aug 18 17:33:49 2014
@@ -78,7 +78,18 @@ class RunExecutableListener extends Abst
if (doLog) {
log.debug("About to exec " + cmd[0]);
}
- Process proc = Runtime.getRuntime().exec(cmd, envp ,dir);
+ final Process proc;
+ try {
+ proc = Runtime.getRuntime().exec(cmd, envp ,dir);
+ } catch (Error err) {
+ // Create better error message
+ if (err.getMessage() != null && err.getMessage().contains("posix_spawn")) {
+ Error newErr = new Error("Error forking command due to JVM locale bug (see https://issues.apache.org/jira/browse/SOLR-6387): " + err.getMessage());
+ newErr.setStackTrace(err.getStackTrace());
+ err = newErr;
+ }
+ throw err;
+ }
if (wait) {
try {
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/admin/SystemInfoHandler.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/admin/SystemInfoHandler.java?rev=1618672&r1=1618671&r2=1618672&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/admin/SystemInfoHandler.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/admin/SystemInfoHandler.java Mon Aug 18 17:33:49 2014
@@ -17,9 +17,9 @@
package org.apache.solr.handler.admin;
-import java.io.DataInputStream;
import java.io.File;
import java.io.IOException;
+import java.io.InputStream;
import java.io.InputStreamReader;
import java.lang.management.ManagementFactory;
import java.lang.management.OperatingSystemMXBean;
@@ -213,20 +213,24 @@ public class SystemInfoHandler extends R
*/
private static String execute( String cmd )
{
- DataInputStream in = null;
+ InputStream in = null;
Process process = null;
try {
process = Runtime.getRuntime().exec(cmd);
- in = new DataInputStream( process.getInputStream() );
+ in = process.getInputStream();
// use default charset from locale here, because the command invoked also uses the default locale:
return IOUtils.toString(new InputStreamReader(in, Charset.defaultCharset()));
- }
- catch( Exception ex ) {
+ } catch( Exception ex ) {
// ignore - log.warn("Error executing command", ex);
return "(error executing: " + cmd + ")";
- }
- finally {
+ } catch (Error err) {
+ if (err.getMessage() != null && err.getMessage().contains("posix_spawn")) {
+ log.warn("Error forking command due to JVM locale bug (see https://issues.apache.org/jira/browse/SOLR-6387): " + err.getMessage());
+ return "(error executing: " + cmd + ")";
+ }
+ throw err;
+ } finally {
if (process != null) {
IOUtils.closeQuietly( process.getOutputStream() );
IOUtils.closeQuietly( process.getInputStream() );