1 points par GN⁺ 2025-09-18 | 1 commentaires | Partager sur WhatsApp
  • Dans l’app Photos d’Apple, des corruptions d’images se produisent lors de l’importation depuis l’appareil photo
  • L’utilisation de l’option « supprimer après importation » a entraîné davantage de pertes, avec environ 30 % des photos perdues
  • Le problème persiste même après divers remplacements matériels (appareil photo, carte SD, ordinateur portable, câble, etc.)
  • La cause est considérée comme un bug logiciel plutôt qu’un problème matériel, avec une corruption aléatoire des fichiers
  • Le flux de travail a ensuite été basculé vers Darktable pour éviter le problème

Aperçu du problème

  • Une corruption d’images a parfois été constatée lors de l’importation de photos depuis l’appareil photo dans l’app Photos d’Apple
  • On trouve des mentions similaires en ligne, mais la plupart semblent avoir abandonné avant de résoudre le problème ou de mener un débogage approfondi

Importation des images et manière dont le problème survient

  • Utilisation d’un appareil photo OM System OM-1, avec prise de vue au format RAW + jpg
  • Auparavant, l’option « supprimer après importation » était utilisée dans l’app Photos pour vider la carte SD
  • L’usage de cette option s’est révélé être une grosse erreur

Scénario de corruption des images

  • Le phénomène de corruption se reproduisait de façon répétée, mais seulement sur quelques images
  • Après avoir pris de nombreuses photos lors d’un mariage familial, environ 30 % des images importées ont été perdues
  • L’app Photos affiche les fichiers RAW + jpg comme une seule photo et montre le jpg par défaut
  • Dans certains cas, c’est le jpg qui est corrompu, dans d’autres le RAW, et parfois les deux
  • Avec l’option « supprimer après importation », les fichiers étaient effacés de la carte SD de l’appareil, ce qui empêchait de vérifier à l’avance s’ils étaient corrompus

Analyse de la cause du problème

  • Malgré le remplacement de tout le matériel par crainte d’un défaut matériel — câble, carte SD, appareil photo, ordinateur portable, etc. — le même phénomène a été observé
    • Remplacement du câble USB-C
    • Achat d’une nouvelle carte SD officielle auprès du fabricant
    • Passage à la prise de vue RAW uniquement
    • Remplacement de l’ordinateur portable
    • Changement de modèle d’appareil photo (OM System OM-1 MKii)
  • Les essais ont été menés en ne modifiant qu’une seule variable à la fois, mais la corruption continuait à se produire régulièrement

Conclusion : un problème logiciel

  • Après avoir remplacé tout le matériel, la conclusion a été qu’il s’agissait d’un bug logiciel de l’app Photos elle-même
  • En désactivant l’option « supprimer après importation » et en formatant la carte SD seulement après vérification de l’intégrité des fichiers, aucune corruption n’a alors été constatée
  • L’hypothèse d’un problème logiciel, comme une condition de course dans une situation limitée (copie et suppression simultanées des fichiers), a été avancée
  • Par la suite, des cas de corruption aléatoire de fichiers ont continué à apparaître
  • Les fichiers originaux sur la carte SD et les fichiers corrompus ont la même taille, mais leurs octets internes (checksum) diffèrent
  • Un binary diff de ces fichiers a été analysé

Mise en place d’un nouveau flux de travail

  • Plutôt que de consacrer plus de temps à la résolution du problème, le flux de travail a été transféré vers Darktable
  • Les images sont importées dans Darktable, les photos indésirables sont supprimées, les photos voulues sont éditées et exportées, puis importées dans Photos
  • Aucune corruption de fichiers n’a été constatée avec Darktable
  • Désormais, les images sont triées et traitées dans Darktable avant d’être déplacées vers l’app Photos, ce qui a réduit le problème
  • L’analyse du problème a demandé beaucoup de temps et d’argent, et a finalement conduit à une duplication du matériel

