From 5cd0589158707e93609e05b0e31e45970c993a13 Mon Sep 17 00:00:00 2001 From: Mark Shields Date: Wed, 2 Mar 2016 13:17:02 -0800 Subject: [PATCH 1/2] [BEAM-87] Support opt-in for heap dumps --- .../sdk/options/DataflowPipelineDebugOptions.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/sdk/src/main/java/com/google/cloud/dataflow/sdk/options/DataflowPipelineDebugOptions.java b/sdk/src/main/java/com/google/cloud/dataflow/sdk/options/DataflowPipelineDebugOptions.java index e94b56df8714..17728c9799c1 100644 --- a/sdk/src/main/java/com/google/cloud/dataflow/sdk/options/DataflowPipelineDebugOptions.java +++ b/sdk/src/main/java/com/google/cloud/dataflow/sdk/options/DataflowPipelineDebugOptions.java @@ -208,6 +208,19 @@ public Dataflow create(PipelineOptions options) { int getNumberOfWorkerHarnessThreads(); void setNumberOfWorkerHarnessThreads(int value); + /** + * If {@literal true}, save a heap dump before killing a thread or process which is GC + * thrashing or out of memory. + * + *

+ * CAUTION: Heap dumps can of comparable size to the default boot disk. Consider increasing + * the boot disk size before setting this flag to true. + */ + @Description("If {@literal true}, save a heap dump before killing a thread or process " + + "which is GC thrashing or out of memory.") + boolean getDumpHeapOnOOM(); + void setDumpHeapOnOOM(boolean dumpHeapBeforeExit); + /** * Creates a {@link PathValidator} object using the class specified in * {@link #getPathValidatorClass()}. From 616f898ec62e13eeccf0d6b970c5ce3495028070 Mon Sep 17 00:00:00 2001 From: Mark Shields Date: Thu, 3 Mar 2016 10:53:25 -0800 Subject: [PATCH 2/2] Clarrify heap file path. --- .../dataflow/sdk/options/DataflowPipelineDebugOptions.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sdk/src/main/java/com/google/cloud/dataflow/sdk/options/DataflowPipelineDebugOptions.java b/sdk/src/main/java/com/google/cloud/dataflow/sdk/options/DataflowPipelineDebugOptions.java index 17728c9799c1..05d23be98bb5 100644 --- a/sdk/src/main/java/com/google/cloud/dataflow/sdk/options/DataflowPipelineDebugOptions.java +++ b/sdk/src/main/java/com/google/cloud/dataflow/sdk/options/DataflowPipelineDebugOptions.java @@ -210,7 +210,8 @@ public Dataflow create(PipelineOptions options) { /** * If {@literal true}, save a heap dump before killing a thread or process which is GC - * thrashing or out of memory. + * thrashing or out of memory. The location of the heap file will either be echoed back + * to the user, or the user will be given the oppourtunity to download the heap file. * *

* CAUTION: Heap dumps can of comparable size to the default boot disk. Consider increasing