Fix noinlineerr findings: internal/blob (refs #61)
This commit is contained in:
@@ -289,9 +289,10 @@ func (p *Packer) startNewBlob() error {
|
|||||||
UploadedTS: nil,
|
UploadedTS: nil,
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := p.repos.WithTx(context.Background(), func(ctx context.Context, tx *sql.Tx) error {
|
err = p.repos.WithTx(context.Background(), func(ctx context.Context, tx *sql.Tx) error {
|
||||||
return p.repos.Blobs.Create(ctx, tx, blob)
|
return p.repos.Blobs.Create(ctx, tx, blob)
|
||||||
}); err != nil {
|
})
|
||||||
|
if err != nil {
|
||||||
return fmt.Errorf("creating blob record: %w", err)
|
return fmt.Errorf("creating blob record: %w", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -339,7 +340,8 @@ func (p *Packer) addChunkToCurrentBlob(chunk *ChunkRef) error {
|
|||||||
offset := p.currentBlob.size
|
offset := p.currentBlob.size
|
||||||
|
|
||||||
// Write to the blobgen writer (compression -> encryption -> disk)
|
// Write to the blobgen writer (compression -> encryption -> disk)
|
||||||
if _, err := p.currentBlob.writer.Write(chunk.Data); err != nil {
|
_, err := p.currentBlob.writer.Write(chunk.Data)
|
||||||
|
if err != nil {
|
||||||
return fmt.Errorf("writing to blob stream: %w", err)
|
return fmt.Errorf("writing to blob stream: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -387,7 +389,8 @@ func (p *Packer) finalizeCurrentBlob() error {
|
|||||||
chunksToInsert := p.pendingChunks
|
chunksToInsert := p.pendingChunks
|
||||||
p.pendingChunks = nil
|
p.pendingChunks = nil
|
||||||
|
|
||||||
if err := p.commitBlobToDatabase(blobHash, finalSize, chunksToInsert); err != nil {
|
err = p.commitBlobToDatabase(blobHash, finalSize, chunksToInsert)
|
||||||
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -417,13 +420,15 @@ func (p *Packer) finalizeCurrentBlob() error {
|
|||||||
|
|
||||||
// closeBlobWriter closes the writer, syncs to disk, and returns the blob hash and final size
|
// closeBlobWriter closes the writer, syncs to disk, and returns the blob hash and final size
|
||||||
func (p *Packer) closeBlobWriter() (string, int64, error) {
|
func (p *Packer) closeBlobWriter() (string, int64, error) {
|
||||||
if err := p.currentBlob.writer.Close(); err != nil {
|
err := p.currentBlob.writer.Close()
|
||||||
|
if err != nil {
|
||||||
p.cleanupTempFile()
|
p.cleanupTempFile()
|
||||||
|
|
||||||
return "", 0, fmt.Errorf("closing blobgen writer: %w", err)
|
return "", 0, fmt.Errorf("closing blobgen writer: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := p.currentBlob.tempFile.Sync(); err != nil {
|
err = p.currentBlob.tempFile.Sync()
|
||||||
|
if err != nil {
|
||||||
p.cleanupTempFile()
|
p.cleanupTempFile()
|
||||||
|
|
||||||
return "", 0, fmt.Errorf("syncing temp file: %w", err)
|
return "", 0, fmt.Errorf("syncing temp file: %w", err)
|
||||||
@@ -436,7 +441,8 @@ func (p *Packer) closeBlobWriter() (string, int64, error) {
|
|||||||
return "", 0, fmt.Errorf("getting file size: %w", err)
|
return "", 0, fmt.Errorf("getting file size: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if _, err := p.currentBlob.tempFile.Seek(0, io.SeekStart); err != nil {
|
_, err = p.currentBlob.tempFile.Seek(0, io.SeekStart)
|
||||||
|
if err != nil {
|
||||||
p.cleanupTempFile()
|
p.cleanupTempFile()
|
||||||
|
|
||||||
return "", 0, fmt.Errorf("seeking to start: %w", err)
|
return "", 0, fmt.Errorf("seeking to start: %w", err)
|
||||||
@@ -511,7 +517,8 @@ func (p *Packer) commitBlobToDatabase(blobHash string, finalSize int64, chunksTo
|
|||||||
// deliverFinishedBlob passes the blob to the handler or stores it internally
|
// deliverFinishedBlob passes the blob to the handler or stores it internally
|
||||||
func (p *Packer) deliverFinishedBlob(finished *FinishedBlob, insertedChunkHashes []string) error {
|
func (p *Packer) deliverFinishedBlob(finished *FinishedBlob, insertedChunkHashes []string) error {
|
||||||
if p.blobHandler != nil {
|
if p.blobHandler != nil {
|
||||||
if _, err := p.currentBlob.tempFile.Seek(0, io.SeekStart); err != nil {
|
_, err := p.currentBlob.tempFile.Seek(0, io.SeekStart)
|
||||||
|
if err != nil {
|
||||||
p.cleanupTempFile()
|
p.cleanupTempFile()
|
||||||
|
|
||||||
return fmt.Errorf("seeking for handler: %w", err)
|
return fmt.Errorf("seeking for handler: %w", err)
|
||||||
@@ -524,7 +531,7 @@ func (p *Packer) deliverFinishedBlob(finished *FinishedBlob, insertedChunkHashes
|
|||||||
InsertedChunkHashes: insertedChunkHashes,
|
InsertedChunkHashes: insertedChunkHashes,
|
||||||
}
|
}
|
||||||
|
|
||||||
err := p.blobHandler(blobWithReader)
|
err = p.blobHandler(blobWithReader)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
p.cleanupTempFile()
|
p.cleanupTempFile()
|
||||||
|
|
||||||
@@ -539,7 +546,8 @@ func (p *Packer) deliverFinishedBlob(finished *FinishedBlob, insertedChunkHashes
|
|||||||
// No handler - read data for legacy behavior
|
// No handler - read data for legacy behavior
|
||||||
log.Debug("No blob handler callback configured", "blob_hash", finished.Hash[:8]+"...")
|
log.Debug("No blob handler callback configured", "blob_hash", finished.Hash[:8]+"...")
|
||||||
|
|
||||||
if _, err := p.currentBlob.tempFile.Seek(0, io.SeekStart); err != nil {
|
_, err := p.currentBlob.tempFile.Seek(0, io.SeekStart)
|
||||||
|
if err != nil {
|
||||||
p.cleanupTempFile()
|
p.cleanupTempFile()
|
||||||
|
|
||||||
return fmt.Errorf("seeking to read data: %w", err)
|
return fmt.Errorf("seeking to read data: %w", err)
|
||||||
|
|||||||
@@ -81,12 +81,14 @@ func TestPacker(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Add chunk
|
// Add chunk
|
||||||
if err := packer.AddChunk(chunk); err != nil {
|
err = packer.AddChunk(chunk)
|
||||||
|
if err != nil {
|
||||||
t.Fatalf("failed to add chunk: %v", err)
|
t.Fatalf("failed to add chunk: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Flush
|
// Flush
|
||||||
if err := packer.Flush(); err != nil {
|
err = packer.Flush()
|
||||||
|
if err != nil {
|
||||||
t.Fatalf("failed to flush: %v", err)
|
t.Fatalf("failed to flush: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -118,7 +120,9 @@ func TestPacker(t *testing.T) {
|
|||||||
defer reader.Close()
|
defer reader.Close()
|
||||||
|
|
||||||
var decompressed bytes.Buffer
|
var decompressed bytes.Buffer
|
||||||
if _, err := io.Copy(&decompressed, reader); err != nil {
|
|
||||||
|
_, err = io.Copy(&decompressed, reader)
|
||||||
|
if err != nil {
|
||||||
t.Fatalf("failed to decompress: %v", err)
|
t.Fatalf("failed to decompress: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -186,7 +190,8 @@ func TestPacker(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Flush
|
// Flush
|
||||||
if err := packer.Flush(); err != nil {
|
err = packer.Flush()
|
||||||
|
if err != nil {
|
||||||
t.Fatalf("failed to flush: %v", err)
|
t.Fatalf("failed to flush: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -290,7 +295,8 @@ func TestPacker(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Flush remaining
|
// Flush remaining
|
||||||
if err := packer.Flush(); err != nil {
|
err = packer.Flush()
|
||||||
|
if err != nil {
|
||||||
t.Fatalf("failed to flush: %v", err)
|
t.Fatalf("failed to flush: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -359,11 +365,13 @@ func TestPacker(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Add chunk and flush
|
// Add chunk and flush
|
||||||
if err := packer.AddChunk(chunk); err != nil {
|
err = packer.AddChunk(chunk)
|
||||||
|
if err != nil {
|
||||||
t.Fatalf("failed to add chunk: %v", err)
|
t.Fatalf("failed to add chunk: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := packer.Flush(); err != nil {
|
err = packer.Flush()
|
||||||
|
if err != nil {
|
||||||
t.Fatalf("failed to flush: %v", err)
|
t.Fatalf("failed to flush: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -382,7 +390,9 @@ func TestPacker(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var decryptedData bytes.Buffer
|
var decryptedData bytes.Buffer
|
||||||
if _, err := decryptedData.ReadFrom(decrypted); err != nil {
|
|
||||||
|
_, err = decryptedData.ReadFrom(decrypted)
|
||||||
|
if err != nil {
|
||||||
t.Fatalf("failed to read decrypted data: %v", err)
|
t.Fatalf("failed to read decrypted data: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -394,7 +404,9 @@ func TestPacker(t *testing.T) {
|
|||||||
defer reader.Close()
|
defer reader.Close()
|
||||||
|
|
||||||
var decompressed bytes.Buffer
|
var decompressed bytes.Buffer
|
||||||
if _, err := decompressed.ReadFrom(reader); err != nil {
|
|
||||||
|
_, err = decompressed.ReadFrom(reader)
|
||||||
|
if err != nil {
|
||||||
t.Fatalf("failed to decompress: %v", err)
|
t.Fatalf("failed to decompress: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user