(no title)
turquoisevar | 1 year ago
A post mortem would be fun for me as software developer, but is ultimately of limited value to me or lay people because the cause is already communicated.
I understand that the subject of the issue, it being photos, might be a bit touchy, but the mechanics and the nature of the bug is nothing special and anyone who moved past their “Hello, world” phase will immediately understand the kind of bug that was in play here.
Photos are stored “in” a photo library.
On Apple systems the photo library is just a package (i.e., essentially a folder) and in it is an SQL database that keeps track of photos and their attributes based on a GUID in some 70 odd tables.
The photos and videos themselves are stored in folders within that package (i.e., the file system). But it is ultimately the SQL database that is deemed authoritative and that decides what you see in the Photos app.
Different daemons and chron jobs use the database to sync photos to and from the cloud and to clean up photos when marked for deletion.
All it takes for this to occur is for a photo to be marked as deleted, without it actually being deleted in the underlying folder, for it to seem deleted.
And all it takes for it to show back up is for 17.5 to index through the folders and based on what found “repair” the database.
The database also gets changed from time to time, so it could also simply be a new way of keeping track of deleted photos and in the process of migrating to the new database version taking a conservative approach and assuming that photos that are still present to be wrongly marked as deleted.
It’s always better to restore and let the user decide than to make destructive assumptions.
After this process resurfaces photos then they get synced with iCloud, just like any other photo.
The implication that this doesn’t explain the resurfacing of old photos from years ago and many devices ago is rather weird.
Most people don’t start fresh when they get a new Apple device and instead transfer data over or restore form a backup, putting in place the corrupted database. To say nothing of the database file being synchronized across devices via iCloud.
In fact, that only makes the corrupted database explanation more likely.
In the earlier days of iOS, Apple was still finding its way on how to effectively manage the library, making some significant overhauls in addition to overhauls to switch from Photo Stream to iCloud Photo Library.
So it’s not unlikely it was during that period this issue snuck into the database.
Like I said, it’s unfortunate that it affects photos, but otherwise not a shocking bug by any means and the solution to include orphaned photos back into the library as opposed to destructively deleting them is good practice.
The only thing that might’ve been better is if the user was provided with a prompt informing them of the find and perhaps asking them to make a choice.
It’s clear however that they didn’t think it would be an issue that would affect many users and using scary technical words like “corrupted” go against the kind of language and UX Apple tries to stick to.
A miscalculation perhaps, but hardly worthy of the drama that it’s being milked for.
No comments yet.