Update docker_test.go
Update gateway.go
Fix kafka-tests.yml workflow for refactored test structure
- Update test commands to use new directory structure (unit/, integration/, e2e/)
- Replace old test names with new refactored test names
- Add dedicated E2E test job
- Update protocol tests to run from correct directory
- Remove obsolete test patterns that no longer exist
Fixes GitHub Actions failure: 'no Go files in test/kafka'
REMOVED DEBUG LOGS:
- PutObjectHandler: CI-DEBUG logs for object creation tracing
- putVersionedObject: CI-DEBUG logs for version metadata updates
- updateLatestVersionInDirectory: CI-DEBUG logs for retry logic
- getLatestObjectVersion: CI-DEBUG logs for version lookups and race conditions
- HeadObjectHandler: CI-DEBUG logs for latest version requests
- ListObjectVersionsHandler: CI-DEBUG logs for request params and responses
REMOVED S3-TESTS MODIFICATIONS:
- Dynamic sed patches to s3-tests Python code in GitHub Actions
- CI-S3TEST-DEBUG logging for test_bucket_list_return_data_versioning
- CI-S3TEST-DEBUG logging for test_versioning_concurrent_multi_object_delete
- CI-S3TEST-DEBUG logging for _create_objects function
RETAINED FUNCTIONALITY:
✓ Path normalization fix (removeDuplicateSlashes consistency)
✓ Retry logic with exponential backoff for filer consistency
✓ Race condition handling for .versions directory metadata
✓ All existing glog.V(1), glog.V(2), glog.V(3) logging levels
The debug logs served their purpose in identifying and fixing the root cause
of S3 versioning CI failures (path normalization inconsistency). Now that
the issues are resolved, the verbose debug output is no longer needed.
Dynamically patches s3-tests Python code during CI to add debug output:
CLIENT-SIDE DEBUG LOGGING:
- test_bucket_list_return_data_versioning:
* Shows which objects are being created (bar, baz, foo)
* Traces each head_object attempt and success/failure
* Shows list_object_versions response structure and version count
- test_versioning_concurrent_multi_object_delete:
* Shows object creation plan (5 objects × 3 versions = 15 total)
* Traces version creation loops
* Shows list_object_versions response before accessing ['Versions']
- _create_objects function:
* Shows each put_object call with key/body details
* Shows put_object success and version_id (if available)
COMBINED WITH SERVER-SIDE LOGS:
This provides complete end-to-end tracing:
- Server: PutObject/ListObjectVersions handlers with CI-DEBUG logs
- Client: s3-tests with CI-S3TEST-DEBUG logs
Will help identify:
1. Whether objects are created successfully on client vs server side
2. Exact bucket names and object keys being used
3. Whether version_ids are returned by put_object
4. Response structure differences between working and failing cases
5. Client-side vs server-side perspective on the same operations
- Remove _create_objects patches since upstream s3-tests resolved NameError
- SeaweedFS strong consistency should eliminate 404 errors
- Let tests run naturally to detect real issues