3.0 KiB
Issue 2815 Local Docker Verification
Purpose
This directory contains the local distributed Docker verification assets used to validate issue #2815 against the current source build.
The target behavior is:
- 4-node distributed cluster starts successfully
/health/readybecomes reachable on each node- logs no longer contain
storage_info failed: Io error: wrong msgpack marker FixArray(1) - internode RPC authentication succeeds with an explicit non-default RPC secret
Files
docker-compose.yml: 4-node distributed cluster using a locally built image
Data Directories
Create the bind-mount directories before docker compose up:
mkdir -p .docker/test/issues-2815/data/rustfs{1..4}-disk{0..3}
Build
Apple Silicon / arm64 host:
docker build --platform linux/arm64 -f Dockerfile.source -t rustfs-issue-2815-local .
If you intentionally want amd64 emulation:
docker build --platform linux/amd64 -f Dockerfile.source -t rustfs-issue-2815-local .
Run
docker compose -f .docker/test/issues-2815/docker-compose.yml up -d
If the image platform is not linux/arm64, align compose explicitly:
RUSTFS_DOCKER_PLATFORM=linux/amd64 docker compose -f .docker/test/issues-2815/docker-compose.yml up -d
Health Checks
Container-level healthcheck is now included and probes:
curl -fsS http://127.0.0.1:9000/health
Manual checks:
curl -i http://127.0.0.1:9101/health/ready
curl -i http://127.0.0.1:9102/health/ready
curl -i http://127.0.0.1:9103/health/ready
curl -i http://127.0.0.1:9104/health/ready
RPC Secret Requirement
The current source build no longer reproduces the original FixArray(1) decode error from issue #2815.
Earlier local Docker attempts failed during erasure bootstrap with:
No valid auth token
store init failed to load formats after 10 retries: erasure read quorum
Root cause:
- RPC authentication rejects the default secret
rustfsadmin - distributed local Docker validation therefore needs an explicit non-default secret
This compose now sets both:
RUSTFS_SECRET_KEY=issue-2815-secretRUSTFS_RPC_SECRET=issue-2815-rpc-secret
With those values in place, the current 4-node local Docker cluster reaches healthy state and /health/ready returns 200.
In other words:
RUSTFS_ACCESS_KEYmay still berustfsadminfor local service credentials if desiredRUSTFS_SECRET_KEYcan still be used for service credentials- but RPC authentication must not resolve to the default secret value
rustfsadmin - if
RUSTFS_RPC_SECRETis unset, the code falls back toRUSTFS_SECRET_KEY - so at least one of them must provide a non-default shared secret for internode RPC signing
Suggested Debug Commands
docker compose -f .docker/test/issues-2815/docker-compose.yml ps
docker compose -f .docker/test/issues-2815/docker-compose.yml logs --no-color --tail=200
docker compose -f .docker/test/issues-2815/docker-compose.yml down -v