Browse Source

fix when two consecutive chunks with the same modified_ts_ns

fix https://github.com/seaweedfs/seaweedfs/issues/5276
pull/5278/head
Chris Lu 11 months ago
parent
commit
56df44845f
  1. 4
      weed/filer/filechunks_read.go
  2. 15
      weed/filer/filechunks_test.go

4
weed/filer/filechunks_read.go

@ -38,10 +38,10 @@ func readResolvedChunks(chunks []*filer_pb.FileChunk, startOffset int64, stopOff
return int(a.ts - b.ts)
}
if a.isStart {
return -1
return 1
}
if b.isStart {
return 1
return -1
}
return 0
})

15
weed/filer/filechunks_test.go

@ -553,3 +553,18 @@ func TestViewFromVisibleIntervals3(t *testing.T) {
}
}
func TestCompactFileChunks3(t *testing.T) {
chunks := []*filer_pb.FileChunk{
{Offset: 0, Size: 100, FileId: "abc", ModifiedTsNs: 50},
{Offset: 100, Size: 100, FileId: "ghi", ModifiedTsNs: 50},
{Offset: 200, Size: 100, FileId: "jkl", ModifiedTsNs: 100},
{Offset: 300, Size: 100, FileId: "def", ModifiedTsNs: 200},
}
compacted, _ := CompactFileChunks(nil, chunks)
if len(compacted) != 4 {
t.Fatalf("unexpected compacted: %d", len(compacted))
}
}
Loading…
Cancel
Save