diff options
| author | Chris Lu <chris.lu@gmail.com> | 2021-01-31 20:11:44 -0800 |
|---|---|---|
| committer | Chris Lu <chris.lu@gmail.com> | 2021-01-31 20:11:44 -0800 |
| commit | 4be51c07014b1072a4e9dbbf9303a13e94fefe5e (patch) | |
| tree | 12742aea6436805d43c99e9de9afac768e417a1a | |
| parent | 1102ae32c4012f37fe4ce6d31758f8802f9e644d (diff) | |
| download | seaweedfs-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.go | 5 | ||||
| -rw-r--r-- | weed/filer/leveldb/leveldb_store.go | 2 | ||||
| -rw-r--r-- | weed/filer/leveldb2/leveldb2_store.go | 2 | ||||
| -rw-r--r-- | weed/filer/leveldb3/leveldb3_store.go | 2 |
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), } |
