diff --git a/pageserver/src/tenant/storage_layer/delta_layer.rs b/pageserver/src/tenant/storage_layer/delta_layer.rs index b0477fc308..3b059169de 100644 --- a/pageserver/src/tenant/storage_layer/delta_layer.rs +++ b/pageserver/src/tenant/storage_layer/delta_layer.rs @@ -117,6 +117,8 @@ impl From<&DeltaLayer> for Summary { impl Summary { /// Serializes the summary header into an aligned buffer of lenth `PAGE_SZ`. pub fn ser_into_page(&self) -> Result { + let mut buf = bytes::BytesMut::with_capacity(PAGE_SZ); + Self::ser_into(&self, &mut buf); let mut buf = IoBufferMut::with_capacity(PAGE_SZ); Self::ser_into(&self, &mut buf)?; // Pad zeroes to the buffer so the length is a multiple of the alignment. diff --git a/pageserver/src/tenant/storage_layer/image_layer.rs b/pageserver/src/tenant/storage_layer/image_layer.rs index 932cf20745..2db55c80a3 100644 --- a/pageserver/src/tenant/storage_layer/image_layer.rs +++ b/pageserver/src/tenant/storage_layer/image_layer.rs @@ -887,9 +887,11 @@ impl ImageLayerWriterInner { let file = self.blob_writer.into_inner(ctx).await?; // Write out the index - // TODO(yuchen): should we just replace BlockBuf::blocks with one big buffer? let mut offset = index_start_blk as u64 * PAGE_SZ as u64; let (index_root_blk, block_buf) = self.tree.finish()?; + + // TODO(yuchen): https://github.com/neondatabase/neon/issues/10092 + // Should we just replace BlockBuf::blocks with one big buffer? for buf in block_buf.blocks { let (_buf, res) = file.write_all_at(buf.slice_len(), offset, ctx).await; res?;