From 04e4813274e6d3842e29ad2199c88a07376c49bd Mon Sep 17 00:00:00 2001 From: Alessandro Patti Date: Sat, 2 Oct 2021 21:41:12 +0200 Subject: [PATCH] [Compression][Upload] Seek before jumping in rpc call --- .../build/lib/remote/ByteStreamUploader.java | 22 +++++++++---------- 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/google/devtools/build/lib/remote/ByteStreamUploader.java b/src/main/java/com/google/devtools/build/lib/remote/ByteStreamUploader.java index 69c5a30f94c233..7e321ab88e306b 100644 --- a/src/main/java/com/google/devtools/build/lib/remote/ByteStreamUploader.java +++ b/src/main/java/com/google/devtools/build/lib/remote/ByteStreamUploader.java @@ -408,7 +408,16 @@ ListenableFuture start() { () -> retrier.executeAsync( () -> { - chunker.seek(committedOffset.get()); + try { + chunker.seek(committedOffset.get()); + } catch (IOException e) { + try { + chunker.reset(); + } catch (IOException resetException) { + e.addSuppressed(resetException); + } + return Futures.immediateFailedFuture(e); + } if (chunker.hasNext()) { return callAndQueryOnFailure(committedOffset, progressiveBackoff); } @@ -521,17 +530,6 @@ private ListenableFuture call(AtomicLong committedOffset) { .withDeadlineAfter(callTimeoutSecs, SECONDS); call = channel.newCall(ByteStreamGrpc.getWriteMethod(), callOptions); - try { - chunker.seek(committedOffset.get()); - } catch (IOException e) { - try { - chunker.reset(); - } catch (IOException resetException) { - e.addSuppressed(resetException); - } - return Futures.immediateFailedFuture(e); - } - SettableFuture uploadResult = SettableFuture.create(); ClientCall.Listener callListener = new ClientCall.Listener() {