1 điểm bởi GN⁺ 2025-09-18 | 1 bình luận | Chia sẻ qua WhatsApp
  • Trong ứng dụng Apple Photos, hiện tượng làm hỏng ảnh xảy ra khi nhập hình ảnh từ máy ảnh
  • Người dùng cho biết khi dùng tùy chọn "xóa sau khi nhập", số ảnh bị mất tăng lên, với khoảng 30% ảnh bị thất lạc
  • Ngay cả sau khi thay thế nhiều phần cứng khác nhau (máy ảnh, thẻ SD, laptop, cáp, v.v.), vẫn xác nhận vấn đề tiếp diễn
  • Nguyên nhân được đánh giá là lỗi phần mềm chứ không phải phần cứng, với phân tích cho thấy tệp bị hỏng một cách ngẫu nhiên
  • Sau đó, quy trình làm việc đã được chuyển sang Darktable để tránh vấn đề này

Tổng quan vấn đề

  • Khi nhập hình ảnh từ máy ảnh vào ứng dụng Apple Photos, đôi khi phát hiện hiện tượng ảnh bị hỏng
  • Có đề cập đến các vấn đề tương tự trên mạng, nhưng phần lớn đều bỏ cuộc trong việc khắc phục hoặc không thử debug sâu

Cách nhập ảnh và cơ chế phát sinh vấn đề

  • Sử dụng máy ảnh OM System OM-1, chụp ở định dạng RAW + jpg
  • Trước đây đã chọn tùy chọn "xóa sau khi nhập" trong ứng dụng Photos để làm trống thẻ SD
  • Việc sử dụng tùy chọn đó hóa ra là một sai lầm lớn

Kịch bản ảnh bị hỏng

  • Hiện tượng hỏng lặp lại nhưng chỉ xảy ra ở một vài ảnh
  • Sau khi chụp nhiều ảnh tại đám cưới gia đình, khoảng 30% ảnh đã nhập bị mất
  • Ứng dụng Photos hiển thị tệp RAW + jpg như một ảnh duy nhất và mặc định hiển thị jpg
  • Có trường hợp jpg bị hỏng, trường hợp khác RAW bị hỏng, đôi khi cả hai đều bị hỏng
  • Khi dùng tùy chọn "xóa sau khi nhập", tệp trên thẻ SD của máy ảnh sẽ bị xóa, khiến không thể kiểm tra trước xem ảnh có bị hỏng hay không

Phân tích nguyên nhân

  • Do lo ngại lỗi phần cứng, tác giả đã thay toàn bộ phần cứng như cáp, thẻ SD, máy ảnh, laptop... nhưng vẫn gặp hiện tượng tương tự
    • Thay cáp USB-C
    • Mua thẻ SD mới từ nhà sản xuất chính hãng
    • Chuyển sang chỉ chụp RAW
    • Đổi laptop
    • Đổi mẫu máy ảnh (OM System OM-1 MKii)
  • Dù thử thay đổi từng biến một theo từng bước, hiện tượng hỏng vẫn liên tục xảy ra

Kết luận là vấn đề phần mềm

  • Sau khi thay toàn bộ phần cứng, tác giả kết luận đây là lỗi phần mềm của chính ứng dụng Photos
  • Tắt tùy chọn "xóa sau khi nhập", rồi chỉ format thẻ SD sau khi xác nhận tệp không bị hỏng, thì lúc đó không còn thấy hỏng ảnh
  • Có giả thuyết đây là lỗi phần mềm như race condition trong tình huống giới hạn khi vừa sao chép tệp vừa xóa tệp cùng lúc
  • Về sau vẫn xuất hiện các trường hợp tệp bị hỏng một cách ngẫu nhiên
  • Tệp gốc trên thẻ SD và tệp bị hỏng có cùng dung lượng, nhưng byte bên trong (checksum) khác nhau
  • Tác giả đã phân tích binary diff của các tệp này

Áp dụng quy trình làm việc mới

  • Thay vì tiếp tục tốn thời gian xử lý, tác giả đã chuyển sang quy trình làm việc với Darktable
  • Nhập ảnh trong Darktable, xóa ảnh không mong muốn, chỉnh sửa và export ảnh cần thiết, sau đó nhập vào ứng dụng Photos
  • Xác nhận rằng khi dùng Darktable thì không còn xảy ra hỏng tệp
  • Hiện tại, ảnh được chọn lọc và xử lý trong Darktable rồi mới chuyển sang Photos, nhờ đó vấn đề giảm đi
  • Dù đã tốn nhiều thời gian và chi phí để phân tích vấn đề, kết quả cuối cùng lại là phải xây dựng phần cứng dự phòng kép

