Skip to content

general improvements#6

Merged
ServerSideHannes merged 5 commits intomainfrom
docs/update-readme-image-helm-paths
Feb 11, 2026
Merged

general improvements#6
ServerSideHannes merged 5 commits intomainfrom
docs/update-readme-image-helm-paths

Conversation

@ServerSideHannes
Copy link
Owner

  • Update Docker image to ghcr.io/serversidehannes/s3proxy-python:latest
  • Update Helm install commands to use OCI registry
  • Remove testing section

@ServerSideHannes ServerSideHannes changed the title docs: update README with correct image and helm paths General imrpovments Feb 9, 2026
@ServerSideHannes ServerSideHannes changed the title General imrpovments general improvements Feb 9, 2026
… and helm chart restructuring

- Refactor handlers into modular packages (objects/, multipart/)
- Add memory-based concurrency limiting (replacing count-based)
- Add state management with Redis coordination and recovery
- Add streaming utilities and metrics collection
- Restructure helm chart (manifests/ -> chart/) with PDB and helpers
- Consolidate and expand e2e tests (clickhouse, elasticsearch, postgres, scylla, s3-compat)
- Add comprehensive unit and integration test suites
- Slim down Dockerfile and improve CI workflows (add lint, test)
- Harden error handling, input validation, XML escaping, and streaming safety
- Update README and add chart configuration reference
- Fix data loss on multipart complete and part retry
@ServerSideHannes ServerSideHannes force-pushed the docs/update-readme-image-helm-paths branch from ff075a9 to 27a668c Compare February 10, 2026 09:56
- Make BACKPRESSURE_TIMEOUT configurable via S3PROXY_BACKPRESSURE_TIMEOUT env var
- Replace test_concurrent_uploads_bounded with test_backpressure_queues_concurrent_uploads
  (tests that queued requests succeed instead of asserting immediate 503)
- Replace test_rejection_is_fast_no_body_read with test_rejection_after_backpressure_timeout
  (uses 1s timeout to actually trigger rejections)
- Remove retries>0 assertions from memory-bounded tests (backpressure queues
  requests instead of rejecting, so retries don't happen with 30s timeout)
Run s3proxy in a 128MB memory-constrained container and hammer it with
concurrent large uploads. If the memory limiter fails, the kernel
OOM-kills the process (exit code 137) — a binary pass/fail.

- Add s3proxy service to docker-compose with mem_limit=128m (oom profile)
- Add test_memory_leak.py with PUT and multipart upload stress tests
- Add make test-oom target and CI step
@ServerSideHannes ServerSideHannes force-pushed the docs/update-readme-image-helm-paths branch from 7edbf7a to d0291cd Compare February 10, 2026 15:52
- Fix concurrency limiter to reject requests exceeding budget instead of
  silently capping reservations
- Fix PUT memory estimate: streaming PUTs hold buffer + ciphertext (16MB
  not 8MB)
- Add dynamic memory acquisition in GET handler for encrypted decrypts
  (ciphertext + plaintext buffered simultaneously)
- Add container-based OOM proof test (256MB container, 5GB+ data)
- Split CI into parallel unit/integration jobs, separate OOM workflow
- Add make test-integration target
@ServerSideHannes ServerSideHannes merged commit 1e3d023 into main Feb 11, 2026
4 checks passed
@ServerSideHannes ServerSideHannes deleted the docs/update-readme-image-helm-paths branch February 11, 2026 12:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant