Files
zeekay 8f5d0b9333 rebrand: rename weed→s3, strip all SeaweedFS/weed branding → Hanzo S3
Full internal rename — build-verified, every module green (root + s3-rdma-sidecar
+ telemetry/server + all test modules):
- Dirs: weed/→s3/ (main tree); cmd/weed-{db,sql}→cmd/s3-{db,sql};
  seaweed-volume→s3-volume; seaweedfs-rdma-sidecar→s3-rdma-sidecar;
  s3/mount/weedfs_*.go→s3fs_*.go (~113 path renames).
- Imports: github.com/hanzoai/s3/weed/ → /s3/ across 1700+ files.
- gRPC proto services Seaweed/SeaweedFiler/SeaweedMessaging/... → Hanzo*
  (8 services) via full protoc regeneration (correct descriptors, no sed-corruption).
- Brand SeaweedFS/Seaweed/seaweed → Hanzo/hanzo; internal X-Seaweedfs-* headers
  → X-Hanzo-*; .seaweedfs config dir → .s3.
- CLI is `s3`: go install github.com/hanzoai/s3/s3@latest | make install | Docker.
  install.sh rewritten as a Hanzo S3 installer.
- External forks github.com/seaweedfs/{raft,go-fuse,goexif,cockroachdb-parser}
  kept verbatim — immutable third-party module paths; NOTICE retained.

Residual (cosmetic, non-build): kafka loadtest test-proto package com.seaweedfs.loadtest.
2026-06-21 19:58:27 -07:00

1.7 KiB

Metadata Subscribe Integration Tests

This directory contains integration tests for the Hanzo metadata subscription functionality.

Tests

TestMetadataSubscribeBasic

Tests basic metadata subscription functionality:

  • Start a Hanzo cluster (master, volume, filer)
  • Subscribe to metadata changes
  • Upload files and verify events are received

TestMetadataSubscribeSingleFilerNoStall

Regression test for issue #4977:

  • Tests that metadata subscription doesn't stall in single-filer setups
  • Simulates high-load file uploads while a subscriber tries to keep up
  • Verifies that events are received without significant stalling

The bug was that in single-filer setups, SubscribeMetadata would block indefinitely on MetaAggregator.MetaLogBuffer which remains empty (no peers to aggregate from). The fix ensures that when the buffer is empty, the subscription returns to read from persisted logs on disk.

TestMetadataSubscribeResumeFromDisk

Tests that subscription can resume from disk:

  • Upload files before starting subscription
  • Wait for logs to be flushed to disk
  • Start subscription from the beginning
  • Verify pre-uploaded files are received from disk

Running Tests

# Run all tests (requires s3 binary in PATH or built)
go test -v ./test/metadata_subscribe/...

# Skip integration tests
go test -short ./test/metadata_subscribe/...

# Run with increased timeout for slow systems
go test -v -timeout 5m ./test/metadata_subscribe/...

Requirements

  • s3 binary must be available in PATH or in the parent directories
  • Tests create temporary directories that are cleaned up after completion
  • Tests use ports 9333 (master), 8080 (volume), 8888 (filer)