1 bình luận

 
GN⁺ 2025-09-18
Ý kiến trên Hacker News
  • Tôi nghĩ có thể đây là lỗi ở pipeline nhập. Khi nhập trong Photos, ứng dụng này thực hiện rất nhiều xử lý bổ sung (ví dụ: gộp cặp RAW+JPEG, tạo bản xem trước, lập chỉ mục cơ sở dữ liệu, xóa theo tùy chọn). Có lẽ đây là lỗi đồng thời khiến bộ đệm bị tái sử dụng hoặc tay cầm tệp bị đóng trước khi sao chép xong. Điều này khá khớp với triệu chứng hỏng hiếm gặp và xảy ra thất thường
    • Tôi cũng nghĩ vậy. Thật sự là một tình huống rất đáng tiếc. Tôi muốn gửi báo cáo lỗi cho Apple, nhưng vì nó xảy ra không đều nên tôi không biết phải mô tả cách tái hiện như thế nào
    • Thật thú vị khi việc lỗi xảy ra 30% rồi gần như biến mất sau khi thay toàn bộ linh kiện lại khiến việc tìm ra thêm một ca còn mất nhiều thời gian hơn. Tính ngẫu nhiên vốn có thể xuất hiện theo cụm nên việc thay linh kiện có thể cũng chẳng giúp gì. Tôi muốn biết chi tiết hơn tần suất hỏng đã thay đổi thế nào trong suốt quá trình thay thế. Và chỉnh sửa: ôi, tôi vừa nhận ra là ở công ty tôi cũng đã mở “tenderlovemaking.com”. Rợn thật. Buồn cười nữa
    • Tôi từng nghĩ có thể là RAM lỗi làm lật bit, nhưng nội dung bị thay đổi hoàn toàn nên có vẻ không phải. Trông giống như hẳn một luồng đầu vào khác đã được ghi vào, hoặc bộ đệm đã bị ghi đè bằng nội dung của ảnh khác
    • Đây có vẻ là kiểu lỗi lẽ ra phải bị phát hiện chỉ cần có tối thiểu kiểm tra toàn vẹn đầu-cuối, thật sự rất khó tin
    • Tôi tự hỏi liệu có liên quan tới nguồn nhập và tốc độ phần cứng hay không. Bản thân việc nhập là lỗi với máy ảnh nhưng lại thành công trong ứng dụng Photos, nên có thể có khác biệt ở đó
  • Tác giả nói rằng “không rõ vấn đề này có chỉ giới hạn ở máy ảnh OM System hay không, và tôi cũng không muốn đầu tư vào một hệ máy ảnh mới”, nhưng để thực sự khoanh vùng đây là lỗi của iPhoto thì có lẽ tốt hơn nên thử cùng bài test bằng cách cắm đầu đọc thẻ USB-C trực tiếp vào máy Mac. Như vậy có thể loại trừ toàn bộ cáp, hub, phần cứng/phần mềm/firmware của máy ảnh. Nếu tìm kiếm sẽ thấy hỗ trợ USB của OM-1 không hoàn hảo, và trong hướng dẫn sử dụng máy ảnh cũng có đoạn nói rằng “không đảm bảo truyền USB trong một số thiết lập”. Người dùng thực tế cũng nói rằng dùng đầu đọc thẻ là cách chuẩn để đảm bảo độ tin cậy khi truyền tệp
    • Việc đưa câu “không đảm bảo truyền USB trong một số môi trường” vào hướng dẫn sử dụng thật khá sốc. Tôi đã dùng máy ảnh của nhiều hãng nhưng đây là lần đầu thấy một nhà sản xuất dùng câu né tránh như vậy cho một tính năng cơ bản
    • Tôi cũng là nhiếp ảnh gia chuyên nghiệp và dùng Nikon. Tôi gần như luôn sao chép tệp từ thẻ SD sang máy tính trước thay vì nhập trực tiếp từ máy ảnh, rồi mới nhập lại vào Lightroom. Nếu có vấn đề thì bước đầu tiên vẫn là chép vào ổ cứng rồi sao lưu
  • Có trả tiền để tôi quay lại dùng sản phẩm của Apple hay Google tôi cũng không muốn. Tôi dùng GrapheneOS Pixel và các giải pháp “đám mây” tự host bằng Nextcloud, HomeAssistant và máy chủ email riêng. Hiệu năng và quyền kiểm soát vượt xa phần mềm rác của Big Tech. Thậm chí chatbot AI cũng có thể tự host, và tôi nghĩ nó vẫn chưa tới giai đoạn “en-shittification”
    • Tôi cũng đồng ý 100%, nhưng điều này chỉ khả thi khi bạn có a) thời gian và b) kiến thức liên quan. Dạo này tôi không còn nhiều thời gian để đổ vào homelab nữa. Dù giờ cũng có những ứng dụng đơn giản như Immich chỉ cần “docker compose pull && docker compose up -d” là xong thiết lập, nhưng ngay cả mức hiểu biết dòng lệnh đó cũng không phải ai cũng có. Và nếu bạn qua đời thì các dịch vụ tự host này có lẽ cũng sẽ lập tức offline
    • Có thể hơi bắt bẻ, nhưng Pixel là do Google sản xuất. Dù bạn đã de-Google bằng GrapheneOS thì phần cứng vẫn là của Google. Tôi cũng tò mò không biết có lựa chọn thay thế thật sự nào không
    • Liệu có nguy cơ Google một ngày nào đó chặn GrapheneOS không? Tôi chưa dùng thử vì nghĩ sớm muộn gì hỗ trợ cũng sẽ đứt do vấn đề tương thích với app ngân hàng hay nhắn tin. Tôi tò mò liệu có roadmap dài hạn nào để nó còn tồn tại sau 5–10 năm nữa không
    • Với máy chủ email tự host, bạn giải quyết vấn đề tỷ lệ gửi thành công như thế nào? Tôi luôn nghe nói đó là vấn đề khó và rắc rối
    • Tôi tự hỏi khi vận hành cả một hệ thống như vậy thì bạn còn thời gian cho công việc và gia đình không
  • Với tư cách người dùng Olympus, đây là thông tin quan trọng. Tuy nhiên, để xử lý vấn đề mà thay cả laptop lẫn máy ảnh thì chi phí tăng rất nhanh. Có lẽ nên thử giải pháp khác trước khi thay Photos chứ? Phần mềm chính thức của Olympus lại còn miễn phí, và ít nhất nếu là ứng dụng chính chủ thì việc nhập ảnh không làm hỏng ảnh mới là điều bình thường, nên tôi nghĩ đáng để dùng làm mặc định. Thêm nữa, xóa ảnh khi đang nhập có vẻ rủi ro. Tôi chỉ xóa trên máy ảnh khi 1) đã sao lưu xong, 2) đã hoàn tất vòng chọn lọc đầu tiên
    • Nếu từng gặp lỗi này một lần, chắc tôi đã tắt tùy chọn “xóa sau khi nhập” và thử đổi cấu hình phần mềm trước khi đi mua một hệ máy ảnh mới
    • Tôi cũng nghĩ vậy. Nếu là nhiếp ảnh gia thì phải sao lưu tệp ít nhất hai lần vào máy chỉnh sửa chính và NAS. Và chỉ format hoặc xóa thẻ SD sau khi đã tận mắt xác nhận nhiều bản sao lưu đều ổn. Trước đây tôi từng xử lý footage trong pipeline VFX nên hiểu từ kinh nghiệm rằng mất tệp là vấn đề nghiêm trọng đến mức nào
    • Thỉnh thoảng tôi cũng lấy cớ “troubleshooting” để mua phần cứng mà thật ra vốn đã muốn mua từ trước
    • Cách xử lý đúng không phải là thay đơn giản, mà là tiếp cận có cân nhắc cả xác suất lẫn chi phí. Chỉ cần đổi phần mềm là khả năng cao đã giải quyết được, lại còn miễn phí và thử rất nhanh
    • Troubleshooting phần mềm rẻ hơn thay phần cứng rất nhiều. Có vẻ tác giả đang sống trong một thực tế tài chính khác chúng ta
  • Đây đúng là kiểu URL mà tôi không muốn lưu trong lịch sử trình duyệt của mình
    • Rất lâu trước đây có một trang audio tên là Gearspace, hồi xưa nó dùng một cái tên còn khêu gợi hơn nhiều. gearspace.com và đây là thảo luận trên reddit về việc đổi tên này
    • Cuối những năm 90, vợ tôi ngồi cạnh và giật mình khi thấy thanh địa chỉ của tôi tự động hoàn thành thành “freshmeat.net”. Giải thích đó là một trang phần mềm thì cô ấy mới yên tâm
    • Cụm từ “tender lovemaking” đáng sốc đến vậy sao?
    • Sao nào, yêu thương dịu dàng cũng không được à?
    • Còn có cả PenIsland.net nữa. Trước đây còn có cả .com, nhưng giờ hình như đã chuyển sang một cửa hàng lớn rồi
  • Tôi luôn có thể tin tưởng vào những phân tích kỹ thuật chi tiết của Tenderlove (tác giả blog)! Đây là một blog tôi đã nhớ nhung. Nói hơi lan man một chút, khoảng 12–13 năm trước tôi chuyển đến Seattle để đến gần hơn với “scene” với tư cách một lập trình viên phần mềm. Chính các bài viết của tenderlove đã giúp tôi học được rất nhiều thứ như Nokogiri, Active Record, v.v. Tôi đã tham dự mọi buổi meetup Ruby ở Seattle, và đặc biệt nhớ những buổi tụ họp nhỏ 15–20 người tại văn phòng Substantial. Vừa ăn bia với pizza vừa nghe Ryan Davis (người tạo ra Minitest) thuyết trình, còn Aaron Patterson (tenderlove) thì liên tục pha trò rất duyên. Ngay cả khi đặt câu hỏi ngây ngô tôi cũng nhận được câu trả lời ấm áp xen chút hài hước, và khi đó tôi thực sự cảm thấy mình là một phần của cộng đồng. Đến giờ tôi vẫn vô cùng trân trọng những kỷ niệm đó. Cảm ơn Aaron
  • Tôi cũng dùng máy ảnh OM System (OM-5), và trong trường hợp của tôi thì ảnh chưa từng bị hỏng nặng toàn bộ, nhưng thỉnh thoảng có một hàng pixel xanh ở đáy ảnh. Trước giờ tôi chưa từng nghĩ ngay tới khả năng ứng dụng Photos là nguyên nhân, nhưng nhờ vụ này tôi chắc chắn sẽ xem lại workflow của mình và kiểm tra xem có phải phía Photos hay không
    • Tôi chưa từng nghi ngờ Photos chút nào
  • Ngày xưa tôi thường thấy kiểu vấn đề này khi sao lưu các thư viện lớn. Giờ thì tôi chỉ dùng Image Capture để sao lưu và lưu vào hệ thống tệp! Ổ cứng là lựa chọn tốt hơn nhiều cho sao lưu trung và dài hạn so với một số ứng dụng ảnh độc quyền
  • Tôi đã thấy hiện tượng hỏng kiểu này ngay cả ở những ảnh cũ trước đây từng được nhập bình thường. Tôi chỉ chụp bằng iPhone và xem ảnh trên Mac hoặc iPhone. Nghĩ lại thì một lượng đáng kể dữ liệu trong thư viện ảnh của tôi đã biến mất hẳn. Đây là vấn đề lớn hơn tôi từng nghĩ rất nhiều. Tôi cũng không có bản sao lưu ở nơi khác
    • Tôi cũng từng gặp vậy khi bật iCloud Photo Library. Những ảnh cũ vốn bình thường bị hỏng ngẫu nhiên. Ảnh chụp trên iPhone và ảnh nhập từ nơi khác đều như nhau. Vì thế tôi đã tắt iCloud Photo Library và hạ gói iCloud vì không còn cần dung lượng lớn nữa. Giờ tôi chuyển sang công cụ quản lý ảnh mã nguồn mở hoàn toàn và lưu tệp trên ổ đĩa bình thường
    • Làm IT thì sao lưu là điều cơ bản
  • Tôi chưa đào quá sâu, nhưng cảm ơn vì đã chia sẻ! Tôi cũng vẫn nghĩ thủ phạm là thẻ SD quá cũ hoặc một cái adapter nào đó nằm lăn lóc đâu đấy. Thực tế tôi cũng chỉ gặp ở vài tấm ảnh. Tôi đã chỉ dùng một máy ảnh Olympus trong 10 năm qua (chính xác là PEN E-PM2), và vấn đề này chỉ mới xuất hiện trong 2 năm gần đây. Tôi không thấy hiện tượng này trên Canon EOS 80D của mình, nhưng có lẽ đã đến lúc phải đổi workflow, hoặc thậm chí đổi luôn OS
    • Có thể cũng là do RAM hoặc bad sector trên SSD. Dù vậy, nếu là macOS 26 thì khả năng cao vẫn là vấn đề của ứng dụng Photos