Use non-zero time as fallback (#4390)
Use a non-zero time as the fallback for the mod time of an item during enumeration. This should avoid an issue where the mod time in details differs from the mod time in kopia due to a serialization issue. --- #### Does this PR need a docs update or release note? - [ ] ✅ Yes, it's included - [ ] 🕐 Yes, but in a later PR - [x] ⛔ No #### Type of change - [ ] 🌻 Feature - [x] 🐛 Bugfix - [ ] 🗺️ Documentation - [ ] 🤖 Supportability/Tests - [ ] 💻 CI/Deployment - [ ] 🧹 Tech Debt/Cleanup #### Test Plan - [ ] 💪 Manual - [ ] ⚡ Unit test - [ ] 💚 E2E
This commit is contained in:
parent
3c96eb6437
commit
db9596d223
@ -289,7 +289,15 @@ func addedAndRemovedByDeletedDateTime[T any](
|
||||
var modTime time.Time
|
||||
|
||||
if mt, ok := giaddt.(getModTimer); ok {
|
||||
modTime = ptr.Val(mt.GetLastModifiedDateTime())
|
||||
// Make sure to get a non-zero mod time if the item doesn't have one for
|
||||
// some reason. Otherwise we can hit an issue where kopia has a
|
||||
// different mod time for the file than the details does. This occurs
|
||||
// due to a conversion kopia does on the time from
|
||||
// time.Time -> nanoseconds for serialization. During incremental
|
||||
// backups, kopia goes from nanoseconds -> time.Time but there's an
|
||||
// overflow which yields a different timestamp.
|
||||
// https://github.com/gohugoio/hugo/issues/6161#issuecomment-725915786
|
||||
modTime = ptr.OrNow(mt.GetLastModifiedDateTime())
|
||||
}
|
||||
|
||||
added[ptr.Val(giaddt.GetId())] = modTime
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user