Tree:
4e98483661
add-ec-vacuum
add-foundation-db
add_fasthttp_client
add_remote_storage
adding-message-queue-integration-tests
avoid_releasing_temp_file_on_write
changing-to-zap
collect-public-metrics
create-table-snapshot-api-design
data_query_pushdown
dependabot/go_modules/github.com/seaweedfs/raft-1.1.5
dependabot/maven/other/java/client/com.google.protobuf-protobuf-java-3.25.5
dependabot/maven/other/java/examples/org.apache.hadoop-hadoop-common-3.4.0
detect-and-plan-ec-tasks
do-not-retry-if-error-is-NotFound
fasthttp
filer1_maintenance_branch
fix-GetObjectLockConfigurationHandler
fix-versioning-listing-only
ftp
gh-pages
improve-fuse-mount
improve-fuse-mount2
logrus
master
message_send
mount2
mq-subscribe
mq2
original_weed_mount
random_access_file
refactor-needle-read-operations
refactor-volume-write
remote_overlay
revert-5134-patch-1
revert-5819-patch-1
revert-6434-bugfix-missing-s3-audit
s3-select
sub
tcp_read
test-reverting-lock-table
test_udp
testing
testing-sdx-generation
tikv
track-mount-e2e
volume_buffered_writes
worker-execute-ec-tasks
0.72
0.72.release
0.73
0.74
0.75
0.76
0.77
0.90
0.91
0.92
0.93
0.94
0.95
0.96
0.97
0.98
0.99
1.00
1.01
1.02
1.03
1.04
1.05
1.06
1.07
1.08
1.09
1.10
1.11
1.12
1.14
1.15
1.16
1.17
1.18
1.19
1.20
1.21
1.22
1.23
1.24
1.25
1.26
1.27
1.28
1.29
1.30
1.31
1.32
1.33
1.34
1.35
1.36
1.37
1.38
1.40
1.41
1.42
1.43
1.44
1.45
1.46
1.47
1.48
1.49
1.50
1.51
1.52
1.53
1.54
1.55
1.56
1.57
1.58
1.59
1.60
1.61
1.61RC
1.62
1.63
1.64
1.65
1.66
1.67
1.68
1.69
1.70
1.71
1.72
1.73
1.74
1.75
1.76
1.77
1.78
1.79
1.80
1.81
1.82
1.83
1.84
1.85
1.86
1.87
1.88
1.90
1.91
1.92
1.93
1.94
1.95
1.96
1.97
1.98
1.99
1;70
2.00
2.01
2.02
2.03
2.04
2.05
2.06
2.07
2.08
2.09
2.10
2.11
2.12
2.13
2.14
2.15
2.16
2.17
2.18
2.19
2.20
2.21
2.22
2.23
2.24
2.25
2.26
2.27
2.28
2.29
2.30
2.31
2.32
2.33
2.34
2.35
2.36
2.37
2.38
2.39
2.40
2.41
2.42
2.43
2.47
2.48
2.49
2.50
2.51
2.52
2.53
2.54
2.55
2.56
2.57
2.58
2.59
2.60
2.61
2.62
2.63
2.64
2.65
2.66
2.67
2.68
2.69
2.70
2.71
2.72
2.73
2.74
2.75
2.76
2.77
2.78
2.79
2.80
2.81
2.82
2.83
2.84
2.85
2.86
2.87
2.88
2.89
2.90
2.91
2.92
2.93
2.94
2.95
2.96
2.97
2.98
2.99
3.00
3.01
3.02
3.03
3.04
3.05
3.06
3.07
3.08
3.09
3.10
3.11
3.12
3.13
3.14
3.15
3.16
3.18
3.19
3.20
3.21
3.22
3.23
3.24
3.25
3.26
3.27
3.28
3.29
3.30
3.31
3.32
3.33
3.34
3.35
3.36
3.37
3.38
3.39
3.40
3.41
3.42
3.43
3.44
3.45
3.46
3.47
3.48
3.50
3.51
3.52
3.53
3.54
3.55
3.56
3.57
3.58
3.59
3.60
3.61
3.62
3.63
3.64
3.65
3.66
3.67
3.68
3.69
3.71
3.72
3.73
3.74
3.75
3.76
3.77
3.78
3.79
3.80
3.81
3.82
3.83
3.84
3.85
3.86
3.87
3.88
3.89
3.90
3.91
3.92
3.93
3.94
3.95
3.96
3.97
dev
helm-3.65.1
v0.69
v0.70beta
v3.33
${ noResults }
5 Commits (4e98483661ff939e59a6b419d384e2df369191b6)
Author | SHA1 | Message | Date |
---|---|---|---|
|
4e98483661 |
feat: Add cache invalidation on extraction failure (incomplete fix)
Phase 6: Disk Read Fix Attempt #1 Added cache invalidation when extraction fails due to offset beyond cached chunk: - extractMessagesFromCache: Returns error when offset beyond cache - readHistoricalDataFromDisk: Invalidates bad cache and retries - invalidateCachedDiskChunk: New function to remove stale cache Problem Discovered: Cache invalidation works, but re-reading returns SAME incomplete data! Example: - Request offset 1764 - Disk read returns 764 messages (1000-1763) - Cache stores 1000-1763 - Request 1764 again → cache invalid → re-read → SAME 764 messages! Root Cause: ReadFromDiskFn (GenLogOnDiskReadFunc) is NOT returning incomplete data The disk files ACTUALLY only contain up to offset 1763 Messages 1764+ are either: 1. Still in memory (not yet flushed) 2. In a different file not being read 3. Lost during flush Test Results: 73.3% delivery (worse than before 87.9%) Cache thrashing causing performance degradation Next: Fix the actual disk read to handle gaps between flushed data and in-memory data |
4 days ago |
|
2bc29f93d3 |
feat: Add comprehensive broker-side logging for disk read debugging
Phase 6: Root Cause Debugging - Broker Disk Read Path Added extensive logging to trace disk read failures: - FetchMessage: Logs every read attempt with full details - ReadMessagesAtOffset: Tracks which code path (memory/disk) - readHistoricalDataFromDisk: Logs cache hits/misses - extractMessagesFromCache: Traces extraction logic Changes: - broker_grpc_fetch.go: Added CRITICAL detection for empty reads - log_read_stateless.go: Comprehensive PATH and state logging Test Results: - 87.9% delivery (consistent) - FOUND THE BUG: Cache hit but extraction returns empty! Root Cause Identified: [DiskCache] Cache HIT: cachedMessages=572 [StatelessRead] WARNING: Disk read returned 0 messages The Problem: - Request offset 1572 - Chunk start: 1000 - Position in chunk: 572 - Chunk has messages 0-571 (572 total) - Check: positionInChunk (572) >= len(chunkMessages) (572) → TRUE - Returns empty! This is an OFF-BY-ONE ERROR in extractMessagesFromCache: The chunk contains offsets 1000-1571, but request for 1572 is out of range. The real issue: chunk was only read up to 1571, but HWM says 1572+ exist. Next: Fix the chunk reading logic or offset calculation |
4 days ago |
|
4b4dffc731 |
refactor: change remaining glog.Infof debug messages to V(3)
Changed remaining debug log messages with bracket prefixes from
glog.Infof() to glog.V(3).Infof() to prevent them from showing
in production logs by default.
Changes (8 messages across 3 files):
- glog.Infof("[") -> glog.V(3).Infof("[")
Files updated:
- weed/mq/broker/broker_grpc_fetch.go (4 messages)
- [FetchMessage] CALLED! debug marker
- [FetchMessage] request details
- [FetchMessage] LogBuffer read start
- [FetchMessage] LogBuffer read completion
- weed/mq/kafka/integration/broker_client_fetch.go (3 messages)
- [FETCH-STATELESS-CLIENT] received messages
- [FETCH-STATELESS-CLIENT] converted records (with data)
- [FETCH-STATELESS-CLIENT] converted records (empty)
- weed/mq/kafka/integration/broker_client_publish.go (1 message)
- [GATEWAY RECV] _schemas topic debug
Now ALL debug messages with bracket prefixes require -v=3 or higher:
- Default (-v=0): Clean production logs ✅
- -v=3: All debug messages visible
- -v=4: All verbose debug messages visible
Result: Production logs are now clean with default settings!
|
5 days ago |
|
4d86fd345b |
refactor: reduce verbosity of debug log messages
Changed debug log messages with bracket prefixes from V(1)/V(2) to V(3)/V(4) to reduce log noise in production. These messages were added during development for detailed debugging and are still available with higher verbosity levels. Changes: - glog.V(2).Infof("[") -> glog.V(4).Infof("[") (~104 messages) - glog.V(1).Infof("[") -> glog.V(3).Infof("[") (~30 messages) Affected files: - weed/mq/broker/broker_grpc_fetch.go - weed/mq/broker/broker_grpc_sub_offset.go - weed/mq/kafka/integration/broker_client_fetch.go - weed/mq/kafka/integration/broker_client_subscribe.go - weed/mq/kafka/integration/seaweedmq_handler.go - weed/mq/kafka/protocol/fetch.go - weed/mq/kafka/protocol/fetch_partition_reader.go - weed/mq/kafka/protocol/handler.go - weed/mq/kafka/protocol/offset_management.go Benefits: - Cleaner logs in production (default -v=0) - Still available for deep debugging with -v=3 or -v=4 - No code behavior changes, only log verbosity - Safer than deletion - messages preserved for debugging Usage: - Default (-v=0): Only errors and important events - -v=1: Standard info messages - -v=2: Detailed info messages - -v=3: Debug messages (previously V(1) with brackets) - -v=4: Verbose debug (previously V(2) with brackets) |
5 days ago |
|
ba1a8aed64 |
log read stateless
|
6 days ago |