aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lu <chris.lu@gmail.com>2021-01-31 20:11:44 -0800
committerChris Lu <chris.lu@gmail.com>2021-01-31 20:11:44 -0800
commit4be51c07014b1072a4e9dbbf9303a13e94fefe5e (patch)
tree12742aea6436805d43c99e9de9afac768e417a1a
parent1102ae32c4012f37fe4ce6d31758f8802f9e644d (diff)
downloadseaweedfs-4be51c07014b1072a4e9dbbf9303a13e94fefe5e.tar.xz
seaweedfs-4be51c07014b1072a4e9dbbf9303a13e94fefe5e.zip
filer: leveldb and hbase may miss files when listing large directories more than 1024
fix https://github.com/chrislusf/seaweedfs/issues/1768
-rw-r--r--weed/filer/hbase/hbase_store.go5
-rw-r--r--weed/filer/leveldb/leveldb_store.go2
-rw-r--r--weed/filer/leveldb2/leveldb2_store.go2
-rw-r--r--weed/filer/leveldb3/leveldb3_store.go2
4 files changed, 6 insertions, 5 deletions
diff --git a/weed/filer/hbase/hbase_store.go b/weed/filer/hbase/hbase_store.go
index 2e4491515..e0d878ca7 100644
--- a/weed/filer/hbase/hbase_store.go
+++ b/weed/filer/hbase/hbase_store.go
@@ -185,8 +185,6 @@ func (store *HbaseStore) ListDirectoryPrefixedEntries(ctx context.Context, dirPa
continue
}
- lastFileName = fileName
-
value := cell.Value
if fileName == startFileName && !includeStartFile {
@@ -197,6 +195,9 @@ func (store *HbaseStore) ListDirectoryPrefixedEntries(ctx context.Context, dirPa
if limit < 0 {
break
}
+
+ lastFileName = fileName
+
entry := &filer.Entry{
FullPath: fullpath,
}
diff --git a/weed/filer/leveldb/leveldb_store.go b/weed/filer/leveldb/leveldb_store.go
index f0ae64769..ac0ad4ba6 100644
--- a/weed/filer/leveldb/leveldb_store.go
+++ b/weed/filer/leveldb/leveldb_store.go
@@ -187,11 +187,11 @@ func (store *LevelDBStore) ListDirectoryPrefixedEntries(ctx context.Context, dir
if fileName == startFileName && !includeStartFile {
continue
}
- lastFileName = fileName
limit--
if limit < 0 {
break
}
+ lastFileName = fileName
entry := &filer.Entry{
FullPath: weed_util.NewFullPath(string(dirPath), fileName),
}
diff --git a/weed/filer/leveldb2/leveldb2_store.go b/weed/filer/leveldb2/leveldb2_store.go
index 965721460..c76340da4 100644
--- a/weed/filer/leveldb2/leveldb2_store.go
+++ b/weed/filer/leveldb2/leveldb2_store.go
@@ -196,11 +196,11 @@ func (store *LevelDB2Store) ListDirectoryPrefixedEntries(ctx context.Context, di
if fileName == startFileName && !includeStartFile {
continue
}
- lastFileName = fileName
limit--
if limit < 0 {
break
}
+ lastFileName = fileName
entry := &filer.Entry{
FullPath: weed_util.NewFullPath(string(dirPath), fileName),
}
diff --git a/weed/filer/leveldb3/leveldb3_store.go b/weed/filer/leveldb3/leveldb3_store.go
index 24e00edc7..c81ea7bbe 100644
--- a/weed/filer/leveldb3/leveldb3_store.go
+++ b/weed/filer/leveldb3/leveldb3_store.go
@@ -316,11 +316,11 @@ func (store *LevelDB3Store) ListDirectoryPrefixedEntries(ctx context.Context, di
if fileName == startFileName && !includeStartFile {
continue
}
- lastFileName = fileName
limit--
if limit < 0 {
break
}
+ lastFileName = fileName
entry := &filer.Entry{
FullPath: weed_util.NewFullPath(string(dirPath), fileName),
}