From 8a97744a9be4d772d2d99847e38238b4baf83406 Mon Sep 17 00:00:00 2001 From: dmitry-fa Date: Mon, 28 Dec 2020 16:14:26 +0300 Subject: [PATCH 1/2] fix: BigtableSession is never closed by Reader causing "ManagedChannel allocation site" exceptions --- .../google/cloud/bigtable/beam/CloudBigtableIO.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/bigtable-dataflow-parent/bigtable-hbase-beam/src/main/java/com/google/cloud/bigtable/beam/CloudBigtableIO.java b/bigtable-dataflow-parent/bigtable-hbase-beam/src/main/java/com/google/cloud/bigtable/beam/CloudBigtableIO.java index 098204e777..6aa725b4c1 100755 --- a/bigtable-dataflow-parent/bigtable-hbase-beam/src/main/java/com/google/cloud/bigtable/beam/CloudBigtableIO.java +++ b/bigtable-dataflow-parent/bigtable-hbase-beam/src/main/java/com/google/cloud/bigtable/beam/CloudBigtableIO.java @@ -678,17 +678,17 @@ public final synchronized BoundedSource splitAtFraction(double fraction) } @VisibleForTesting - protected void setSession(BigtableSession session) { + void setSession(BigtableSession session) { this.session = session; } @VisibleForTesting - protected void setScanner(ResultScanner scanner) { + void setScanner(ResultScanner scanner) { this.scanner = scanner; } @VisibleForTesting - public ByteKeyRangeTracker getRangeTracker() { + ByteKeyRangeTracker getRangeTracker() { return rangeTracker; } @@ -699,6 +699,10 @@ public void close() throws IOException { scanner.close(); scanner = null; } + if (session != null) { + session.close(); + session = null; + } long totalOps = getRowsReadCount(); long elapsedTimeMs = System.currentTimeMillis() - workStart; long operationsPerSecond = elapsedTimeMs == 0 ? 0 : (totalOps * 1000 / elapsedTimeMs); From a7ade8349cf4112c86daac2c37832b93db2afe92 Mon Sep 17 00:00:00 2001 From: dmitry-fa Date: Mon, 28 Dec 2020 19:04:50 +0300 Subject: [PATCH 2/2] fix: BigtableSession is never closed by Reader causing "ManagedChannel allocation site" exceptions --- .../com/google/cloud/bigtable/beam/CloudBigtableIO.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/bigtable-dataflow-parent/bigtable-hbase-beam/src/main/java/com/google/cloud/bigtable/beam/CloudBigtableIO.java b/bigtable-dataflow-parent/bigtable-hbase-beam/src/main/java/com/google/cloud/bigtable/beam/CloudBigtableIO.java index 6aa725b4c1..aa24e87fd7 100755 --- a/bigtable-dataflow-parent/bigtable-hbase-beam/src/main/java/com/google/cloud/bigtable/beam/CloudBigtableIO.java +++ b/bigtable-dataflow-parent/bigtable-hbase-beam/src/main/java/com/google/cloud/bigtable/beam/CloudBigtableIO.java @@ -678,17 +678,17 @@ public final synchronized BoundedSource splitAtFraction(double fraction) } @VisibleForTesting - void setSession(BigtableSession session) { + protected void setSession(BigtableSession session) { this.session = session; } @VisibleForTesting - void setScanner(ResultScanner scanner) { + protected void setScanner(ResultScanner scanner) { this.scanner = scanner; } @VisibleForTesting - ByteKeyRangeTracker getRangeTracker() { + public ByteKeyRangeTracker getRangeTracker() { return rangeTracker; }