From 64a4f6185c5dcd96ee57978963324ea50f4dd6f7 Mon Sep 17 00:00:00 2001 From: Florian Klink Date: Mon, 12 Jun 2023 15:13:00 +0300 Subject: refactor(tvix/store/blobsvc): drop Result<_,_> around open_write We never returned Err here anyways, and we can still return an error during the first (or subsequent) write(s). Change-Id: I4b4cd3d35f6ea008e9ffe2f7b71bfc9187309e2f Reviewed-on: https://cl.tvl.fyi/c/depot/+/8750 Autosubmit: flokli Tested-by: BuildkiteCI Reviewed-by: tazjin --- tvix/store/src/blobservice/grpc.rs | 10 +++++----- tvix/store/src/blobservice/memory.rs | 4 ++-- tvix/store/src/blobservice/mod.rs | 3 +-- tvix/store/src/blobservice/sled.rs | 4 ++-- tvix/store/src/import.rs | 2 +- tvix/store/src/proto/grpc_blobservice_wrapper.rs | 5 +---- tvix/store/src/tests/nar_renderer.rs | 6 +++--- 7 files changed, 15 insertions(+), 19 deletions(-) (limited to 'tvix') diff --git a/tvix/store/src/blobservice/grpc.rs b/tvix/store/src/blobservice/grpc.rs index 46ec64bce7..6f04c6a3d4 100644 --- a/tvix/store/src/blobservice/grpc.rs +++ b/tvix/store/src/blobservice/grpc.rs @@ -121,9 +121,9 @@ impl BlobService for GRPCBlobService { } } - /// Returns a [Self::BlobWriter], that'll internally wrap each write in a - // [proto::BlobChunk] and which is passed to the - fn open_write(&self) -> Result, crate::Error> { + /// Returns a BlobWriter, that'll internally wrap each write in a + // [proto::BlobChunk], which is send to the gRPC server. + fn open_write(&self) -> Box { let mut grpc_client = self.grpc_client.clone(); // set up an mpsc channel passing around Bytes. @@ -155,11 +155,11 @@ impl BlobService for GRPCBlobService { // … which is then turned into a [io::Write]. let writer = SyncIoBridge::new(async_writer); - Ok(Box::new(GRPCBlobWriter { + Box::new(GRPCBlobWriter { tokio_handle: self.tokio_handle.clone(), // TODO: is the clone() ok here? task_and_writer: Some((task, writer)), digest: None, - })) + }) } } diff --git a/tvix/store/src/blobservice/memory.rs b/tvix/store/src/blobservice/memory.rs index 166eeabdb6..0ea8479f87 100644 --- a/tvix/store/src/blobservice/memory.rs +++ b/tvix/store/src/blobservice/memory.rs @@ -30,8 +30,8 @@ impl BlobService for MemoryBlobService { } #[instrument(skip(self))] - fn open_write(&self) -> Result, Error> { - Ok(Box::new(MemoryBlobWriter::new(self.db.clone()))) + fn open_write(&self) -> Box { + Box::new(MemoryBlobWriter::new(self.db.clone())) } } diff --git a/tvix/store/src/blobservice/mod.rs b/tvix/store/src/blobservice/mod.rs index d9aa15bf2a..c1bca927d7 100644 --- a/tvix/store/src/blobservice/mod.rs +++ b/tvix/store/src/blobservice/mod.rs @@ -24,8 +24,7 @@ pub trait BlobService: Send + Sync { /// Insert a new blob into the store. Returns a [BlobWriter], which /// implements [io::Write] and a [BlobWriter::close]. - /// TODO: is there any reason we want this to be a Result<>, and not just T? - fn open_write(&self) -> Result, Error>; + fn open_write(&self) -> Box; } /// A [io::Write] that you need to close() afterwards, and get back the digest diff --git a/tvix/store/src/blobservice/sled.rs b/tvix/store/src/blobservice/sled.rs index 3f212142b9..1ae71170e1 100644 --- a/tvix/store/src/blobservice/sled.rs +++ b/tvix/store/src/blobservice/sled.rs @@ -46,8 +46,8 @@ impl BlobService for SledBlobService { } #[instrument(skip(self))] - fn open_write(&self) -> Result, Error> { - Ok(Box::new(SledBlobWriter::new(self.db.clone()))) + fn open_write(&self) -> Box { + Box::new(SledBlobWriter::new(self.db.clone())) } } diff --git a/tvix/store/src/import.rs b/tvix/store/src/import.rs index 1e639e1d7c..dd366aef95 100644 --- a/tvix/store/src/import.rs +++ b/tvix/store/src/import.rs @@ -114,7 +114,7 @@ fn process_entry( let mut file = File::open(entry_path.clone()) .map_err(|e| Error::UnableToOpen(entry_path.clone(), e))?; - let mut writer = blob_service.open_write()?; + let mut writer = blob_service.open_write(); if let Err(e) = io::copy(&mut file, &mut writer) { return Err(Error::UnableToRead(entry_path, e)); diff --git a/tvix/store/src/proto/grpc_blobservice_wrapper.rs b/tvix/store/src/proto/grpc_blobservice_wrapper.rs index 04097997c2..fee97c7d2d 100644 --- a/tvix/store/src/proto/grpc_blobservice_wrapper.rs +++ b/tvix/store/src/proto/grpc_blobservice_wrapper.rs @@ -161,10 +161,7 @@ impl super::blob_service_server::BlobService for GRPCBlobServiceWrapper { let data_reader = tokio_util::io::StreamReader::new(data_stream); // prepare a writer, which we'll use in the blocking task below. - let mut writer = self - .blob_service - .open_write() - .map_err(|e| Status::internal(format!("unable to open for write: {}", e)))?; + let mut writer = self.blob_service.open_write(); let result = task::spawn_blocking(move || -> Result { // construct a sync reader to the data diff --git a/tvix/store/src/tests/nar_renderer.rs b/tvix/store/src/tests/nar_renderer.rs index 37a01c2e18..b92fdc087b 100644 --- a/tvix/store/src/tests/nar_renderer.rs +++ b/tvix/store/src/tests/nar_renderer.rs @@ -61,7 +61,7 @@ fn single_file_wrong_blob_size() { let blob_service = gen_blob_service(); // insert blob into the store - let mut writer = blob_service.open_write().unwrap(); + let mut writer = blob_service.open_write(); io::copy( &mut io::Cursor::new(HELLOWORLD_BLOB_CONTENTS.to_vec()), &mut writer, @@ -125,7 +125,7 @@ fn single_file() { let blob_service = gen_blob_service(); // insert blob into the store - let mut writer = blob_service.open_write().unwrap(); + let mut writer = blob_service.open_write(); io::copy( &mut io::Cursor::new(HELLOWORLD_BLOB_CONTENTS.to_vec()), &mut writer, @@ -158,7 +158,7 @@ fn test_complicated() { // put all data into the stores. // insert blob into the store - let mut writer = blob_service.open_write().unwrap(); + let mut writer = blob_service.open_write(); io::copy( &mut io::Cursor::new(EMPTY_BLOB_CONTENTS.to_vec()), &mut writer, -- cgit 1.4.1