code: @Override
    public void onCompleted() {
      RpcUtils.streamingRPCAndLog(LOG, new RpcUtils.StreamingRpcCallable<OpenLocalBlockResponse>() {
        @Override
        public OpenLocalBlockResponse call() throws Exception {
          if (mLockId != BlockLockManager.INVALID_LOCK_ID) {
            mWorker.unlockBlock(mLockId);
            mLockId = BlockLockManager.INVALID_LOCK_ID;
          } else if (mRequest != null) {
            LOG.warn("Close a closed block {}.", mRequest.getBlockId());
          }
          return null;
        }
  
        @Override
        public void exceptionCaught(Throwable e) {
          mResponseObserver.onError(GrpcExceptionUtils.fromThrowable(e));
          mLockId = BlockLockManager.INVALID_LOCK_ID;
        }
      }, "CloseBlock", false, true, mResponseObserver, "Session=%d, Request=%s",
          mSessionId, mRequest);
    }
docs: Handles block close request. No exceptions should be thrown.