Apple e le vecchie foto riapparse sugli iPhone: iCloud non c'entra niente

Un recente aggiornamento di iOS ha causato la ricomparsa di vecchie foto cancellate sui dispositivi di alcuni utenti. Apple ha rapidamente rilasciato una patch correttiva, rivelando che il problema era legato a una corruzione del database sul dispositivo stesso.
di Nino Grasso pubblicata il 24 Maggio 2024, alle 09:31 nel canale AppleAppleiPhoneiPadOSiPadiOS
64 Commenti
Gli autori dei commenti, e non la redazione, sono responsabili dei contenuti da loro inseriti - infoMi son spiegato male, i backup sono fondamentali ovviamente, ma in generale per telefoni, computer etc, usare i ripristini e reimportare i backup creano sempre e da sempre pasticci.
Nuovo device, va tenuto come nuovo. Non vanno rimesse le porcate precedenti (configurazioni, impostazioni etc), altrimenti da nuovo, diventa subito vecchio e sporcaccione
Nuovo device, va tenuto come nuovo. Non vanno rimesse le porcate precedenti (configurazioni, impostazioni etc), altrimenti da nuovo, diventa subito vecchio e sporcaccione
ho da 14 anni consecutivi iphone (4 modelli diversi) e non ricordo problemi nei vari passaggi di backup, non ho effettuato procedure avanzate per prevenire eventuali problematiche. ah lo stesso vale per tutti gli iphone dei parenti: ho appoggiato l'iphone nuovo sull'iphone vecchio, trasferito tutti i dati sul nuovo iphone e via
va molto a "fortuna" anche questo.
esempio: il mio vecchio iPad Pro 10.5" del 2017.
per anni ad ogni aggiornamento di iPadOS, nessun problema.
ad un certo punto falliva ogni aggiornamento, senza un apparente motivo.
potevo aggiornare solo in DFU.
ho provato a piallarlo e ripristinarlo da backup.
stesso problema, impossibile aggiornare, solo in DFU.
l'ho piallato e provato l'aggiornamento -> fatto.
dopo l'aggiornamento l'ho ripristinato nuovamente dal backup.
al successivo aggiornamento? di nuovo impossibile, solo via DFU.
ho cambiato iPad (non per questo motivo!), e il nuovo è stato configurato partendo dal backup del vecchio e finora nessun problema con gli aggiornamenti.
il mio vecchio iPad da due anni è in mano a mio padre, configurato da 0, si aggiorna senza problemi.
sa solo Apple (in realtà, credo nemmeno loro), cosa s'era "rotto" e impediva gli aggiornamenti su quell'iPad con quel backup.
esempio: il mio vecchio iPad Pro 10.5" del 2017.
per anni ad ogni aggiornamento di iPadOS, nessun problema.
ad un certo punto falliva ogni aggiornamento, senza un apparente motivo.
potevo aggiornare solo in DFU.
ho provato a piallarlo e ripristinarlo da backup.
stesso problema, impossibile aggiornare, solo in DFU.
l'ho piallato e provato l'aggiornamento -> fatto.
dopo l'aggiornamento l'ho ripristinato nuovamente dal backup.
al successivo aggiornamento? di nuovo impossibile, solo via DFU.
ho cambiato iPad (non per questo motivo!), e il nuovo è stato configurato partendo dal backup del vecchio e finora nessun problema con gli aggiornamenti.
il mio vecchio iPad da due anni è in mano a mio padre, configurato da 0, si aggiorna senza problemi.
sa solo Apple (in realtà, credo nemmeno loro), cosa s'era "rotto" e impediva gli aggiornamenti su quell'iPad con quel backup.
hai fatto bene a condividere la tua casistica, immagino siamo tutti d'accordo sia un caso più unico che raro. ad ogni modo non viene meno il discorso di usare il backup, poi se si hanno problemi si pialla e via
ah beh sicuro, il backup sempre e cmq. in tanti anni (dall'iPhone 4S) è stato l'unico caso in cui sono incappato.
iPhone/iPad backup su iCloud.
Mac con iCloud Drive, backup via TimeMachine, sync sul NAS, backup del NAS su due HD esterni, backup del NAS su altro cloud.
spero di avere le
per velocizzare la visualizzazione, la ricerca, altre operazioni, l'app usa un database.
quando tutto funziona regolarmente i dati del database sono coerenti con lo stato del filesystem.
nello specifico, una foto dichiarata "cancellata" nel database corrisponde ad un file marcato come "cancellato" sul filesystem.
a causa di un bug, in alcuni casi, una foto dichiarata come "cancellata" nel database non viene marcata come "cancellata" sul filesystem.
la foto non compare più nell'app perché l'app mostra il contenuto del database. ma la foto fisicamente c'è ancora sul dispositivo.
e il file viene copiato nel backup perché il backup è "ignorante" e copia tutto il contenuto del dispositivo (il database dell'app Foto e i file presenti nel filesystem).
nuovo telefono e ripristino dal backup?
l'app Foto riparte col database dove quella foto non è più presente ma sul telefono viene ripristinata la foto nel filesystem perché presente nel backup.
poi un giorno un tizio s'è svegliato e ha deciso di risolvere quel bug dicendo "rifai la scansione del filesystem: se trovi foto che NON sono presenti nel DB aggiungile nuovamente al DB, così ora DB e filesystem sono nuovamente sincronizzati. poi nel caso ci penserà l'utente a cancellare nuovamente la foto. ma ora che ho risolto il bug la cancellazione del record nel DB corrisponderà alla cancellazione sul filesystem".
Aaah, grazie, adesso ho capito...
Quindi la cancellazione del file non è immediata, ma avviene solo dopo essere passata per una "cancellazione" su database.
Se si corrompe il database nel mezzo di questa operazione, la foto risulta cancellata nel database, ma il file è ancora vivo e vegeto in memoria.
Resta il fatto che, come procedimento, è un po' ridicolo.
Va bene usare un database per i metadati, per le modifiche alle foto, per indicizzazioni varie... ma la cancellazione dovrebbe avvenire direttamente sui file...
Inoltre, le cartelle dei file non sono periodicamente reindicizzate? In 14 anni, la Galleria non si è mai accorta di file presenti sul dispositivo che non venivano visualizzati?
Nuovo device, va tenuto come nuovo. Non vanno rimesse le porcate precedenti (configurazioni, impostazioni etc), altrimenti da nuovo, diventa subito vecchio e sporcaccione
Concordo.
Quindi la cancellazione del file non è immediata, ma avviene solo dopo essere passata per una "cancellazione" su database.
Se si corrompe il database nel mezzo di questa operazione, la foto risulta cancellata nel database, ma il file è ancora vivo e vegeto in memoria.
Resta il fatto che, come procedimento, è un po' ridicolo.
Va bene usare un database per i metadati, per le modifiche alle foto, per indicizzazioni varie... ma la cancellazione dovrebbe avvenire direttamente sui file...
Inoltre, le cartelle dei file non sono periodicamente reindicizzate? In 14 anni, la Galleria non si è mai accorta di file presenti sul dispositivo che non venivano visualizzati?
ovviamente non ho accesso al codice dell'applicazione Foto, ma per lavoro (Senior Application Support Specialist, perché nell'azienda per cui lavoro anche se al 100% italiana, piace riempirsi di termini inglesi) oltre a scrivere software, per la maggior parte del tempo faccio... bugfixing. e ne ho viste di ogni.
banalmente: hai un'applicazione che usa un DB e lavora su dei file. deve spostare un file dalla cartella A alla cartella B e tenere traccia dell'avvenuto spostamento nel DB.
ora, logica vorrebbe questa sequenza:
- apro transazione sul DB
- dico all'OS di spostare il file e attendo l'esito dell'operazione
- se l'operazione è andata a buon fine salvo nel DB il nuovo stato e consolido i dati (commit)
- se l'operazione è andata male dipende da come voglio gestirla (riprovo? annullo tutto (rollback su DB)? ecc).
e invece trovo:
- apro transazione sul DB
- traccio inizio operazione
- dico all'OS di spostare il file e salvo nel DB che l'ho spostato e consolido i dati (commit)
- l'operazione di spostamento è andata male. non gestisco l'errore (al massimo faccio un log da qualche parte).
il risultato ovviamente è che il file è rimasto nella cartella A ma per il DB è nella cartella B.
da quanto ha dichiarato Apple potrebbe essere un caso simile, dove l'operazione sul DB non è sempre "sincrona" all'operazione sul filesystem e quindi in quei casi si verifica il disallineamento portato alla luce dal fix implementato nella 17.5.
di bug presenti da anni e mai fixati ce ne sono a bizzeffe, in ogni OS / applicazione.
qui la sfiga ha voluto che uno l'ha fixato e poteva scegliere due strade: reimportare nel DB le foto orfane trovate nel filesystem (scelta "conservativa"
hanno scelto la via "conservativa" perché così in caso di cancellazione "involontaria" o altro bug uno ora si ritrova la foto e può decidere se cancellarla nuovamente.
se avessero scelto la "terra bruciata" ovviamente nessuno si sarebbe accorto del bug originale nell'app Foto!
Nuovo device, va tenuto come nuovo. Non vanno rimesse le porcate precedenti (configurazioni, impostazioni etc), altrimenti da nuovo, diventa subito vecchio e sporcaccione
Mi pare ovvio che uno considera sempre ultima versione del backup più recente.
Non va a installarsi un backup di 5 anni prima dove magari ha eliminato dati che non gli interessavano più per poi ritrovarseli su un un nuovo device.
Se prendo un nuovo device non faccio altro che migrare tutti i dati che avevo sul vecchio, su quello nuovo.
Non mi metto a configurare il portachiavi, tutti gli account mail, calendari, le foto ecc ecc.
Nuovo device, va tenuto come nuovo. Non vanno rimesse le porcate precedenti (configurazioni, impostazioni etc), altrimenti da nuovo, diventa subito vecchio e sporcaccione
Ma pensa se a un cambio di strumento dovessi mettermi a riconfigurare tutto da capo perdendo perlomeno 2 giornate quando con un ripristino è questione di un paio di ore.
Devi effettuare il login per poter commentare
Se non sei ancora registrato, puoi farlo attraverso questo form.
Se sei già registrato e loggato nel sito, puoi inserire il tuo commento.
Si tenga presente quanto letto nel regolamento, nel rispetto del "quieto vivere".