1 commentaires

 
GN⁺ 2025-09-18
Commentaire Hacker News
  • Je pense que c’est probablement un bug dans le pipeline d’importation. Photos effectue énormément d’opérations supplémentaires à l’import (par ex. fusion des paires RAW+JPEG, génération d’aperçus, indexation de la base de données, suppression selon l’option choisie). Il y a sans doute un bug de concurrence où un buffer est réutilisé ou un descripteur de fichier est fermé avant la fin de la copie. Ça correspond bien au fait que la corruption soit rare et irrégulière.
    • Je pense pareil. C’est vraiment dommage. J’aimerais signaler le bug à Apple, mais comme ça se produit de façon irrégulière, je ne sais pas comment fournir une méthode de reproduction.
    • Intéressant que le taux d’échec de 30 % ait presque disparu après le remplacement de tous les composants, au point qu’il soit ensuite plus difficile d’en retrouver un cas. Comme c’est aléatoire, les incidents peuvent naturellement arriver par grappes, donc le changement de composants n’a peut-être servi à rien. J’aimerais bien savoir plus précisément comment la fréquence des corruptions a évolué tout au long des remplacements. Et edit : wow, je viens de réaliser que moi aussi, au travail, je suis allé sur « tenderlovemaking.com ». Glauque. Drôle.
    • Je me suis demandé si ce n’était pas de la mauvaise RAM qui inversait des bits, mais le contenu est complètement différent, donc ça ne semble pas être ça. On dirait plutôt qu’un autre flux d’entrée a été écrit, ou qu’un buffer a été écrasé par le contenu d’une autre image.
    • Franchement, c’est le genre de bug qui aurait dû être détecté avec au moins un contrôle minimal d’intégrité de bout en bout.
    • Je me demande si c’est lié à la source d’importation et à la vitesse du matériel. L’import semble poser problème via l’appareil photo, mais réussir via l’app Photos, donc il y a peut-être une différence à ce niveau.
  • Il dit : « Je ne sais pas si ce problème est limité aux appareils OM System, et je n’ai aucune envie d’investir dans un nouveau système photo », mais pour vraiment établir que c’est un problème d’iPhoto, il aurait mieux valu faire le même test en branchant un lecteur de cartes USB-C directement au Mac. Ça aurait permis d’écarter le câble, le hub, ainsi que le matériel, le logiciel et le firmware de l’appareil photo. En cherchant un peu, on voit que la prise en charge USB de l’OM-1 n’est pas irréprochable, et le manuel de l’appareil indique même que « le transfert USB n’est pas garanti avec certains réglages ». Des utilisateurs réels disent aussi qu’utiliser un lecteur de cartes est la méthode standard pour des transferts de fichiers fiables.
    • C’est assez choquant de voir dans un manuel une phrase du genre « le transfert USB n’est pas garanti dans certains environnements ». J’ai utilisé des appareils photo de plusieurs marques, mais c’est la première fois que je vois un constructeur mettre une clause d’échappement pareille sur une fonction de base.
    • Je suis aussi photographe pro et utilisateur Nikon. Je passe presque toujours par une copie des fichiers depuis la carte SD vers l’ordinateur, puis j’importe dans Lightroom, plutôt que d’importer directement depuis l’appareil. En cas de problème, la première étape est de copier sur le disque dur, puis de sauvegarder.
  • Même si on me payait pour revenir à des produits Apple ou Google, je refuserais. J’utilise un Pixel sous GrapheneOS, et des solutions « cloud » auto-hébergées avec Nextcloud, HomeAssistant et mon propre serveur mail. En termes de performances et de contrôle, ça n’a rien à voir avec les logiciels de pacotille de la Big Tech. On peut même auto-héberger des chatbots IA, et je pense qu’on n’en est pas encore au stade de l’« enshittification ».
    • Je suis d’accord à 100 %, mais ce n’est possible que si on a a) le temps et b) les connaissances. En ce moment, je n’ai plus beaucoup de temps à consacrer au homelab. Cela dit, il existe maintenant des applis comme Immich où l’installation se résume à docker compose pull && docker compose up -d, mais même ce niveau de ligne de commande n’est pas à la portée de tout le monde. Et si tu meurs, ces services auto-hébergés risquent de passer hors ligne immédiatement.
    • Je vais peut-être chipoter, mais les Pixel sont fabriqués par Google. Même si GrapheneOS permet de se dégoogliser, le matériel reste du Google. Je me demande s’il existe de vraies alternatives.
    • Est-ce qu’il n’y a pas un risque que Google bloque GrapheneOS un jour ? Je ne l’ai jamais essayé, parce que je me dis que le support pourrait sauter rapidement à cause de problèmes de compatibilité avec les applis bancaires ou de messagerie. Je me demande s’il existe une feuille de route long terme qui permette à ça d’exister encore dans 5 à 10 ans.
    • Comment gérez-vous les problèmes de délivrabilité avec un serveur mail auto-hébergé ? J’ai toujours entendu dire que c’était difficile ou pénible.
    • Je me demande s’il vous reste du temps pour le travail et la famille en faisant tourner ce genre de système.
  • En tant qu’utilisateur Olympus, c’est une information importante. Mais remplacer à la fois le portable et l’appareil photo pour résoudre le problème, ça fait vite grimper la facture. Il n’aurait pas fallu commencer par essayer une autre solution que Photos ? Le logiciel officiel Olympus est gratuit, et au minimum, une appli officielle devrait pouvoir importer les photos sans les corrompre, donc ça me semble être le choix par défaut à tester. En plus, supprimer les photos pendant l’import me paraît risqué. Moi, je ne supprime depuis l’appareil qu’après 1) la fin des sauvegardes et 2) un premier tri.
    • Après avoir vécu ce problème une fois, j’aurais probablement désactivé l’option « supprimer après importation » et essayé de changer d’abord les réglages logiciels avant d’acheter un nouveau système photo.
    • Je pense pareil. Si on est photographe, on sauvegarde les fichiers au moins deux fois, sur l’ordinateur principal d’édition et sur un NAS. Et on ne formate ou ne supprime la carte SD qu’après avoir vérifié de ses propres yeux que plusieurs sauvegardes sont bien intactes. J’ai travaillé autrefois sur des pipelines VFX, donc je sais par expérience à quel point la perte de fichiers peut être grave.
    • Il m’arrive aussi parfois d’acheter du matériel que je voulais déjà, sous couvert de « dépannage ».
    • Une bonne démarche de résolution de problème ne consiste pas à remplacer au hasard, mais à prendre en compte à la fois les probabilités et les coûts. Changer de logiciel a de bonnes chances de suffire, et c’est gratuit comme essai rapide.
    • Le dépannage logiciel coûte bien moins cher que le remplacement du matériel. L’auteur semble vivre dans une réalité économique différente de la nôtre.
  • C’est le genre d’URL que je n’ai pas envie de laisser dans mon historique de navigation.
    • Il y avait il y a très longtemps un site audio appelé Gearspace, qui portait autrefois un nom bien plus provocateur. gearspace.com et cette discussion reddit sur le changement de nom
    • À la fin des années 90, ma femme a été surprise de voir « freshmeat.net » en autocomplétion dans ma barre d’adresse. Elle a été rassurée quand je lui ai expliqué que c’était un site de logiciels.
    • L’expression « tender lovemaking » est si choquante que ça ?
    • Pourquoi, vous êtes contre l’amour tout en douceur ?
    • Il y a aussi PenIsland.net. Il y avait autrefois un .com, mais j’ai l’impression qu’ils ont migré vers une grosse boutique maintenant.
  • On peut toujours faire confiance aux analyses techniques détaillées de Tenderlove (l’auteur du blog) ! Ce blog m’avait manqué. Petite parenthèse un peu hors sujet : il y a 12 ou 13 ans, j’ai déménagé à Seattle en tant que développeur logiciel pour me rapprocher davantage de la « scène ». Les billets de tenderlove m’ont permis d’apprendre énormément de choses sur Nokogiri, Active Record, etc. J’allais à tous les meetups Ruby de Seattle, et je me souviens en particulier des petites rencontres de 15 à 20 personnes dans les bureaux de Substantial. On buvait des bières et on mangeait des pizzas pendant qu’un exposé était donné par Ryan Davis (le créateur de minitest), tandis qu’Aaron Patterson (tenderlove) lançait sans arrêt des blagues hilarantes. Même quand on posait des questions naïves, on recevait des réponses chaleureuses et pleines d’humour, et à ce moment-là, j’avais vraiment l’impression de faire partie de la communauté. J’en garde encore aujourd’hui un souvenir très précieux. Merci à Aaron.
  • J’utilise aussi un appareil OM System (OM-5) et, dans mon cas, je n’ai jamais eu une photo entièrement corrompue, mais il m’arrive parfois de voir une ligne de pixels verts en bas de l’image. Je n’avais jamais pensé immédiatement que Photos pouvait être en cause, mais cette histoire me donne envie de revoir mon workflow et de vérifier sérieusement si l’origine du problème vient bien de Photos.
    • Je n’avais jamais soupçonné Photos lui-même.
  • On voyait souvent ce genre de problème autrefois avec les sauvegardes de grosses bibliothèques. Aujourd’hui, je fais juste mes sauvegardes avec Image Capture et je stocke les fichiers dans le système de fichiers ! Un disque dur est un bien meilleur support de sauvegarde à moyen et long terme que certaines applis photo propriétaires.
  • J’ai observé ce type de corruption même sur d’anciennes photos qui avaient pourtant été importées correctement. Je ne prends des photos qu’avec l’iPhone, et je les consulte sur Mac ou sur iPhone. En y repensant, une quantité importante de données a carrément disparu de ma photothèque. C’est un problème bien plus grave que je ne le pensais. Je n’ai pas de sauvegarde ailleurs.
    • Ça m’est arrivé aussi quand iCloud Photo Library était activée. D’anciennes photos parfaitement saines ont été corrompues au hasard. C’était pareil pour les photos prises avec l’iPhone et celles importées séparément. J’ai donc désactivé iCloud Photo Library, rétrogradé mon forfait iCloud pour ne plus avoir besoin d’un gros espace de stockage, et je suis passé à un outil de gestion photo entièrement open source avec stockage des fichiers sur des disques ordinaires.
    • Quand on travaille dans l’IT, les sauvegardes, c’est la base.
  • Je n’ai pas creusé le sujet, mais merci d’avoir partagé ! J’ai toujours pensé que c’était à cause de cartes SD très anciennes ou d’adaptateurs qui traînaient quelque part. En pratique, je n’ai rencontré ça que sur quelques photos. J’utilise un appareil Olympus depuis 10 ans (plus précisément un PEN E-PM2), et ce problème n’est apparu qu’au cours des deux dernières années. Je n’ai jamais vu ça avec mon Canon EOS 80D, mais il est peut-être temps de changer de workflow, voire carrément d’OS.
    • Ça pourrait aussi être un problème de RAM ou de secteurs défectueux sur le SSD. Cela dit, sur macOS 26, il est probable que le problème vienne de l’app Photos.