Commit Graph
33 Commits
Author SHA1 Message Date
user.email b571ced535 fix(rust-volume-server): build backend binary into a private cache dir
A preexisting executable in a world-writable temp path could have been
planted by another local user; only reuse the cache when the directory
is verifiably ours, and otherwise build in a per-process directory.
2026-10-24 22:45:25 -07:00
user.email 76597324e6 feat(volume): carry client address through PROXY v1 to supervised backends
The proxy/native frontends terminate the client TCP connection, so the
Go backend saw loopback peers and -whiteList could not be enforced.
The launcher now passes -proxyProtocol and prepends a PROXY v1 line to
each proxied connection; opted-in listeners unwrap it and expose the
real client address to HTTP and gRPC checks.
2026-10-24 22:45:21 -07:00
user.email 65b92b654d fix(rust-volume-server): skip native size pre-check for multipart uploads
The limit applies to the file part, not the multipart envelope; multipart
uploads are delegated so the backend measures the right bytes.
2026-10-24 22:45:14 -07:00
user.email bedb60a8a8 fix(rust-volume-server): delegate Content-MD5 verification to the Go backend
The native pre-check rejected every upload carrying Content-MD5, even when
the checksum was correct; the backend accepts matching checksums and only
rejects mismatches.
2026-10-24 22:45:11 -07:00
user.emailandDevin a3d343178a fix(rust-volume-server): delegate placeholder native responses to the Go backend
The native handlers returned fabricated empty content for /status,
/healthz, /favicon.ico, /seaweedfsstatic, and /ui/index.html, hiding the
real server state behind 200 responses. Let those paths fall through to
the supervised backend so it serves the real data; keep the parity-only
native checks (OPTIONS, method gating, request validation).

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-24 22:24:51 -07:00
user.emailandDevin 7baa9c357f fix(rust-volume-server): advertise frontend address through the supervised backend
Rewriting the backend's -ip and ports made its heartbeat register the
private loopback backend instead of the listener clients should use.
When the frontend ports can also be bound on a non-conflicting address
(loopback alias for loopback frontends, 127.0.0.1 for remote ones), run
the backend there with the frontend identity so master advertises the
proxy; otherwise keep the old loopback-plus-random-ports fallback.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-24 22:24:29 -07:00
user.emailandDevin b4532b7083 fix(rust-volume-server): bound proxied connections and time out idle header peeks
Each accepted connection previously spawned an unbounded worker thread
that could block forever in peek, letting idle clients exhaust threads.
Cap in-flight connections per listener and give the header peek a read
deadline, cleared again before traffic is proxied.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-24 22:24:17 -07:00
user.emailandDevin 3b3042099f fix(rust-volume-server): accept --flag style and securityFile for the weed backend
The integration harness passes rust-native flags (--port, --ip.bind,
--securityFile). Translate --securityFile into the weed-level -config_dir
flag placed before the volume subcommand, and teach flag parsing and
rewriting to match single- and double-dash forms.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-24 22:23:53 -07:00
Chris Lu 07954a03c0 fix(rust-volume-server): check executable extension on non-unix instead of always true 2026-10-24 21:41:37 -07:00
Chris Lu 661d8df4d9 fix(rust-volume-server): read argv via args_os so non-UTF8 args cannot panic 2026-10-24 21:41:33 -07:00
Chris Lu 7e6db15a88 docs(volume-server): record slash fid-path native validation progress 2026-02-16 05:06:57 -08:00
Chris Lu e66983e9bd feat(rust-volume-server): broaden native slash fid-path validation 2026-02-16 05:06:21 -08:00
Chris Lu b010af88fb docs(volume-server): log native write prevalidation parity progress 2026-02-16 04:37:41 -08:00
Chris Lu 94cefd6f4c feat(rust-volume-server): add native write prevalidation for multipart md5 and size limits 2026-02-16 04:37:11 -08:00
Chris Lu 47156eb8ce docs(volume-server): record native malformed-fid parity milestone 2026-02-16 04:07:51 -08:00
Chris Lu 1ce0174b23 feat(rust-volume-server): validate malformed fid routes in native http path 2026-02-16 04:07:22 -08:00
Chris Lu 120aa956a0 docs(volume-server): update native parity progress logs 2026-02-16 03:36:34 -08:00
Chris Lu d6ff6ed6d4 feat(rust-volume-server): mirror backend healthz and normalize absolute request targets 2026-02-16 03:36:06 -08:00
Chris Lu 532bf863ad docs(volume-server): log native ui static method parity progress 2026-02-16 03:00:10 -08:00
Chris Lu 23e4497b21 feat(rust-volume-server): add native ui static and public no-op handlers 2026-02-16 02:44:14 -08:00
Chris Lu b0447d2479 docs(volume-server): track native rust options parity milestone 2026-02-16 01:52:46 -08:00
Chris Lu fbff2cb39a feat(rust-volume-server): serve native OPTIONS on admin and public listeners 2026-02-16 01:52:02 -08:00
Chris Lu d2a6066181 docs(volume-server): log native rust status healthz milestone 2026-02-16 01:22:40 -08:00
Chris Lu 7e6e0261ab feat(rust-volume-server): serve native /status and /healthz in native mode 2026-02-16 01:22:06 -08:00
Chris Lu c7c7be42ed docs(volume-server): track native launcher bootstrap progress 2026-02-16 00:44:31 -08:00
Chris Lu 2e65966c06 feat(rust-volume-server): default rust launcher mode to native 2026-02-16 00:43:35 -08:00
Chris Lu 70ddbee370 feat(rust-volume-server): add native mode bootstrap entrypoint 2026-02-16 00:15:33 -08:00
Chris Lu 14c863dbff docs(volume-server): refocus plan on native rust parity 2026-02-16 00:09:31 -08:00
Chris Lu 7768fda023 docs(volume_server): record proxy-mode validation and CI matrix 2026-02-15 14:29:28 -08:00
Chris Lu a7f50d23b5 feat(rust/volume_server): add proxy supervision mode for integration parity 2026-02-15 14:28:12 -08:00
Chris Lu 6ce4d7eded docs(volume_server): record rust-mode full-suite validation 2026-02-15 12:11:31 -08:00
Chris Lu 3bd20e6a10 chore(rust/volume_server): add Cargo.lock 2026-02-15 11:55:42 -08:00
Chris Lu 880c2e1dab feat(rust/volume_server): add compatibility launcher and migration plan 2026-02-15 11:55:25 -08:00