1 pontos por GN⁺ 2025-09-18 | 1 comentários | Compartilhar no WhatsApp
  • No app Fotos da Apple, ocorre corrupção de imagens ao importar imagens da câmera
  • O usuário percebeu que, ao usar a opção "apagar após importar", a quantidade de fotos perdidas aumentava, chegando a perder cerca de 30% das fotos
  • Mesmo após várias trocas de hardware (câmera, cartão SD, notebook, cabo etc.), foi confirmado que o mesmo problema persistia
  • A causa foi considerada não ser de hardware, mas sim um defeito de software, com análise indicando que os arquivos eram corrompidos aleatoriamente
  • Depois disso, o fluxo de trabalho foi alterado para o Darktable para evitar o problema

Visão geral do problema

  • Foi identificado que, ao importar imagens da câmera pelo app Fotos da Apple, às vezes ocorria corrupção de imagens
  • Há menções online a problemas parecidos, mas a maioria aparentemente desistiu de resolver ou não tentou um processo de depuração mais profundo

Como a importação de imagens acontece e como o problema ocorre

  • Uso de uma câmera OM System OM-1, com fotos em formato RAW + jpg
  • Antes, a opção "apagar após importar" era usada no app Fotos para esvaziar o cartão SD
  • Usar essa opção foi um grande erro

Cenário de corrupção das imagens

  • A corrupção ocorria repetidamente apenas em algumas imagens
  • Após tirar muitas fotos em um casamento da família, cerca de 30% das imagens importadas foram perdidas
  • O app Fotos exibe os arquivos RAW + jpg como uma única foto e, por padrão, mostra o jpg
  • Em alguns casos, o jpg era corrompido; em outros, o RAW; e às vezes os dois
  • Ao usar a opção "apagar após importar", os arquivos eram apagados do cartão SD da câmera, impossibilitando verificar previamente se havia corrupção

Análise da causa do problema

  • Mesmo após trocar todo o hardware por receio de defeito físico — cabo, cartão SD, câmera, notebook etc. — o mesmo problema continuou ocorrendo
    • Troca do cabo USB-C
    • Compra de um novo cartão SD oficial do fabricante
    • Mudança para fotografar apenas em RAW
    • Troca do notebook
    • Troca do modelo da câmera (OM System OM-1 MKii)
  • As tentativas foram feitas alterando apenas uma variável por vez, mas a corrupção continuou acontecendo de forma constante

Conclusão: problema de software

  • Depois de substituir todo o hardware, concluiu-se que se tratava de um defeito de software do próprio app Fotos
  • A opção "apagar após importar" foi desativada, e o processo passou a ser formatar o cartão SD somente após verificar se os arquivos estavam íntegros; naquele momento, não houve corrupção
  • Foi levantada a possibilidade de um problema de software, como uma condição de corrida, em uma situação específica (cópia e exclusão de arquivos ao mesmo tempo)
  • Mesmo depois disso, continuaram aparecendo casos aleatórios de arquivos corrompidos
  • Os arquivos originais no cartão SD e os arquivos corrompidos têm o mesmo tamanho, mas os bytes internos (checksum) são diferentes
  • Foi feita uma análise de binary diff desses arquivos

Novo fluxo de trabalho adotado

  • Em vez de gastar mais tempo tentando resolver o problema, o fluxo de trabalho foi migrado para o Darktable
  • No Darktable, as imagens são importadas, as fotos indesejadas são excluídas, as desejadas são editadas e exportadas, e depois importadas para o app Fotos
  • Foi confirmado que, com o Darktable, não ocorre corrupção de arquivos
  • Atualmente, as imagens são selecionadas e processadas no Darktable antes de serem movidas para o app Fotos, o que reduziu o problema
  • Muito tempo e dinheiro foram gastos analisando o problema, e o resultado final foi acabar com uma infraestrutura de hardware em duplicidade

