diff options
| author | chrislu <chris.lu@gmail.com> | 2025-10-24 00:48:24 -0700 |
|---|---|---|
| committer | chrislu <chris.lu@gmail.com> | 2025-10-24 00:48:24 -0700 |
| commit | 64a4ce93580258b8d5537416dfb5d9a1a8f14ee2 (patch) | |
| tree | b65e88a6193457c63d50f146346b326b6f7c74b7 /weed/util/log_buffer/log_read.go | |
| parent | 832df5265f6bcf0c71ee2256cfe9acb8be99ea86 (diff) | |
| download | seaweedfs-64a4ce93580258b8d5537416dfb5d9a1a8f14ee2.tar.xz seaweedfs-64a4ce93580258b8d5537416dfb5d9a1a8f14ee2.zip | |
fix reading
Gap detection and skipping to earliest memory time
Time-based reads that include events at boundary times for first reads (offset ≤ 0)
Aggregated subscriber wake-up via ListenersWaits signaling
Diffstat (limited to 'weed/util/log_buffer/log_read.go')
| -rw-r--r-- | weed/util/log_buffer/log_read.go | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/weed/util/log_buffer/log_read.go b/weed/util/log_buffer/log_read.go index 3b7b99ada..950604022 100644 --- a/weed/util/log_buffer/log_read.go +++ b/weed/util/log_buffer/log_read.go @@ -270,7 +270,7 @@ func (logBuffer *LogBuffer) LoopProcessLogDataWithOffset(readerName string, star return } - // CRITICAL FIX: If we're reading offset-based and there's no data in LogBuffer, + // If we're reading offset-based and there's no data in LogBuffer, // return ResumeFromDiskError to let Subscribe try reading from disk again. // This prevents infinite blocking when all data is on disk (e.g., after restart). if startPosition.IsOffsetBased { @@ -355,7 +355,6 @@ func (logBuffer *LogBuffer) LoopProcessLogDataWithOffset(readerName string, star continue } - glog.V(4).Infof("Unmarshaled log entry %d: TsNs=%d, Offset=%d, Key=%s", batchSize+1, logEntry.TsNs, logEntry.Offset, string(logEntry.Key)) // Handle offset-based filtering for offset-based start positions @@ -377,7 +376,7 @@ func (logBuffer *LogBuffer) LoopProcessLogDataWithOffset(readerName string, star // println("stopTsNs", stopTsNs, "logEntry.TsNs", logEntry.TsNs) return } - // CRITICAL FIX: Use logEntry.Offset + 1 to move PAST the current entry + // Use logEntry.Offset + 1 to move PAST the current entry // This prevents infinite loops where we keep requesting the same offset lastReadPosition = NewMessagePosition(logEntry.TsNs, logEntry.Offset+1) |
