[PR #2313] [MERGED] fix(deps): use forked afero-s3 to fix S3 read performance regression #5599

Closed
opened 2026-04-16 13:43:46 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/go-vikunja/vikunja/pull/2313
Author: @maggch97
Created: 2/27/2026
Status: Merged
Merged: 3/3/2026
Merged by: @kolaente

Base: mainHead: fix/s3-read-performance


📝 Commits (1)

  • 8698134 fix(deps): use forked afero-s3 to fix S3 read performance regression

📊 Changes

2 files changed (+61 additions, -59 deletions)

View changed files

📝 go.mod (+21 -19)
📝 go.sum (+40 -40)

📄 Description

The upstream afero-s3 library has a severe performance regression where every Read() call opens a new HTTP connection to S3, resulting in hundreds of requests for sequential reads (e.g. ~320 requests for a 10MB file with 32KB buffers instead of 1).

This temporarily replaces afero-s3 with a fork that fixes the issue by requesting from the current offset to end-of-file when opening a read stream, and properly closing the stream on Seek().

Upstream PR: https://github.com/fclairamb/afero-s3/pull/938 This replace directive should be removed once the upstream PR is merged and a new version is released.

all releases after Jan 15(843ef7218a ) are affected


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/go-vikunja/vikunja/pull/2313 **Author:** [@maggch97](https://github.com/maggch97) **Created:** 2/27/2026 **Status:** ✅ Merged **Merged:** 3/3/2026 **Merged by:** [@kolaente](https://github.com/kolaente) **Base:** `main` ← **Head:** `fix/s3-read-performance` --- ### 📝 Commits (1) - [`8698134`](https://github.com/go-vikunja/vikunja/commit/86981346fb2058064cb8b0633b4016dd161c0271) fix(deps): use forked afero-s3 to fix S3 read performance regression ### 📊 Changes **2 files changed** (+61 additions, -59 deletions) <details> <summary>View changed files</summary> 📝 `go.mod` (+21 -19) 📝 `go.sum` (+40 -40) </details> ### 📄 Description The upstream afero-s3 library has a severe performance regression where every Read() call opens a new HTTP connection to S3, resulting in hundreds of requests for sequential reads (e.g. ~320 requests for a 10MB file with 32KB buffers instead of 1). This temporarily replaces afero-s3 with a fork that fixes the issue by requesting from the current offset to end-of-file when opening a read stream, and properly closing the stream on Seek(). Upstream PR: https://github.com/fclairamb/afero-s3/pull/938 This replace directive should be removed once the upstream PR is merged and a new version is released. all releases after Jan 15(https://github.com/go-vikunja/vikunja/commit/843ef7218a141ee23d25f99f46243bd4598f59fa ) are affected --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
GiteaMirror added the pull-request label 2026-04-16 13:43:46 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/vikunja#5599