1 comentários

 
GN⁺ 2025-09-18
Comentários no Hacker News
  • Acho que provavelmente é um bug no pipeline de importação. O Photos faz muita coisa extra ao importar (por exemplo, mesclar pares RAW+JPEG, gerar previews, indexar no banco de dados, apagar dependendo da opção). Pode muito bem ser um bug de concorrência em que um buffer é reutilizado ou o file handle é fechado antes de a cópia terminar. Combina bem com os sintomas de corrupção rara e irregular
    • Penso a mesma coisa. É realmente uma pena. Eu até queria reportar o bug para a Apple, mas como isso acontece de forma irregular, não sei como explicar um método de reprodução
    • É interessante que algo que falhava em 30% dos casos quase desapareceu depois de trocar todas as peças, a ponto de até demorar para achar mais um caso. Como aleatoriedade costuma vir em rajadas, pode ser que trocar componentes não tenha servido para nada. Fiquei curioso sobre como a frequência da corrupção mudou com mais detalhe ao longo de todo o processo de troca. E editando: uau, acabei de perceber que eu também entrei em “tenderlovemaking.com” no trabalho. Assustador. Engraçado
    • Cheguei a pensar se não seria RAM ruim invertendo bits, mas o conteúdo está completamente diferente, então não parece ser isso. Parece mais que outro fluxo de entrada foi escrito, ou que o buffer foi sobrescrito com o conteúdo de outra imagem
    • Um bug desses deveria ter sido detectado ao menos com uma checagem mínima de integridade ponta a ponta, então é realmente desconcertante
    • Fico me perguntando se isso tem relação com a fonte da importação e com a velocidade do hardware. A importação em si dá problema pela câmera, mas funciona com o app Photos, então talvez haja alguma diferença aí
  • Ele disse “não sei se isso está restrito às câmeras da OM System, e não tenho vontade de investir em um sistema de câmera novo”, mas para realmente cravar que o problema é do iPhoto, teria sido melhor fazer o mesmo teste conectando um leitor de cartão USB-C direto no Mac. Assim daria para eliminar cabo, hub e também hardware/software/firmware da câmera. Se pesquisar, dá para ver que o suporte USB da OM-1 não é perfeito, e o manual da câmera até diz algo como “a transferência USB não é garantida em algumas configurações”. Usuários reais também dizem que usar leitor de cartão é o padrão para confiabilidade na transferência de arquivos
    • É bem chocante colocarem no manual algo como “a transferência USB não é garantida em alguns ambientes”. Já usei câmeras de várias marcas, mas é a primeira vez que vejo um fabricante usar esse tipo de ressalva para uma função básica
    • Também sou fotógrafo profissional e uso Nikon. Quase sempre, em vez de importar direto da câmera, copio os arquivos do cartão SD para o computador e depois importo no Lightroom. Se houver problema, o primeiro passo é copiar para o disco rígido e fazer backup
  • Nem se me pagassem eu voltaria a usar produtos da Apple ou do Google. Uso um Pixel com GrapheneOS e soluções de “nuvem” auto-hospedadas com Nextcloud, HomeAssistant e servidor de e-mail próprio. O desempenho e o controle não têm comparação com o software lixo das Big Tech. Também dá para auto-hospedar chatbot de IA, e acho que ainda não chegou na fase de “en-shittification”
    • Concordo 100%, mas isso só é possível quando você tem a) tempo e b) conhecimento. Hoje em dia não tenho muito tempo para dedicar ao homelab. Até existem apps como o Immich em que a configuração é basicamente “docker compose pull && docker compose up -d”, mas esse nível de linha de comando já não é conhecimento que todo mundo tenha. E se você morrer, esses serviços auto-hospedados provavelmente vão sair do ar na hora
    • Talvez eu esteja sendo meio pedante, mas Pixel é feito pelo Google. Mesmo que o GrapheneOS tenha feito o de-google, o hardware em si ainda é Google. Fico curioso se existe uma alternativa real
    • Será que o Google não vai bloquear o GrapheneOS em algum momento? Nunca cheguei a usar justamente por achar que, no futuro, a compatibilidade com apps de banco e mensageiros vai acabar sumindo. Fico curioso se existe um roadmap de longo prazo para continuar existindo daqui a 5 ou 10 anos
    • Como você resolve os problemas de taxa de entrega bem-sucedida em um servidor de e-mail auto-hospedado? Sempre ouvi dizer que isso é difícil ou chato de resolver
    • Fico curioso se, mantendo um sistema desses, ainda sobra tempo para trabalho e família
  • Como usuário de Olympus, isso é informação importante. Só que trocar tanto o notebook quanto a câmera para resolver o problema faz o gasto subir rápido. Não teria sido melhor testar outra solução antes do Photos? O software oficial da Olympus é gratuito e, no mínimo, seria de se esperar que o app oficial importasse as fotos sem corrompê-las, então eu usaria isso como padrão. Além disso, apagar as fotos durante a importação parece arriscado. Eu só apago da câmera 1) depois que o backup termina e 2) depois que a primeira seleção foi concluída
    • Se eu tivesse passado por isso uma vez, teria desmarcado a opção “apagar após importar” e tentado primeiro mudar a configuração de software antes de comprar um sistema de câmera novo
    • Penso o mesmo. Como fotógrafo, faço pelo menos dois backups dos arquivos, no computador principal de edição e no NAS. E só formato ou apago o cartão SD depois de confirmar visualmente que vários backups estão íntegros. Já trabalhei com footage em pipeline de VFX, então sei por experiência o tamanho do problema que é perder arquivos
    • Eu também às vezes compro um hardware que já queria faz tempo usando “troubleshooting” como desculpa
    • O jeito certo de resolver problemas não é simplesmente trocar tudo, e sim considerar tanto as possibilidades quanto o custo. Só trocar o software já tem boa chance de resolver, e é um teste grátis e rápido
    • Fazer troubleshooting de software é muito mais barato do que trocar hardware. O autor parece viver em uma realidade econômica bem diferente da nossa
  • Isso parece o tipo de URL que eu não gostaria de deixar no histórico do navegador
    • Há muito tempo existia um site de áudio chamado Gearspace, mas antes ele tinha um nome bem mais provocativo. gearspace.com e aqui uma discussão no reddit sobre a mudança de nome
    • No fim dos anos 90, minha esposa viu do meu lado a autocompletar “freshmeat.net” na barra de endereços e levou um susto. Quando expliquei que era um site de software, ela ficou tranquila
    • A expressão “tender lovemaking” é tão chocante assim?
    • Ué, vocês têm algo contra um amor suave?
    • Também tem PenIsland.net. Antigamente tinha .com também, mas parece que hoje foi para uma grande loja
  • Sempre dá para confiar na análise técnica detalhada do Tenderlove (autor do blog)! Que saudade desse blog. Fugindo um pouco do assunto, uns 12 ou 13 anos atrás me mudei para Seattle como desenvolvedor de software para ficar mais perto da “cena”. Aprendi muita coisa sobre Nokogiri, Active Record etc. por causa dos posts do tenderlove. Fui a todos os meetups de Ruby em Seattle, e lembro especialmente dos encontros pequenos, com 15 a 20 pessoas, no escritório da Substantial. A gente tomava cerveja e comia pizza enquanto Ryan Davis (criador do minitest) apresentava, e Aaron Patterson (tenderlove) ficava fazendo piadas o tempo todo. Mesmo quando eu fazia perguntas ingênuas, recebia respostas acolhedoras e bem-humoradas, e naquela época eu realmente sentia que fazia parte da comunidade. Até hoje guardo essas lembranças com muito carinho. Sou grato ao Aaron
  • Também uso uma câmera da OM System (OM-5), e no meu caso nunca tive a foto inteira severamente corrompida, mas às vezes aparece uma linha de pixels verdes na parte de baixo da imagem. Não me ocorreu de cara que o problema pudesse ser o app Photos, mas depois desse caso vou rever meu workflow e verificar com certeza se a causa está mesmo no Photos
    • Nunca cheguei a desconfiar do próprio Photos
  • Eu via esse tipo de problema com frequência antigamente em backups de bibliotecas grandes. Hoje em dia só faço backup com o Image Capture e salvo no sistema de arquivos! Um disco rígido é uma escolha muito melhor para backup de médio e longo prazo do que alguns apps de foto proprietários
  • Já vi esse tipo de corrupção até em fotos antigas que tinham sido importadas corretamente. Eu só tiro foto com iPhone e vejo as fotos no Mac ou no próprio iPhone. Olhando para trás, uma quantidade considerável de dados simplesmente sumiu da minha biblioteca de fotos. É um problema muito maior do que eu imaginava. E não tenho backup em outro lugar
    • Isso também aconteceu comigo quando eu tinha o iCloud Photo Library ativado. Fotos antigas que estavam normais ficaram corrompidas aleatoriamente. Tanto fotos tiradas no iPhone quanto fotos importadas separadamente. Então desliguei o iCloud Photo Library, fiz downgrade do iCloud e deixei de precisar de armazenamento grande. Agora mudei para uma ferramenta de gerenciamento de fotos totalmente open source e armazenamento de arquivos em disco comum
    • Se você trabalha com TI, backup é o básico
  • Não investiguei a fundo, mas obrigado por compartilhar! Eu também achava que fosse culpa de cartão SD muito velho ou adaptador jogado em algum lugar. Na prática, só vi isso em algumas poucas fotos. Usei por 10 anos apenas uma câmera Olympus (mais exatamente uma PEN E-PM2), e esse problema só apareceu nos últimos 2 anos. No meu Canon EOS 80D isso não aconteceu, mas talvez tenha chegado a hora de mudar o workflow, ou até o sistema operacional
    • Talvez também possa ser problema de RAM ou setores defeituosos no SSD. Ainda assim, sendo macOS 26, a chance maior é de ser um problema no app Photos