ITADN

[Bug] ./banyand/metadata/schema/property CI Test Failed

#13830ClosedOmCheeLin 创建于 2026-04-19
bugdatabase
O
OmCheeLincommented
### Search before asking - [x] I had searched in the [issues](https://github.com/apache/skywalking/issues?q=is%3Aissue) and found no similar issues. ### Apache SkyWalking Component BanyanDB (apache/skywalking-banyandb) ### What happened [https://github.com/OmCheeLin/skywalking-banyandb/actions/runs/24625029602/job/72002806751](https://github.com/OmCheeLin/skywalking-banyandb/actions/runs/24625029602/job/72002806751) I tried running go test ./banyand/metadata/schema/property locally, but the tests are still failing. # github copilot summary: I'll analyze the failing job for you by retrieving the logs and examining the relevant files.Based on the job logs, the failure is in the `property` test suite within `banyand/metadata/schema/property`. The key issues I can see are: ## Problem Analysis 1. **Channel Full Errors**: The test shows repeated warnings about `"sendSyncRequest: channel full, skipping session"` - the watch session channel is becoming full and skipping sync requests. 2. **Connection Refused**: There are connection errors attempting to dial `127.0.0.1:35321` with `"connect: connection refused"`. 3. **Sync Failures**: The logs show `"sync partially failed: 1 skipped, 0 timed out"` repeatedly occurring during test execution. 4. **Test Timeout**: After multiple sync rounds and retries, the test appears to timeout or fail unexpectedly. ## Root Cause The issue appears to be in the **Property Schema Registry's watch session channel capacity**. The channel is being filled faster than it can be consumed, causing sync requests to be skipped. This likely affects the synchronization logic and causes cascading failures. Let me get the relevant source files to provide a specific fix:## Problem Analysis The job is failing in the `property` test suite within `banyand/metadata/schema/property`. The logs show a **channel full issue** causing sync failures in the PROPERTY-SCHEMA-REGISTRY module: ``` "sendSyncRequest: channel full, skipping session" "sync partially failed: 1 skipped, 0 timed out out of 1 sessions" ``` This repeats across multiple sync cycles (rounds 7-26), followed by connection refusal errors. The test eventually times out or fails to complete properly. ## Root Cause The watch session channel is getting saturated, preventing sync requests from being dispatched to mock nodes. This is a **buffered channel capacity issue** where the channel buffer is too small for the volume of sync requests being generated during the test. ## Solution Increase the buffer size of the watch session channel used in the property schema registry's sync mechanism. This will allow more concurrent sync requests to queue without dropping messages. **Code Fix Location**: Look for the channel initialization in the property registry's sync loop code (likely in a file handling watch sessions or sync coordination): ```go // Before (insufficient buffer) watchSessions := make(chan *WatchSession, 1) // or similar small buffer // After (increased buffer) watchSessions := make(chan *WatchSession, 32) // or appropriate size based on max concurrent sessions ``` Alternatively, if the issue is with the sync request channel itself: ```go // Increase the buffer for sync requests syncRequests := make(chan *SyncRequest, 64) ``` ## Recommended Actions 1. **Locate the channel initialization** in the property schema registry sync handler 2. **Analyze the max concurrent sessions** during tests to determine optimal buffer size 3. **Add proper backpressure handling** - consider implementing a non-blocking send with timeout rather than just dropping requests 4. **Review test configuration** - ensure mock server is properly initialized before sync cycles begin The test is likely waiting for sync to complete but sessions are being skipped, causing the test assertions to fail. ### What you expected to happen Test success ### How to reproduce run go test ./banyand/metadata/schema/property ### Anything else _No response_ ### Are you willing to submit a pull request to fix on your own? - [ ] Yes I am willing to submit a pull request on my own! ### Code of Conduct - [x] I agree to follow this project's [Code of Conduct](https://www.apache.org/foundation/policies/conduct)
关闭于 2026-04-21 2 条评论