You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by jb...@apache.org on 2020/12/21 19:14:21 UTC
[lucene-solr] branch jira/SOLR-14608-export updated: SOLR-14608:
Suppress Broken pipe logging
This is an automated email from the ASF dual-hosted git repository.
jbernste pushed a commit to branch jira/SOLR-14608-export
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git
The following commit(s) were added to refs/heads/jira/SOLR-14608-export by this push:
new 6af848b SOLR-14608: Suppress Broken pipe logging
6af848b is described below
commit 6af848b086c2002b031ea159e485f4b2f30df7c0
Author: Joel Bernstein <jb...@apache.org>
AuthorDate: Mon Dec 21 14:13:31 2020 -0500
SOLR-14608: Suppress Broken pipe logging
---
.../apache/solr/handler/export/ExportBuffers.java | 27 ++++++++++++++++++++--
.../apache/solr/handler/export/ExportWriter.java | 16 ++++++++++---
2 files changed, 38 insertions(+), 5 deletions(-)
diff --git a/solr/core/src/java/org/apache/solr/handler/export/ExportBuffers.java b/solr/core/src/java/org/apache/solr/handler/export/ExportBuffers.java
index dfeaaaa..da25344 100644
--- a/solr/core/src/java/org/apache/solr/handler/export/ExportBuffers.java
+++ b/solr/core/src/java/org/apache/solr/handler/export/ExportBuffers.java
@@ -26,6 +26,7 @@ import java.util.concurrent.CyclicBarrier;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.LongAdder;
+import java.util.concurrent.BrokenBarrierException;
import com.codahale.metrics.Timer;
import org.apache.lucene.index.LeafReaderContext;
@@ -133,7 +134,13 @@ class ExportBuffers {
buffer = getFillBuffer();
// log.debug("--- filler final got buffer {}", buffer);
} catch (Throwable e) {
- log.error("filler", e);
+ if(!(e instanceof InterruptedException) && !(e instanceof BrokenBarrierException)) {
+ /*
+ Don't log the interrupt or BrokenBarrierException as it creates noise during early client disconnects and
+ doesn't log anything particularly useful in other situations.
+ */
+ log.error("filler", e);
+ }
error(e);
if (e instanceof InterruptedException) {
Thread.currentThread().interrupt();
@@ -235,7 +242,23 @@ class ExportBuffers {
// allDone.join();
log.debug("-- finished.");
} catch (Exception e) {
- log.error("Exception running filler / writer", e);
+ Throwable ex = e;
+ boolean ignore = false;
+ while (ex != null) {
+ String m = ex.getMessage();
+ if (m != null && m.contains("Broken pipe")) {
+ ignore = true;
+ break;
+ }
+ ex = ex.getCause();
+ }
+ if(!ignore) {
+ /*
+ Ignore Broken pipes. Broken pipes occur normally when using the export handler for
+ merge joins when the join is complete before both sides of the join are fully read.
+ */
+ log.error("Exception running filler / writer", e);
+ }
error(e);
//
} finally {
diff --git a/solr/core/src/java/org/apache/solr/handler/export/ExportWriter.java b/solr/core/src/java/org/apache/solr/handler/export/ExportWriter.java
index 106b514..d278021 100644
--- a/solr/core/src/java/org/apache/solr/handler/export/ExportWriter.java
+++ b/solr/core/src/java/org/apache/solr/handler/export/ExportWriter.java
@@ -157,10 +157,20 @@ public class ExportWriter implements SolrCore.RawWriter, Closeable {
@Override
public void close() throws IOException {
- if (writer != null) writer.close();
+ if (writer != null) {
+ try {
+ writer.close();
+ } catch (Throwable t) {
+ //We're going to sit on this.
+ }
+ }
if (respWriter != null) {
- respWriter.flush();
- respWriter.close();
+ try {
+ respWriter.flush();
+ respWriter.close();
+ } catch (Throwable t) {
+
+ }
}
}