mirror of
https://github.com/rclone/rclone
synced 2024-12-23 14:23:44 +01:00
chunker: fix finalizer already set
error
Before this change, cache.PinUntilFinalized was called twice if the root pointed to a composite multi-chunk file without metadata, resulting in a fatal "finalizer already set" error. This change fixes the issue.
This commit is contained in:
parent
678941afc1
commit
61ab519791
@ -308,7 +308,6 @@ func NewFs(ctx context.Context, name, rpath string, m configmap.Mapper) (fs.Fs,
|
|||||||
root: rpath,
|
root: rpath,
|
||||||
opt: *opt,
|
opt: *opt,
|
||||||
}
|
}
|
||||||
cache.PinUntilFinalized(f.base, f)
|
|
||||||
f.dirSort = true // processEntries requires that meta Objects prerun data chunks atm.
|
f.dirSort = true // processEntries requires that meta Objects prerun data chunks atm.
|
||||||
|
|
||||||
if err := f.configure(opt.NameFormat, opt.MetaFormat, opt.HashType, opt.Transactions); err != nil {
|
if err := f.configure(opt.NameFormat, opt.MetaFormat, opt.HashType, opt.Transactions); err != nil {
|
||||||
@ -326,9 +325,9 @@ func NewFs(ctx context.Context, name, rpath string, m configmap.Mapper) (fs.Fs,
|
|||||||
if testErr == fs.ErrorIsFile {
|
if testErr == fs.ErrorIsFile {
|
||||||
f.base = newBase
|
f.base = newBase
|
||||||
err = testErr
|
err = testErr
|
||||||
cache.PinUntilFinalized(f.base, f)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
cache.PinUntilFinalized(f.base, f)
|
||||||
|
|
||||||
// Correct root if definitely pointing to a file
|
// Correct root if definitely pointing to a file
|
||||||
if err == fs.ErrorIsFile {
|
if err == fs.ErrorIsFile {
|
||||||
|
Loading…
Reference in New Issue
Block a user