Geo: Failed Upload syncs due to incorrect checksum
This situation blocks Geo from downloading the uploads because the checksum sent with the request does not match.
I found this while investigating failed file_registry entries where the Upload file exists. This was the case for 5 user avatars, which were uploaded around the same time.
[#<Upload:0x00007f46879d1550
id: 311041,
size: 77052,
path: "uploads/-/system/user/avatar/759517/avatar.png",
checksum: "c1748b80a2993ef5a67989b80e1757cff7fd6d500503fa4aaa393324a6ec88fe",
model_id: 759517,
model_type: "User",
uploader: "AvatarUploader",
created_at: Mon, 05 Jun 2017 20:46:08 UTC +00:00,
store: nil,
mount_point: nil,
secret: nil>,
#<Upload:0x00007f46879d1410
id: 311044,
size: 84703,
path: "uploads/-/system/user/avatar/968838/avatar.png",
checksum: "90dee92157811c0315ce7fa56e76f8ff372f4d8ff978e62a60675e74ea985788",
model_id: 968838,
model_type: "User",
uploader: "AvatarUploader",
created_at: Mon, 05 Jun 2017 20:46:52 UTC +00:00,
store: nil,
mount_point: nil,
secret: nil>,
#<Upload:0x00007f46879d1028
id: 311076,
size: 90404,
path: "uploads/-/system/user/avatar/1293358/avatar.png",
checksum: "620f38b6db4fd1f30b43f340a9caf1c473955b9a6fcd130fae01fe203a720f88",
model_id: 1293358,
model_type: "User",
uploader: "AvatarUploader",
created_at: Mon, 05 Jun 2017 20:54:04 UTC +00:00,
store: nil,
mount_point: nil,
secret: nil>,
#<Upload:0x00007f46879d0ee8
id: 311092,
size: 41724,
path: "uploads/-/system/user/avatar/1369002/avatar.png",
checksum: "d54c6fee7ade12eb537d8e2a498f4b8916e535b7e6778a247a7eee39581f49a5",
model_id: 1369002,
model_type: "User",
uploader: "AvatarUploader",
created_at: Mon, 05 Jun 2017 20:55:25 UTC +00:00,
store: nil,
mount_point: nil,
secret: nil>,
#<Upload:0x00007f46879d0da8
id: 311098,
size: 87578,
path: "uploads/-/system/user/avatar/1228457/avatar.png",
checksum: "82218c97f96ed84e19f9122774ea15effcc79f7df27e8e93319ffa5e4fc25404",
model_id: 1228457,
model_type: "User",
uploader: "AvatarUploader",
created_at: Mon, 05 Jun 2017 20:57:34 UTC +00:00,
store: nil,
mount_point: nil,
secret: nil>]
After I recalculated and saved their checksums, GPRD successfully synced them.
Note that the checksums don't even matter in this case, since these assets are public user avatars.
Since checksums are calculated before_save if under 100 MB (which these are), I don't know how they could mismatch. The files on the secondary already were the correct files.
This is weird, but rare. I don't know what, if anything, should be done.
Edited by Michael Kozono