From bc5befe2795a8c374bfcf889fc02ad725022602f Mon Sep 17 00:00:00 2001 From: Alex O'Neill Date: Thu, 29 Jan 2026 10:24:56 -0500 Subject: [PATCH 1/8] feat: Handle StatusRuntimeException in CbtTestProxy --- .../bigtable/testproxy/CbtTestProxy.java | 176 ++++++++++++------ 1 file changed, 122 insertions(+), 54 deletions(-) diff --git a/test-proxy/src/main/java/com/google/cloud/bigtable/testproxy/CbtTestProxy.java b/test-proxy/src/main/java/com/google/cloud/bigtable/testproxy/CbtTestProxy.java index 122bc51439..1d6a7869dc 100644 --- a/test-proxy/src/main/java/com/google/cloud/bigtable/testproxy/CbtTestProxy.java +++ b/test-proxy/src/main/java/com/google/cloud/bigtable/testproxy/CbtTestProxy.java @@ -300,6 +300,17 @@ public void mutateRow( .build()); responseObserver.onCompleted(); return; + } catch (StatusRuntimeException e) { + responseObserver.onNext( + MutateRowResult.newBuilder() + .setStatus( + com.google.rpc.Status.newBuilder() + .setCode(e.getStatus().getCode().value()) + .setMessage(e.getStatus().getDescription()) + .build()) + .build()); + responseObserver.onCompleted(); + return; } responseObserver.onNext( @@ -354,6 +365,17 @@ public void bulkMutateRows( .build()); responseObserver.onCompleted(); return; + } catch (StatusRuntimeException e) { + responseObserver.onNext( + MutateRowsResult.newBuilder() + .setStatus( + com.google.rpc.Status.newBuilder() + .setCode(e.getStatus().getCode().value()) + .setMessage(e.getStatus().getDescription()) + .build()) + .build()); + responseObserver.onCompleted(); + return; } responseObserver.onNext( @@ -388,6 +410,15 @@ public void readRow(ReadRowRequest request, StreamObserver responseOb client .dataClient() .readRow(tableId, request.getRowKey(), FILTERS.fromProto(request.getFilter())); + if (row != null) { + RowResult.Builder resultBuilder = convertRowResult(row); + responseObserver.onNext( + resultBuilder.setStatus(com.google.rpc.Status.getDefaultInstance()).build()); + } else { + logger.info(String.format("readRow() did not find row: %s", request.getRowKey())); + responseObserver.onNext( + RowResult.newBuilder().setStatus(com.google.rpc.Status.getDefaultInstance()).build()); + } } catch (ApiException e) { responseObserver.onNext( RowResult.newBuilder() @@ -399,30 +430,29 @@ public void readRow(ReadRowRequest request, StreamObserver responseOb .build()); responseObserver.onCompleted(); return; - } - - if (row != null) { - try { - RowResult.Builder resultBuilder = convertRowResult(row); - responseObserver.onNext( - resultBuilder.setStatus(com.google.rpc.Status.getDefaultInstance()).build()); - } catch (RuntimeException e) { - // If client encounters problem, don't return any row result. - responseObserver.onNext( - RowResult.newBuilder() - .setStatus( - com.google.rpc.Status.newBuilder() - .setCode(Code.INTERNAL.getNumber()) - .setMessage(e.getMessage()) - .build()) - .build()); - responseObserver.onCompleted(); - return; - } - } else { - logger.info(String.format("readRow() did not find row: %s", request.getRowKey())); + } catch (StatusRuntimeException e) { responseObserver.onNext( - RowResult.newBuilder().setStatus(com.google.rpc.Status.getDefaultInstance()).build()); + RowResult.newBuilder() + .setStatus( + com.google.rpc.Status.newBuilder() + .setCode(e.getStatus().getCode().value()) + .setMessage(e.getStatus().getDescription()) + .build()) + .build()); + responseObserver.onCompleted(); + return; + } catch (RuntimeException e) { + // If client encounters problem, don't return any row result. + responseObserver.onNext( + RowResult.newBuilder() + .setStatus( + com.google.rpc.Status.newBuilder() + .setCode(Code.INTERNAL.getNumber()) + .setMessage(e.getMessage()) + .build()) + .build()); + responseObserver.onCompleted(); + return; } responseObserver.onCompleted(); } @@ -441,6 +471,10 @@ public void readRows(ReadRowsRequest request, StreamObserver respons Query query = Query.fromProto(request.getRequest()); try { rows = client.dataClient().readRows(query); + int cancelAfterRows = request.getCancelAfterRows(); + RowsResult.Builder resultBuilder = convertRowsResult(rows, cancelAfterRows); + responseObserver.onNext( + resultBuilder.setStatus(com.google.rpc.Status.getDefaultInstance()).build()); } catch (ApiException e) { responseObserver.onNext( RowsResult.newBuilder() @@ -452,13 +486,17 @@ public void readRows(ReadRowsRequest request, StreamObserver respons .build()); responseObserver.onCompleted(); return; - } - - int cancelAfterRows = request.getCancelAfterRows(); - try { - RowsResult.Builder resultBuilder = convertRowsResult(rows, cancelAfterRows); + } catch (StatusRuntimeException e) { responseObserver.onNext( - resultBuilder.setStatus(com.google.rpc.Status.getDefaultInstance()).build()); + RowsResult.newBuilder() + .setStatus( + com.google.rpc.Status.newBuilder() + .setCode(e.getStatus().getCode().value()) + .setMessage(e.getStatus().getDescription()) + .build()) + .build()); + responseObserver.onCompleted(); + return; } catch (RuntimeException e) { // If client encounters problem, don't return any row result. responseObserver.onNext( @@ -578,6 +616,17 @@ public void sampleRowKeys( .build()); responseObserver.onCompleted(); return; + } catch (StatusRuntimeException e) { + responseObserver.onNext( + SampleRowKeysResult.newBuilder() + .setStatus( + com.google.rpc.Status.newBuilder() + .setCode(e.getStatus().getCode().value()) + .setMessage(e.getStatus().getDescription()) + .build()) + .build()); + responseObserver.onCompleted(); + return; } SampleRowKeysResult.Builder resultBuilder = SampleRowKeysResult.newBuilder(); @@ -618,6 +667,17 @@ public void checkAndMutateRow( .build()); responseObserver.onCompleted(); return; + } catch (StatusRuntimeException e) { + responseObserver.onNext( + CheckAndMutateRowResult.newBuilder() + .setStatus( + com.google.rpc.Status.newBuilder() + .setCode(e.getStatus().getCode().value()) + .setMessage(e.getStatus().getDescription()) + .build()) + .build()); + responseObserver.onCompleted(); + return; } CheckAndMutateRowResult.Builder resultBuilder = CheckAndMutateRowResult.newBuilder(); @@ -642,6 +702,17 @@ public void readModifyWriteRow( ReadModifyWriteRow mutation = ReadModifyWriteRow.fromProto(request.getRequest()); try { row = client.dataClient().readModifyWriteRow(mutation); + if (row != null) { + RowResult.Builder resultBuilder = convertRowResult(row); + responseObserver.onNext( + resultBuilder.setStatus(com.google.rpc.Status.getDefaultInstance()).build()); + } else { + logger.info( + String.format( + "readModifyWriteRow() did not find row: %s", request.getRequest().getRowKey())); + responseObserver.onNext( + RowResult.newBuilder().setStatus(com.google.rpc.Status.getDefaultInstance()).build()); + } } catch (ApiException e) { responseObserver.onNext( RowResult.newBuilder() @@ -653,32 +724,29 @@ public void readModifyWriteRow( .build()); responseObserver.onCompleted(); return; - } - - if (row != null) { - try { - RowResult.Builder resultBuilder = convertRowResult(row); - responseObserver.onNext( - resultBuilder.setStatus(com.google.rpc.Status.getDefaultInstance()).build()); - } catch (RuntimeException e) { - // If client encounters problem, fail the whole operation. - responseObserver.onNext( - RowResult.newBuilder() - .setStatus( - com.google.rpc.Status.newBuilder() - .setCode(Code.INTERNAL.getNumber()) - .setMessage(e.getMessage()) - .build()) - .build()); - responseObserver.onCompleted(); - return; - } - } else { - logger.info( - String.format( - "readModifyWriteRow() did not find row: %s", request.getRequest().getRowKey())); + } catch (StatusRuntimeException e) { + responseObserver.onNext( + RowResult.newBuilder() + .setStatus( + com.google.rpc.Status.newBuilder() + .setCode(e.getStatus().getCode().value()) + .setMessage(e.getStatus().getDescription()) + .build()) + .build()); + responseObserver.onCompleted(); + return; + } catch (RuntimeException e) { + // If client encounters problem, fail the whole operation. responseObserver.onNext( - RowResult.newBuilder().setStatus(com.google.rpc.Status.getDefaultInstance()).build()); + RowResult.newBuilder() + .setStatus( + com.google.rpc.Status.newBuilder() + .setCode(Code.INTERNAL.getNumber()) + .setMessage(e.getMessage()) + .build()) + .build()); + responseObserver.onCompleted(); + return; } responseObserver.onCompleted(); } From 7f6a8281f81891aec4e29f8e502b79009466ddc4 Mon Sep 17 00:00:00 2001 From: Alex O'Neill Date: Thu, 29 Jan 2026 16:12:18 -0500 Subject: [PATCH 2/8] Use StatusProto.fromThrowable --- .../bigtable/testproxy/CbtTestProxy.java | 65 +++++-------------- 1 file changed, 17 insertions(+), 48 deletions(-) diff --git a/test-proxy/src/main/java/com/google/cloud/bigtable/testproxy/CbtTestProxy.java b/test-proxy/src/main/java/com/google/cloud/bigtable/testproxy/CbtTestProxy.java index 1d6a7869dc..3d223089b5 100644 --- a/test-proxy/src/main/java/com/google/cloud/bigtable/testproxy/CbtTestProxy.java +++ b/test-proxy/src/main/java/com/google/cloud/bigtable/testproxy/CbtTestProxy.java @@ -59,6 +59,7 @@ import io.grpc.netty.shaded.io.grpc.netty.GrpcSslContexts; import io.grpc.netty.shaded.io.grpc.netty.NettyChannelBuilder; import io.grpc.netty.shaded.io.netty.handler.ssl.SslContext; +import io.grpc.protobuf.StatusProto; import io.grpc.stub.StreamObserver; import java.io.ByteArrayInputStream; import java.io.Closeable; @@ -300,14 +301,10 @@ public void mutateRow( .build()); responseObserver.onCompleted(); return; - } catch (StatusRuntimeException e) { + } catch (StatusException | StatusRuntimeException e) { responseObserver.onNext( MutateRowResult.newBuilder() - .setStatus( - com.google.rpc.Status.newBuilder() - .setCode(e.getStatus().getCode().value()) - .setMessage(e.getStatus().getDescription()) - .build()) + .setStatus(StatusProto.fromThrowable(e)) .build()); responseObserver.onCompleted(); return; @@ -365,14 +362,10 @@ public void bulkMutateRows( .build()); responseObserver.onCompleted(); return; - } catch (StatusRuntimeException e) { + } catch (StatusException | StatusRuntimeException e) { responseObserver.onNext( MutateRowsResult.newBuilder() - .setStatus( - com.google.rpc.Status.newBuilder() - .setCode(e.getStatus().getCode().value()) - .setMessage(e.getStatus().getDescription()) - .build()) + .setStatus(StatusProto.fromThrowable(e)) .build()); responseObserver.onCompleted(); return; @@ -430,14 +423,10 @@ public void readRow(ReadRowRequest request, StreamObserver responseOb .build()); responseObserver.onCompleted(); return; - } catch (StatusRuntimeException e) { + } catch (StatusException | StatusRuntimeException e) { responseObserver.onNext( RowResult.newBuilder() - .setStatus( - com.google.rpc.Status.newBuilder() - .setCode(e.getStatus().getCode().value()) - .setMessage(e.getStatus().getDescription()) - .build()) + .setStatus(StatusProto.fromThrowable(e)) .build()); responseObserver.onCompleted(); return; @@ -486,14 +475,10 @@ public void readRows(ReadRowsRequest request, StreamObserver respons .build()); responseObserver.onCompleted(); return; - } catch (StatusRuntimeException e) { + } catch (StatusException | StatusRuntimeException e) { responseObserver.onNext( RowsResult.newBuilder() - .setStatus( - com.google.rpc.Status.newBuilder() - .setCode(e.getStatus().getCode().value()) - .setMessage(e.getStatus().getDescription()) - .build()) + .setStatus(StatusProto.fromThrowable(e)) .build()); responseObserver.onCompleted(); return; @@ -616,14 +601,10 @@ public void sampleRowKeys( .build()); responseObserver.onCompleted(); return; - } catch (StatusRuntimeException e) { + } catch (StatusException | StatusRuntimeException e) { responseObserver.onNext( SampleRowKeysResult.newBuilder() - .setStatus( - com.google.rpc.Status.newBuilder() - .setCode(e.getStatus().getCode().value()) - .setMessage(e.getStatus().getDescription()) - .build()) + .setStatus(StatusProto.fromThrowable(e)) .build()); responseObserver.onCompleted(); return; @@ -667,14 +648,10 @@ public void checkAndMutateRow( .build()); responseObserver.onCompleted(); return; - } catch (StatusRuntimeException e) { + } catch (StatusException | StatusRuntimeException e) { responseObserver.onNext( CheckAndMutateRowResult.newBuilder() - .setStatus( - com.google.rpc.Status.newBuilder() - .setCode(e.getStatus().getCode().value()) - .setMessage(e.getStatus().getDescription()) - .build()) + .setStatus(StatusProto.fromThrowable(e)) .build()); responseObserver.onCompleted(); return; @@ -724,14 +701,10 @@ public void readModifyWriteRow( .build()); responseObserver.onCompleted(); return; - } catch (StatusRuntimeException e) { + } catch (StatusException | StatusRuntimeException e) { responseObserver.onNext( RowResult.newBuilder() - .setStatus( - com.google.rpc.Status.newBuilder() - .setCode(e.getStatus().getCode().value()) - .setMessage(e.getStatus().getDescription()) - .build()) + .setStatus(StatusProto.fromThrowable(e)) .build()); responseObserver.onCompleted(); return; @@ -793,14 +766,10 @@ public void executeQuery( .build()); responseObserver.onCompleted(); return; - } catch (StatusRuntimeException e) { + } catch (StatusException | StatusRuntimeException e) { responseObserver.onNext( ExecuteQueryResult.newBuilder() - .setStatus( - com.google.rpc.Status.newBuilder() - .setCode(e.getStatus().getCode().value()) - .setMessage(e.getStatus().getDescription()) - .build()) + .setStatus(StatusProto.fromThrowable(e)) .build()); responseObserver.onCompleted(); return; From 87fe788e819b66365bd05d98b97ec9d21b3891f9 Mon Sep 17 00:00:00 2001 From: Alex O'Neill Date: Thu, 29 Jan 2026 16:16:14 -0500 Subject: [PATCH 3/8] Comments on default instance --- .../com/google/cloud/bigtable/testproxy/CbtTestProxy.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/test-proxy/src/main/java/com/google/cloud/bigtable/testproxy/CbtTestProxy.java b/test-proxy/src/main/java/com/google/cloud/bigtable/testproxy/CbtTestProxy.java index 3d223089b5..cfce491548 100644 --- a/test-proxy/src/main/java/com/google/cloud/bigtable/testproxy/CbtTestProxy.java +++ b/test-proxy/src/main/java/com/google/cloud/bigtable/testproxy/CbtTestProxy.java @@ -373,6 +373,7 @@ public void bulkMutateRows( responseObserver.onNext( MutateRowsResult.newBuilder() + // Note that the default instance == OK .setStatus(com.google.rpc.Status.getDefaultInstance()) .build()); responseObserver.onCompleted(); @@ -406,6 +407,7 @@ public void readRow(ReadRowRequest request, StreamObserver responseOb if (row != null) { RowResult.Builder resultBuilder = convertRowResult(row); responseObserver.onNext( + // Note that the default instance == OK resultBuilder.setStatus(com.google.rpc.Status.getDefaultInstance()).build()); } else { logger.info(String.format("readRow() did not find row: %s", request.getRowKey())); @@ -463,6 +465,7 @@ public void readRows(ReadRowsRequest request, StreamObserver respons int cancelAfterRows = request.getCancelAfterRows(); RowsResult.Builder resultBuilder = convertRowsResult(rows, cancelAfterRows); responseObserver.onNext( + // Note that the default instance == OK resultBuilder.setStatus(com.google.rpc.Status.getDefaultInstance()).build()); } catch (ApiException e) { responseObserver.onNext( @@ -618,6 +621,7 @@ public void sampleRowKeys( .setOffsetBytes(keyOffset.getOffsetBytes()); } responseObserver.onNext( + // Note that the default instance == OK resultBuilder.setStatus(com.google.rpc.Status.getDefaultInstance()).build()); responseObserver.onCompleted(); } @@ -660,6 +664,7 @@ public void checkAndMutateRow( CheckAndMutateRowResult.Builder resultBuilder = CheckAndMutateRowResult.newBuilder(); resultBuilder.getResultBuilder().setPredicateMatched(matched); responseObserver.onNext( + // Note that the default instance == OK resultBuilder.setStatus(com.google.rpc.Status.getDefaultInstance()).build()); responseObserver.onCompleted(); } @@ -682,12 +687,14 @@ public void readModifyWriteRow( if (row != null) { RowResult.Builder resultBuilder = convertRowResult(row); responseObserver.onNext( + // Note that the default instance == OK resultBuilder.setStatus(com.google.rpc.Status.getDefaultInstance()).build()); } else { logger.info( String.format( "readModifyWriteRow() did not find row: %s", request.getRequest().getRowKey())); responseObserver.onNext( + // Note that the default instance == OK RowResult.newBuilder().setStatus(com.google.rpc.Status.getDefaultInstance()).build()); } } catch (ApiException e) { From 6c5f81b16d53ff62cc87a0d5c841fc301d6da0b7 Mon Sep 17 00:00:00 2001 From: Alex O'Neill Date: Thu, 29 Jan 2026 17:34:04 -0500 Subject: [PATCH 4/8] Skip setting empty status on RR empty result --- .../java/com/google/cloud/bigtable/testproxy/CbtTestProxy.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/test-proxy/src/main/java/com/google/cloud/bigtable/testproxy/CbtTestProxy.java b/test-proxy/src/main/java/com/google/cloud/bigtable/testproxy/CbtTestProxy.java index cfce491548..7f1f8f6cc7 100644 --- a/test-proxy/src/main/java/com/google/cloud/bigtable/testproxy/CbtTestProxy.java +++ b/test-proxy/src/main/java/com/google/cloud/bigtable/testproxy/CbtTestProxy.java @@ -411,8 +411,6 @@ public void readRow(ReadRowRequest request, StreamObserver responseOb resultBuilder.setStatus(com.google.rpc.Status.getDefaultInstance()).build()); } else { logger.info(String.format("readRow() did not find row: %s", request.getRowKey())); - responseObserver.onNext( - RowResult.newBuilder().setStatus(com.google.rpc.Status.getDefaultInstance()).build()); } } catch (ApiException e) { responseObserver.onNext( From d90d7a6454176c46ce64c7b11f2ddc9095c9b2ba Mon Sep 17 00:00:00 2001 From: Alex O'Neill Date: Thu, 29 Jan 2026 17:35:42 -0500 Subject: [PATCH 5/8] Skip setting empty status on RMW empty result --- .../java/com/google/cloud/bigtable/testproxy/CbtTestProxy.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/test-proxy/src/main/java/com/google/cloud/bigtable/testproxy/CbtTestProxy.java b/test-proxy/src/main/java/com/google/cloud/bigtable/testproxy/CbtTestProxy.java index 7f1f8f6cc7..fa864be7dc 100644 --- a/test-proxy/src/main/java/com/google/cloud/bigtable/testproxy/CbtTestProxy.java +++ b/test-proxy/src/main/java/com/google/cloud/bigtable/testproxy/CbtTestProxy.java @@ -691,9 +691,6 @@ public void readModifyWriteRow( logger.info( String.format( "readModifyWriteRow() did not find row: %s", request.getRequest().getRowKey())); - responseObserver.onNext( - // Note that the default instance == OK - RowResult.newBuilder().setStatus(com.google.rpc.Status.getDefaultInstance()).build()); } } catch (ApiException e) { responseObserver.onNext( From 1520b27d7d8aa4e7748b47bf810b44969a4401cc Mon Sep 17 00:00:00 2001 From: Alex O'Neill Date: Fri, 30 Jan 2026 11:46:50 -0500 Subject: [PATCH 6/8] format --- .../bigtable/testproxy/CbtTestProxy.java | 32 +++++-------------- 1 file changed, 8 insertions(+), 24 deletions(-) diff --git a/test-proxy/src/main/java/com/google/cloud/bigtable/testproxy/CbtTestProxy.java b/test-proxy/src/main/java/com/google/cloud/bigtable/testproxy/CbtTestProxy.java index fa864be7dc..d4cdb168cd 100644 --- a/test-proxy/src/main/java/com/google/cloud/bigtable/testproxy/CbtTestProxy.java +++ b/test-proxy/src/main/java/com/google/cloud/bigtable/testproxy/CbtTestProxy.java @@ -303,9 +303,7 @@ public void mutateRow( return; } catch (StatusException | StatusRuntimeException e) { responseObserver.onNext( - MutateRowResult.newBuilder() - .setStatus(StatusProto.fromThrowable(e)) - .build()); + MutateRowResult.newBuilder().setStatus(StatusProto.fromThrowable(e)).build()); responseObserver.onCompleted(); return; } @@ -364,9 +362,7 @@ public void bulkMutateRows( return; } catch (StatusException | StatusRuntimeException e) { responseObserver.onNext( - MutateRowsResult.newBuilder() - .setStatus(StatusProto.fromThrowable(e)) - .build()); + MutateRowsResult.newBuilder().setStatus(StatusProto.fromThrowable(e)).build()); responseObserver.onCompleted(); return; } @@ -425,9 +421,7 @@ public void readRow(ReadRowRequest request, StreamObserver responseOb return; } catch (StatusException | StatusRuntimeException e) { responseObserver.onNext( - RowResult.newBuilder() - .setStatus(StatusProto.fromThrowable(e)) - .build()); + RowResult.newBuilder().setStatus(StatusProto.fromThrowable(e)).build()); responseObserver.onCompleted(); return; } catch (RuntimeException e) { @@ -478,9 +472,7 @@ public void readRows(ReadRowsRequest request, StreamObserver respons return; } catch (StatusException | StatusRuntimeException e) { responseObserver.onNext( - RowsResult.newBuilder() - .setStatus(StatusProto.fromThrowable(e)) - .build()); + RowsResult.newBuilder().setStatus(StatusProto.fromThrowable(e)).build()); responseObserver.onCompleted(); return; } catch (RuntimeException e) { @@ -604,9 +596,7 @@ public void sampleRowKeys( return; } catch (StatusException | StatusRuntimeException e) { responseObserver.onNext( - SampleRowKeysResult.newBuilder() - .setStatus(StatusProto.fromThrowable(e)) - .build()); + SampleRowKeysResult.newBuilder().setStatus(StatusProto.fromThrowable(e)).build()); responseObserver.onCompleted(); return; } @@ -652,9 +642,7 @@ public void checkAndMutateRow( return; } catch (StatusException | StatusRuntimeException e) { responseObserver.onNext( - CheckAndMutateRowResult.newBuilder() - .setStatus(StatusProto.fromThrowable(e)) - .build()); + CheckAndMutateRowResult.newBuilder().setStatus(StatusProto.fromThrowable(e)).build()); responseObserver.onCompleted(); return; } @@ -705,9 +693,7 @@ public void readModifyWriteRow( return; } catch (StatusException | StatusRuntimeException e) { responseObserver.onNext( - RowResult.newBuilder() - .setStatus(StatusProto.fromThrowable(e)) - .build()); + RowResult.newBuilder().setStatus(StatusProto.fromThrowable(e)).build()); responseObserver.onCompleted(); return; } catch (RuntimeException e) { @@ -770,9 +756,7 @@ public void executeQuery( return; } catch (StatusException | StatusRuntimeException e) { responseObserver.onNext( - ExecuteQueryResult.newBuilder() - .setStatus(StatusProto.fromThrowable(e)) - .build()); + ExecuteQueryResult.newBuilder().setStatus(StatusProto.fromThrowable(e)).build()); responseObserver.onCompleted(); return; } catch (RuntimeException e) { From 0571d464d8e5b43109235f47b983aa7b2d2fdc85 Mon Sep 17 00:00:00 2001 From: Alex O'Neill Date: Fri, 30 Jan 2026 11:47:02 -0500 Subject: [PATCH 7/8] Increase inbound message & metadata size. --- .../google/cloud/bigtable/testproxy/CbtTestProxyMain.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/test-proxy/src/main/java/com/google/cloud/bigtable/testproxy/CbtTestProxyMain.java b/test-proxy/src/main/java/com/google/cloud/bigtable/testproxy/CbtTestProxyMain.java index f817197d14..77a764f551 100644 --- a/test-proxy/src/main/java/com/google/cloud/bigtable/testproxy/CbtTestProxyMain.java +++ b/test-proxy/src/main/java/com/google/cloud/bigtable/testproxy/CbtTestProxyMain.java @@ -34,6 +34,12 @@ public static void main(String[] args) throws InterruptedException, IOException CbtTestProxy cbtTestProxy = CbtTestProxy.create(); logger.info(String.format("Test proxy starting on %d", port)); - ServerBuilder.forPort(port).addService(cbtTestProxy).build().start().awaitTermination(); + ServerBuilder.forPort(port) + .addService(cbtTestProxy) + .maxInboundMessageSize(Integer.MAX_VALUE) + .maxInboundMetadataSize(Integer.MAX_VALUE) + .build() + .start() + .awaitTermination(); } } From f3ca9dbbdf1e480c0530801cf7ae33f0435922a1 Mon Sep 17 00:00:00 2001 From: Alex O'Neill Date: Fri, 30 Jan 2026 17:32:41 +0000 Subject: [PATCH 8/8] Remove StatusException case from new catches. --- .../cloud/bigtable/testproxy/CbtTestProxy.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/test-proxy/src/main/java/com/google/cloud/bigtable/testproxy/CbtTestProxy.java b/test-proxy/src/main/java/com/google/cloud/bigtable/testproxy/CbtTestProxy.java index d4cdb168cd..759f1de867 100644 --- a/test-proxy/src/main/java/com/google/cloud/bigtable/testproxy/CbtTestProxy.java +++ b/test-proxy/src/main/java/com/google/cloud/bigtable/testproxy/CbtTestProxy.java @@ -301,7 +301,7 @@ public void mutateRow( .build()); responseObserver.onCompleted(); return; - } catch (StatusException | StatusRuntimeException e) { + } catch (StatusRuntimeException e) { responseObserver.onNext( MutateRowResult.newBuilder().setStatus(StatusProto.fromThrowable(e)).build()); responseObserver.onCompleted(); @@ -360,7 +360,7 @@ public void bulkMutateRows( .build()); responseObserver.onCompleted(); return; - } catch (StatusException | StatusRuntimeException e) { + } catch (StatusRuntimeException e) { responseObserver.onNext( MutateRowsResult.newBuilder().setStatus(StatusProto.fromThrowable(e)).build()); responseObserver.onCompleted(); @@ -419,7 +419,7 @@ public void readRow(ReadRowRequest request, StreamObserver responseOb .build()); responseObserver.onCompleted(); return; - } catch (StatusException | StatusRuntimeException e) { + } catch (StatusRuntimeException e) { responseObserver.onNext( RowResult.newBuilder().setStatus(StatusProto.fromThrowable(e)).build()); responseObserver.onCompleted(); @@ -470,7 +470,7 @@ public void readRows(ReadRowsRequest request, StreamObserver respons .build()); responseObserver.onCompleted(); return; - } catch (StatusException | StatusRuntimeException e) { + } catch (StatusRuntimeException e) { responseObserver.onNext( RowsResult.newBuilder().setStatus(StatusProto.fromThrowable(e)).build()); responseObserver.onCompleted(); @@ -594,7 +594,7 @@ public void sampleRowKeys( .build()); responseObserver.onCompleted(); return; - } catch (StatusException | StatusRuntimeException e) { + } catch (StatusRuntimeException e) { responseObserver.onNext( SampleRowKeysResult.newBuilder().setStatus(StatusProto.fromThrowable(e)).build()); responseObserver.onCompleted(); @@ -640,7 +640,7 @@ public void checkAndMutateRow( .build()); responseObserver.onCompleted(); return; - } catch (StatusException | StatusRuntimeException e) { + } catch (StatusRuntimeException e) { responseObserver.onNext( CheckAndMutateRowResult.newBuilder().setStatus(StatusProto.fromThrowable(e)).build()); responseObserver.onCompleted(); @@ -691,7 +691,7 @@ public void readModifyWriteRow( .build()); responseObserver.onCompleted(); return; - } catch (StatusException | StatusRuntimeException e) { + } catch (StatusRuntimeException e) { responseObserver.onNext( RowResult.newBuilder().setStatus(StatusProto.fromThrowable(e)).build()); responseObserver.onCompleted(); @@ -754,7 +754,7 @@ public void executeQuery( .build()); responseObserver.onCompleted(); return; - } catch (StatusException | StatusRuntimeException e) { + } catch (StatusRuntimeException e) { responseObserver.onNext( ExecuteQueryResult.newBuilder().setStatus(StatusProto.fromThrowable(e)).build()); responseObserver.onCompleted();