Volume Server: Unexpected Deletion of Remote Tier Data (#7377)
* [Admin UI] Login not possible due to securecookie error * avoid 404 favicon * Update weed/admin/dash/auth_middleware.go Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> * address comments * avoid variable over shadowing * log session save error * When jwt.signing.read.key is enabled in security.toml, the volume server requires JWT tokens for all read operations. * reuse fileId * refactor * fix deleting remote tier * simplify the fix * Update weed/storage/volume_loading.go Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update weed/storage/volume_loading.go Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update weed/storage/volume_loading.go Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix --------- Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This commit is contained in:
@@ -55,6 +55,19 @@ func (v *Volume) load(alsoLoadIndex bool, createDatIfMissing bool, needleMapKind
|
|||||||
if err := v.LoadRemoteFile(); err != nil {
|
if err := v.LoadRemoteFile(); err != nil {
|
||||||
return fmt.Errorf("load remote file %v: %w", v.volumeInfo, err)
|
return fmt.Errorf("load remote file %v: %w", v.volumeInfo, err)
|
||||||
}
|
}
|
||||||
|
// Set lastModifiedTsSeconds from remote file to prevent premature expiry on startup
|
||||||
|
if len(v.volumeInfo.GetFiles()) > 0 {
|
||||||
|
remoteFileModifiedTime := v.volumeInfo.GetFiles()[0].GetModifiedTime()
|
||||||
|
if remoteFileModifiedTime > 0 {
|
||||||
|
v.lastModifiedTsSeconds = remoteFileModifiedTime
|
||||||
|
} else {
|
||||||
|
// Fallback: use .vif file's modification time
|
||||||
|
if exists, _, _, modifiedTime, _ := util.CheckFile(v.FileName(".vif")); exists {
|
||||||
|
v.lastModifiedTsSeconds = uint64(modifiedTime.Unix())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
glog.V(1).Infof("volume %d remote file lastModifiedTsSeconds set to %d", v.Id, v.lastModifiedTsSeconds)
|
||||||
|
}
|
||||||
alreadyHasSuperBlock = true
|
alreadyHasSuperBlock = true
|
||||||
} else if exists, canRead, canWrite, modifiedTime, fileSize := util.CheckFile(v.FileName(".dat")); exists {
|
} else if exists, canRead, canWrite, modifiedTime, fileSize := util.CheckFile(v.FileName(".dat")); exists {
|
||||||
// open dat file
|
// open dat file
|
||||||
|
|||||||
Reference in New Issue
Block a user