Files
seaweedfs/weed/util
chrislu 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
2025-10-17 12:30:01 -07:00
..
2023-11-26 11:47:20 -08:00
2025-08-21 08:28:07 -07:00
2022-08-15 01:05:35 -07:00
2025-08-31 23:23:02 -07:00
2021-04-27 10:37:24 +08:00
2024-08-07 10:42:00 -07:00
2021-08-20 18:38:18 +08:00
2025-06-03 22:46:10 -07:00
2025-06-03 22:46:10 -07:00
2021-09-01 02:45:42 -07:00
2021-09-01 02:45:42 -07:00
2022-09-25 17:43:42 -07:00
2022-09-25 17:43:42 -07:00
2022-09-25 13:34:55 -07:00
2023-09-21 23:51:32 -07:00
2021-04-27 10:37:24 +08:00
2024-07-07 23:44:36 -07:00
2023-10-01 11:36:27 -07:00
2024-10-31 08:40:05 -07:00