aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorchrislu <chris.lu@gmail.com>2022-01-15 14:39:23 -0800
committerchrislu <chris.lu@gmail.com>2022-01-15 14:39:23 -0800
commitfd83009c058b0264b18f6ec39994ab9eb9836007 (patch)
tree49164286dabc13ad773714315fa2188cf1104328
parentfcf5b6cc93e2fc004ab63a814c0f924b44da6987 (diff)
downloadseaweedfs-fd83009c058b0264b18f6ec39994ab9eb9836007.tar.xz
seaweedfs-fd83009c058b0264b18f6ec39994ab9eb9836007.zip
add debug message when only zeros are copied
-rw-r--r--weed/filesys/page_writer/chunked_stream_writer.go16
1 files changed, 16 insertions, 0 deletions
diff --git a/weed/filesys/page_writer/chunked_stream_writer.go b/weed/filesys/page_writer/chunked_stream_writer.go
index 4bc49765b..6c7136645 100644
--- a/weed/filesys/page_writer/chunked_stream_writer.go
+++ b/weed/filesys/page_writer/chunked_stream_writer.go
@@ -1,6 +1,7 @@
package page_writer
import (
+ "github.com/chrislusf/seaweedfs/weed/glog"
"github.com/chrislusf/seaweedfs/weed/util"
"github.com/chrislusf/seaweedfs/weed/util/mem"
"io"
@@ -80,6 +81,18 @@ func (cw *ChunkedStreamWriter) ReadDataAt(p []byte, off int64) (maxStop int64) {
if logicStart < logicStop {
copy(p[logicStart-off:logicStop-off], memChunk.buf[logicStart-memChunkBaseOffset:logicStop-memChunkBaseOffset])
maxStop = max(maxStop, logicStop)
+
+ isAllZero := true
+ for i := logicStart - off; i < logicStop-off; i++ {
+ if p[i] != 0 {
+ isAllZero = false
+ break
+ }
+ }
+ if isAllZero {
+ glog.Errorf("Copied content is all Zero [%d,%d)", logicStart-off, logicStop-off)
+ }
+
}
}
return
@@ -111,6 +124,9 @@ func (cw *ChunkedStreamWriter) saveOneChunk(memChunk *MemChunk, logicChunkIndex
// Destroy releases used resources
func (cw *ChunkedStreamWriter) Destroy() {
+ cw.Lock()
+ defer cw.Unlock()
+
for t, memChunk := range cw.activeChunks {
mem.Free(memChunk.buf)
delete(cw.activeChunks, t)