Tree:
371fa1e8a0
add-ec-vacuum
add-filer-iam-grpc
add-iam-grpc-management
add_fasthttp_client
add_remote_storage
adding-message-queue-integration-tests
adjust-fsck-cutoff-default
admin/csrf-s3tables
allow-no-role-arn
also-delete-parent-directory-if-empty
avoid_releasing_temp_file_on_write
changing-to-zap
codex-rust-volume-server-bootstrap
codex/admin-oidc-auth-ui
codex/cache-iam-policy-engines
codex/ec-repair-worker
codex/erasure-coding-shard-distribution
codex/list-object-versions-newest-first
codex/s3tables-maint-lifecycle-parity
codex/s3tables-maint-planner-multispec
codex/s3tables-maintenance-designs
collect-public-metrics
copilot/fix-helm-chart-installation
copilot/fix-s3-object-tagging-issue
copilot/make-renew-interval-configurable
copilot/make-renew-interval-configurable-again
copilot/sub-pr-7677
create-table-snapshot-api-design
data_query_pushdown
dependabot/go_modules/google.golang.org/grpc-1.79.3
dependabot/go_modules/test/kafka/google.golang.org/grpc-1.79.3
dependabot/maven/other/java/client/com.google.protobuf-protobuf-java-3.25.5
dependabot/maven/other/java/examples/org.apache.hadoop-hadoop-common-3.4.0
detect-and-plan-ec-tasks
do-not-retry-if-error-is-NotFound
ec-disk-type-support
enhance-erasure-coding
expand-the-s3-PutObject-permission-to-the-multipart-permissions
fasthttp
feature-8113-storage-class-disk-routing
feature/mini-port-detection
feature/modernize-s3-tests
feature/s3-multi-cert-support
feature/s3tables-improvements-and-spark-tests
feature/sra-uds-handler
feature/sw-block
filer1_maintenance_branch
fix-8303-s3-lifecycle-ttl-assign
fix-GetObjectLockConfigurationHandler
fix-bucket-name-case-7910
fix-helm-fromtoml-compatibility
fix-mount-http-parallelism
fix-mount-read-throughput-7504
fix-pr-7909
fix-s3-configure-consistency
fix-s3-object-tagging-issue-7589
fix-sts-session-token-7941
fix-versioning-listing-only
fix/iceberg-stage-create-semantics
fix/mount-cache-consistency
fix/object-lock-delete-enforcement
fix/plugin-ui-remove-scheduler-settings
fix/sts-body-preservation
fix/windows-test-file-cleanup
ftp
gh-pages
has-weed-sql-command
iam-multi-file-migration
iam-permissions-and-api
improve-fuse-mount
improve-fuse-mount2
logrus
master
message_send
mount2
mq-subscribe
mq2
nfs-cookie-prefix-list-fixes
optimize-delete-lookups
original_weed_mount
plugin-system-phase1
plugin-ui-enhancements-restored
pr-7412
pr/7984
pr/8140
pr/8680
raft-dual-write
random_access_file
refactor-needle-read-operations
refactor-volume-write
remote_overlay
remove-implicit-directory-handling
revert-5134-patch-1
revert-5819-patch-1
revert-6434-bugfix-missing-s3-audit
rust-volume-server
s3-remote-cache-singleflight
s3-select
s3tables-by-claude
scheduler-sequential-iteration
sub
tcp_read
test-reverting-lock-table
test_udp
testing
testing-sdx-generation
tikv
track-mount-e2e
upgrade-versions-to-4.00
volume_buffered_writes
worker-execute-ec-tasks
0.72
0.72.release
0.73
0.74
0.75
0.76
0.77
0.90
0.91
0.92
0.93
0.94
0.95
0.96
0.97
0.98
0.99
1.00
1.01
1.02
1.03
1.04
1.05
1.06
1.07
1.08
1.09
1.10
1.11
1.12
1.14
1.15
1.16
1.17
1.18
1.19
1.20
1.21
1.22
1.23
1.24
1.25
1.26
1.27
1.28
1.29
1.30
1.31
1.32
1.33
1.34
1.35
1.36
1.37
1.38
1.40
1.41
1.42
1.43
1.44
1.45
1.46
1.47
1.48
1.49
1.50
1.51
1.52
1.53
1.54
1.55
1.56
1.57
1.58
1.59
1.60
1.61
1.61RC
1.62
1.63
1.64
1.65
1.66
1.67
1.68
1.69
1.70
1.71
1.72
1.73
1.74
1.75
1.76
1.77
1.78
1.79
1.80
1.81
1.82
1.83
1.84
1.85
1.86
1.87
1.88
1.90
1.91
1.92
1.93
1.94
1.95
1.96
1.97
1.98
1.99
1;70
2.00
2.01
2.02
2.03
2.04
2.05
2.06
2.07
2.08
2.09
2.10
2.11
2.12
2.13
2.14
2.15
2.16
2.17
2.18
2.19
2.20
2.21
2.22
2.23
2.24
2.25
2.26
2.27
2.28
2.29
2.30
2.31
2.32
2.33
2.34
2.35
2.36
2.37
2.38
2.39
2.40
2.41
2.42
2.43
2.47
2.48
2.49
2.50
2.51
2.52
2.53
2.54
2.55
2.56
2.57
2.58
2.59
2.60
2.61
2.62
2.63
2.64
2.65
2.66
2.67
2.68
2.69
2.70
2.71
2.72
2.73
2.74
2.75
2.76
2.77
2.78
2.79
2.80
2.81
2.82
2.83
2.84
2.85
2.86
2.87
2.88
2.89
2.90
2.91
2.92
2.93
2.94
2.95
2.96
2.97
2.98
2.99
3.00
3.01
3.02
3.03
3.04
3.05
3.06
3.07
3.08
3.09
3.10
3.11
3.12
3.13
3.14
3.15
3.16
3.18
3.19
3.20
3.21
3.22
3.23
3.24
3.25
3.26
3.27
3.28
3.29
3.30
3.31
3.32
3.33
3.34
3.35
3.36
3.37
3.38
3.39
3.40
3.41
3.42
3.43
3.44
3.45
3.46
3.47
3.48
3.50
3.51
3.52
3.53
3.54
3.55
3.56
3.57
3.58
3.59
3.60
3.61
3.62
3.63
3.64
3.65
3.66
3.67
3.68
3.69
3.71
3.72
3.73
3.74
3.75
3.76
3.77
3.78
3.79
3.80
3.81
3.82
3.83
3.84
3.85
3.86
3.87
3.88
3.89
3.90
3.91
3.92
3.93
3.94
3.95
3.96
3.97
3.98
3.99
4.00
4.01
4.02
4.03
4.04
4.05
4.06
4.07
4.08
4.09
4.12
4.13
4.15
4.16
4.17
dev
helm-3.65.1
v0.69
v0.70beta
v3.33
${ noResults }
7 Commits (371fa1e8a0650bae8ee655daa475ea01b26b6095)
| Author | SHA1 | Message | Date |
|---|---|---|---|
|
|
fbe0e5829c |
fix: add runtime metrics and pprof parity
|
2 weeks ago |
|
|
8ade1c51d4 |
fix: send go-compatible heartbeat metadata
|
2 weeks ago |
|
|
a184711b3a |
add redb disk-backed needle maps, binary search for incremental copy, and proxy/redirect read modes
- RedbNeedleMap: pure-Rust disk-backed needle map using redb, with NeedleMap enum wrapping both in-memory and redb variants - binary_search_by_append_at_ns: port of Go's BinarySearchByAppendAtNs for VolumeIncrementalCopy with since_ns > 0 - Proxy/redirect: master volume lookup, HTTP proxy forwarding with ?proxied=true, and 301 redirects for non-local volumes based on ReadMode config - Wire new VolumeServerState fields: read_mode, master_url, self_url, http_client |
2 weeks ago |
|
|
d6cd853b9d |
production sprint 4: EC batch delete, JPEG orientation, write queue, S3 tier move
- BatchDelete now supports EC volumes: looks up needle in .ecx index, journals deletion to .ecj file (local-only, Go handles distributed part) - JPEG EXIF orientation auto-fix on upload using kamadak-exif + image crate, matching Go's FixJpgOrientation behavior (8 orientation transforms) - Async batched write processing via mpsc queue (up to 128 entries per batch), groups writes by volume ID and syncs once per volume per batch - VolumeTierMoveDatToRemote: multipart upload .dat file to S3 with progress streaming, updates .vif with remote file reference - VolumeTierMoveDatFromRemote: downloads .dat from S3 with progress streaming, removes remote file reference from .vif - S3TierRegistry for managing named remote storage backends - VolumeInfo (.vif) JSON persistence matching Go's protojson format - 124 lib + 7 integration = 131 Rust tests pass - All 109 Go integration tests pass (53 HTTP + 56 gRPC) |
2 weeks ago |
|
|
1484de0922 |
production readiness: TLS, disk monitoring, scrubbing, stats, and integration tests
Sprint 1-3 features: - TLS/HTTPS support via rustls + tokio-rustls (HTTP) and tonic ServerTlsConfig (gRPC) - MinFreeSpace enforcement with background disk monitor (libc::statvfs, 60s interval) - Volume scrubbing: CRC checksum verification of all needles - VolumeMarkReadonly triggers immediate heartbeat to master - File size limit enforcement on upload - Custom timestamps via ?ts= query param - Healthz returns 503 when not heartbeating to master - preStopSeconds graceful drain before shutdown - S3 response passthrough headers (content-encoding, expires, content-language) - .vif persistence for readonly state across restarts - Webp image support for resize - MIME type extraction from Content-Type header - Stats endpoints (/stats/counter, /stats/memory, /stats/disk) with Go-compatible format - JSON pretty print (?pretty=y) and JSONP (?callback=fn) - Request ID generation (UUID if x-amz-request-id missing) - Advanced Prometheus metrics (INFLIGHT_REQUESTS, VOLUME_FILE_COUNT gauges) Integration tests: 12 new tests (7 HTTP, 5 gRPC) covering stats, JSONP, custom timestamps, request IDs, S3 headers, large files, content-type, scrub verification, disk stats, blob/meta round-trip, batch delete. CI fix: skip known-unfixable tests (CONNECT parity, Go-only volume move), fix TestRustStatusEndpoint field name case. |
2 weeks ago |
|
|
3151085f5a |
Phase 1+3: HTTP core fixes and gRPC maintenance/error parity
HTTP improvements (36/55 tests pass, up from 16):
- Server header middleware ("SeaweedFS Volume 0.1.0")
- CORS headers (Access-Control-Allow-Origin/Credentials) when Origin present
- OPTIONS handlers with proper Allow-Methods per port
- Unsupported method handling (400 on admin, 200 passthrough on public)
- Request ID echo (x-amz-request-id)
- Static asset endpoints (/favicon.ico, /seaweedfsstatic/*, /ui/index.html)
- Cookie validation on read (404 for mismatch)
- ETag and If-None-Match support (304 Not Modified)
- Last-Modified header (RFC 1123 format) and If-Modified-Since (304)
- Conditional header precedence matching Go (IMS before INM)
- Range requests (206 Partial Content, multipart/byteranges)
- Oversized combined ranges return 200 empty (matching Go)
- Content-Disposition for ?dl=true downloads
- response-content-type and response-cache-control query params
- JWT extraction from query param, header, and cookie (precedence)
- Dedup detection fix (match Go: compare cookie+checksum+data only)
- Set last_modified timestamp on HTTP writes
- Delete returns JSON body, cookie mismatch returns 400
- Status JSON format matches Go (Version, Volumes, DiskStatuses)
gRPC improvements:
- Maintenance mode (GetState/SetState with optimistic concurrency)
- Maintenance checks on write operations
- VolumeUnmount idempotency (success for missing volume)
- Ping target routing
- VolumeConfigure error in response field (not gRPC error)
- VolumeNeedleStatus error format parity
- VolumeServerStatus memory_status field
- Error message format parity ("not found volume id")
|
2 weeks ago |
|
|
14d9b89e25 |
Add HTTP integration tests for volume server handlers
Tests healthz (200/503), status JSON, write-then-read round-trip, delete-then-404, HEAD headers-only, and invalid path 400 responses. Uses axum's tower::ServiceExt::oneshot for in-process testing. |
2 weeks ago |