3 poin oleh GN⁺ 2023-09-24 | 1 komentar | Bagikan ke WhatsApp
  • Karena konflik file tersembunyi di iCloud Drive, paragraf yang baru saja ditulis atau perubahan kode terbaru bisa hilang, dan kehilangan terjadi sebelum cadangan tersimpan
  • Konflik terjadi ketika sistem menilai ada versi berbeda dari file yang sama di Mac dan iPhone, tetapi file yang bermasalah tidak pernah dibuka di iPhone
  • Dropbox menyimpan file konflik secara terpisah, tetapi iCloud Drive tidak menampilkannya di sistem file sehingga popup pemilihan hanya terlihat di editor yang mendukung penanganan konflik
  • Di editor seperti Textifier, Xcode, dan Obsidian yang tidak memiliki penanganan konflik, iCloud memilih versi yang akan disimpan, dan seiring waktu versi yang benar bisa tertimpa di cadangan
  • Lebih aman menyimpan data penting di luar iCloud Drive dan memantau perubahan file inti dengan repositori Git, sementara Cloud Cub juga sedang dikembangkan untuk file yang harus tetap disimpan di iCloud

Konflik file tersembunyi di iCloud Drive

  • Saat menulis dokumen, paragraf yang baru diketik tiba-tiba hilang, dan saat mengembangkan aplikasi, Xcode menampilkan banyak error pada kode yang sebelumnya baik-baik saja
    • Perubahan terbaru di beberapa file ternyata telah terhapus
    • Kehilangan terjadi sebelum Time Machine atau Backblaze sempat menyimpannya
  • Penyebabnya adalah konflik file yang terdeteksi oleh iCloud Drive
    • iCloud Drive menilai ada versi berbeda dari file yang sama di Mac dan iPhone dan tidak bisa menggabungkannya secara otomatis
    • Namun file yang terdampak tidak pernah dibuka di iPhone
    • Karena folder Documents di Mac telah dipindahkan ke iCloud, file-file tersebut berada di iCloud
  • Jika terjadi konflik versi, Dropbox menyimpan file konflik tambahan dengan nama seperti “(John Doe’s conflicted copy)”
  • iCloud Drive tidak menampilkan konflik yang sama di sistem file
    • Jika file dibuka di editor yang mendukung penanganan konflik, akan muncul popup yang menanyakan versi mana yang ingin dipertahankan
    • Di editor seperti Textifier, Xcode, dan Obsidian yang tidak mendukung penanganan konflik, iCloud menentukan versi yang akan disimpan ke disk dan cadangan

Syarat pemulihan dan cara mengatasinya

  • Seiring waktu, jika cadangan baru menimpa cadangan lama yang berisi versi yang benar, konten bisa hilang permanen
  • Untuk memulihkannya, file tersebut harus dibuka dengan editor yang mendukung penyelesaian konflik
    • Editor yang digunakan sebagai contoh adalah iA Writer
    • Setelah file dipindahkan ke luar iCloud Drive, cara ini pun tidak lagi membantu
    • Dalam pengujian, ketika file yang belum diubah dipindahkan kembali ke iCloud, popup versi konflik muncul lagi, tetapi jika file sudah diedit atau pekerjaan dilanjutkan pada salinannya, hasilnya bisa berbeda
  • Cara menyembunyikan konflik versi mungkin terlihat ramah pengguna, tetapi kehilangan data bisa baru disadari bertahun-tahun kemudian saat dokumen penting dibuka kembali
  • Sampai iCloud Drive menampilkan konflik versi di sistem file atau di lokasi terpusat yang mudah diakses, lebih aman memindahkan data penting ke luar iCloud Drive
  • Sedang dibuat Cloud Cub untuk mendeteksi dan menyelesaikan konflik sinkronisasi tersembunyi pada file yang harus tetap berada di iCloud

1 komentar

 
GN⁺ 2023-09-24
Komentar di Hacker News
  • Pernah mengalami hal serupa: di Notes pada iPhone istri saya, sinkronisasi cloud aktif, lalu karena saya pikir tidak diperlukan, saya mematikannya. Istri saya lalu berkata, “Semua catatanku ke mana? Apa yang kamu lakukan?”
    Saya langsung berkeringat dingin, tetapi teringat ada iPad yang memiliki aplikasi Notes tersinkronisasi, jadi saya segera membukanya dan mematikan WiFi untuk “menyelamatkan” catatan-catatan itu
    Saya menelepon Apple, dan staf dukungan menemukan cara agar catatan tidak terhapus dengan menyalin-tempel tiap catatan ke folder baru
    Itu beberapa jam yang cukup menegangkan, dan menurut saya Apple seharusnya memberi lebih banyak peringatan atau pop-up tentang dampak penuh dari tindakan seperti ini
    Selain itu, saya juga mengetahui bahwa dukungan teknis Apple pada dasarnya bisa masuk ke ponsel seperti “VNC”, melihatnya, dan mengubah pengaturan. Seingat saya mereka meminta izin dan saya menekan “setuju”, tetapi sampai melihatnya sendiri, saya bahkan tidak tahu fitur seperti ini ada

    • Saya tidak bermaksud membela masalah ini, tetapi mengejutkan bahwa staf Apple membantu masalah sinkronisasi Notes lewat telepon sampai memulihkannya
      Apalagi meski penyebabnya tampak seperti kesalahan pengguna sendiri, mereka tetap membantu. Perusahaan saya membayar banyak uang untuk produk Google, tetapi kecil sekali kemungkinan Google akan membantu hal seperti ini lewat telepon
      Dulu saya pernah berbicara dengan staf mereka untuk hal seperti kontrol akses, tetapi kalau saya meminta bantuan saat catatan Keep hilang, rasanya saya akan mendapat jawaban sopan yang intinya menyuruh pergi. Kenyataannya, catatan Keep juga kadang hilang
    • Kalau situasinya memang seperti yang saya bayangkan, sepertinya cukup menyalakan kembali sinkronisasi dan semua catatan akan muncul lagi
    • Seingat saya, saat mematikan sinkronisasi muncul pertanyaan “Apakah Anda ingin melanjutkan? Semua catatan iCloud akan dihapus dari iPhone”
      Masalah istri Anda sepertinya lebih ada pada orang yang mengelola perangkat iOS daripada pada Apple
    • Fakta bahwa dukungan teknis Apple bisa masuk ke ponsel seperti “VNC”, melihat isi, dan mengubah pengaturan terlihat seperti potensi kerentanan keamanan. Saya penasaran apakah ada cara untuk mematikannya secara permanen
    • Saya penasaran dengan detail lebih lanjut tentang fitur “VNC” itu. Apakah hanya untuk iPad atau juga bisa di iOS, apakah permintaan persetujuannya berupa pop-up sistem, apakah ada aplikasi bernama tertentu yang terbuka, apakah terlihat di layar apa yang sebenarnya mereka lakukan, dan apakah pernah didokumentasikan di suatu tempat
  • Sangat setuju, sejuta kali. Namun ini tampaknya bukan hanya masalah iCloud, melainkan semacam kecenderungan mendasar di seluruh software Apple
    Saya juga berulang kali mengalaminya saat memberi highlight pada PDF di Books. Kadang ketika saya membuka lagi PDF, beberapa halaman yang baru saja saya tandai hilang
    Saat bekerja, sepertinya semuanya terus disimpan, tetapi entah kenapa Apple menganggap versi 11:35, bukan versi 11:45, sebagai versi utama terbaru
    Masalah Apple yang diam-diam menimpa konten baru dengan versi lama sudah berlangsung setidaknya 10 tahun
    Saya tidak paham bagaimana cacat fatal seperti ini bisa masuk ke sistem sejak awal dan masih belum diperbaiki

    • Dua masalah tersulit dalam software adalah invalidasi cache, penamaan, off-by-one error, dan buffer overflow akibat tidak adanya pemaksaan indeks array
    • Saya juga mengalami berbagai hal aneh saat memberi highlight atau anotasi dengan software bawaan macOS, dan Skim adalah alternatif yang cukup bagus
      Gratis dan berlisensi BSD, tetapi perlu diingat bahwa agar perubahan terlihat di aplikasi lain, Anda harus mengekspornya sebagai PDF yang berisi anotasi
      Kalau Anda lelah dengan latar oranye Apple yang merusak kontras atau tidak adanya highlight kuning yang benar-benar kuning, ini layak dicoba. Saya tidak terkait; hanya bersyukur aplikasi ini ada
      https://skim-app.sourceforge.io/
    • Poin yang menarik. Saya pernah bolak-balik memakai komputer Apple, dan terakhir menggunakannya dari 2015 sampai awal tahun ini; pernyataan bahwa ini adalah masalah filosofi terasa masuk akal
      Di sisi hardware pun saya ingat mereka cukup kejam memangkas floppy disk, optical drive, dan seluruh arsitektur CPU sebanyak tiga kali
      Di iCloud, sikap itu tampaknya juga diterapkan pada file. Saya tidak mengatakan semuanya buruk, tetapi semakin tua, ini semakin menjauh dari selera saya
    • Sebagian besar infrastruktur iCloud dibangun di atas instance Cassandra. Ada makalah terkait yang bagus, tetapi saya tidak bisa menemukannya sekarang
    • Jika versi 11:35 dianggap sebagai yang terbaru, apakah jam di sebagian server salah?
  • Penulis menyarankan penggunaan git, tetapi git tidak cocok dengan iCloud Drive
    Dulu saya menaruh ratusan repositori git di iCloud Drive, dan setiap kali membuat commit besar, seluruh iCloud Drive yang berukuran ratusan GB akan disinkronkan ulang dengan server Apple, dan itu memakan waktu sehari
    Saya mencoba menyelesaikannya dengan meneruskan kasus ke dukungan Apple sampai level yang cukup tinggi, tetapi akhirnya tidak teratasi. Sekarang saya menaruh repositori git di luar iCloud Drive
    Sepertinya fenomena ini terpicu ketika ratusan file diubah dengan cepat dan bersamaan sebelum sinkronisasi perubahan besar terakhir selesai

    • Saya kira sudah hampir menjadi pengetahuan umum bahwa kita tidak boleh mencampur sistem version control seperti git dengan version control berbasis cloud milik cloud drive seperti iCloud, OneDrive, atau Google Drive
      Keduanya tidak cocok, dan terutama jika beberapa perangkat tersinkronisasi ke cloud drive yang sama, ada banyak ruang untuk munculnya perilaku aneh dan tak terduga
    • Saya penulis posting asli. Terima kasih sudah berbagi
      Masalahnya, aplikasi yang wajib saya gunakan tidak mendukung metode sinkronisasi lain, jadi sebagian file penting harus memakai iCloud Drive
      Tanpa git, saya bahkan tidak akan bisa mengetahui file mana yang berubah. Bahkan dengan git pun saya tidak yakin sudah menangkap semuanya. Konflik sinkronisasi iCloud sepertinya juga bisa mengubah isi git
    • Sejak awal, git juga tidak terlalu cocok dengan objek biner besar
    • Untuk folder iCloud Drive yang penting, biasanya saya memakai proses otomatis untuk melakukan rsync ke suatu tempat, lalu di sisi itu melakukan version control otomatis dengan Git, Dropbox, atau semacamnya
      Mungkin tidak bagus untuk data yang sangat besar, tetapi hal-hal yang ada di iCloud Drive dan ingin saya versioning secara agresif kebanyakan berupa teks atau berukuran kecil, sehingga beban menyimpan dua salinan hampir tidak terasa
    • Sebagai catatan, di Dropbox pun git bisa gagal dengan cukup aneh karena alasan serupa. Dulu saya menggunakan git-remote-dropbox untuk mencoba memakai Dropbox seperti server git
      [1] https://github.com/anishathalye/git-remote-dropbox
  • Alasan yang lebih besar untuk tidak memakai iCloud Drive adalah enkripsi end-to-end bukan setelan default
    Semua yang disimpan di sana bisa dibaca oleh administrator sistem Apple, staf dukungan, dan pihak-pihak yang bisa menuntut Apple, misalnya pemerintah AS yang saat ini bahkan bisa melakukannya tanpa surat perintah
    Sebaiknya jangan gunakan layanan yang bukan enkripsi end-to-end
    Sekarang iCloud memang punya enkripsi end-to-end opsional, tetapi default-nya mati dan terkubur jauh di pengaturan, jadi hampir tidak ada yang memakainya
    Saya memakai Syncthing untuk menjaga file di semua perangkat. Enkripsi end-to-end, perangkat lunak bebas, dan penanganan konflik serta cadangan versi juga masuk akal
    Ini juga mendukung perangkat khusus sinkronisasi yang tidak tepercaya dan tidak pernah bisa melihat plaintext, sehingga node bisa ditempatkan dengan aman di VPS atau lokasi eksternal

    • Mengatakan “jangan pakai layanan yang bukan enkripsi end-to-end” sambil berkata “iCloud juga punya enkripsi end-to-end opsional” itu saling bertentangan. iCloud juga bisa dienkripsi end-to-end
      Meyakinkan teman atau keluarga untuk menekan menu dua kali agar mengaktifkannya itu mudah, tetapi meyakinkan mereka untuk memasang dan mengonfigurasi Syncthing di beberapa perangkat tidak mudah
      Membela Syncthing boleh saja, tetapi agak lucu menyebut iCloud Drive buruk hanya karena tidak menyalakan secara default pengaturan yang bisa membuat pengguna rata-rata kehilangan semua data jika kehilangan kunci
      Kalau nenek saya, saya yakin ia jauh lebih ingin bisa menelepon Apple saat lupa kata sandi dan mendapatkan kembali foto Johnny kecil, daripada sesuatu yang lebih aman secara default
    • Ada juga bantahan realistis soal enkripsi end-to-end. Bagi kebanyakan orang, kemungkinan kehilangan semua data karena lupa atau kehilangan kunci enkripsi jauh lebih besar daripada data bocor ke administrator atau pemerintah
      Saya juga ingin mengaktifkan enkripsi end-to-end, tetapi saya tidak cukup percaya pada diri sendiri bahwa saya tidak akan kehilangan kuncinya
    • Saya tidak paham apa bedanya menyalakan enkripsi end-to-end iCloud secara manual dengan mencari sendiri dan memakai penyedia yang mendukung enkripsi end-to-end secara default
      Ini juga bukan situasi seperti perpesanan, di mana pihak lawan juga harus menyalakan enkripsi end-to-end
    • Menekan satu tombol di iCloud untuk menyalakan enkripsi end-to-end jelas tampak lebih mudah daripada mengganti seluruh penyedia penyimpanan cloud
    • Enkripsi end-to-end bisa dinyalakan lewat Advanced Data Protection di pengaturan akun iCloud
      https://support.apple.com/en-ca/HT212520
  • Saya juga cukup kesal karena ini. Saya menaruh pustaka Calibre di folder Documents. Mau ditaruh di mana lagi, apalagi sudah termasuk cadangan gratis
    Tetapi beberapa waktu lalu saya menemukan beberapa folder buku di dalam pustaka yang seharusnya berisi file epub ternyata kosong
    Struktur direktori dan entri basis data ada, tetapi hanya file buku yang hilang. Tidak semuanya, kira-kira 40% secara acak
    Kesimpulannya: jangan simpan hal yang Anda sukai di iCloud Drive, terutama buku

    • Tip bercanda, tetapi mungkin bisa mendapatkannya lagi dari Libgen
  • Terkait bagian “Jika membuka file di editor yang mendukung penanganan konflik, akan muncul pop-up yang menanyakan versi mana yang ingin dipertahankan. Editor tanpa penanganan konflik seperti Textifier, Xcode, dan Obsidian membiarkan iCloud menentukan versi mana yang akan disimpan di disk dan cadangan”, menurut saya sebagian tanggung jawab juga ada pada pengembang aplikasi yang menambahkan dukungan iCloud tetapi tidak menambahkan mekanisme penanganan konflik
    Namun mengapa Xcode, aplikasi Apple sendiri, tidak mendukung penanganan konflik? Perangkat lunak Apple seharusnya menetapkan standar bagi pengembang pihak ketiga
    Kalau Apple saja tidak menangani konflik versi, tentu pengembang lain juga tidak akan melakukannya

    • Saya penulis artikel asli. Sepertinya cara saya menulisnya agak menimbulkan salah paham. Intinya ini tidak terkait dengan editor
      Bahkan jika memakai editor yang mendukung penanganan konflik, konten tetap bisa hilang
      Jika Anda menulis sesuatu, menyimpannya, lalu menutup editor dan tidak membukanya lagi, iCloud bisa mengganti isi file itu dan pengguna tidak punya cara untuk mengetahuinya
      Satu-satunya cara agar tidak kehilangan data adalah membuat repositori Git, atau secara rutin membuka semua file penting dengan editor yang mendukung penanganan konflik
    • Hanya karena aplikasi tidak mengimplementasikan fitur, sistem API tidak boleh diam-diam menghapus data penting
      Ini bukan bug Xcode, melainkan bug iCloud
  • Jika menaruh file di iCloud Drive, iPhone bisa menghapus salinan lokal kapan saja
    Jika ingin menyinkronkan file sekaligus yakin 100% bahwa salinan lokal ada, file yang sama harus diletakkan di iCloud Drive dan folder “On My iPhone”
    Inilah alasan Apple Books, Numbers, dan semua aplikasi yang memakai iCloud Drive terus menghapus salinan lokal
    Saya membuat aplikasi catatan sederhana yang memakai iCloud Drive, dan saat aplikasi ditutup, iCloud dengan rakus menghapus bahkan file txt 2KB. Kadang tidak dihapus juga, jadi cukup acak
    Tidak peduli meski ruang penyimpanan masih banyak, iCloud bisa menghapus versi lokal dari file yang terus digunakan
    Dukungan pengembang Apple mengatakan tidak ada yang bisa dilakukan. Pengembang pun tidak punya cara untuk menandai agar file jangan pernah dihapus
    Dalam dokumentasi resmi, Apple benar-benar menyarankan agar semua file pengguna disimpan di iCloud Drive dan tidak menaruh salinan di “On My iPhone”

  • Saya pernah mengalami masalah serupa dengan Contacts yang menghilang. Itu terjadi cukup lama, tetapi awalnya saya kira kesalahan saya sendiri
    Suatu pagi, ketika melihat kontak teman yang saya SMS malam sebelumnya hilang, saya sadar masalahnya adalah iCloud
    Saya menghubungi dukungan Apple, dan setelah mencoba semua panduan dasar, petugas mengakui bahwa ini masalah yang diketahui tetapi mereka belum menemukan akar penyebabnya dan tidak ada solusinya
    Mereka meminta saya memantau kontak agar bisa mengetahui kapan penghapusan terjadi, tetapi katanya saya harus memberi rentang waktu dalam hitungan menit
    Alasannya, “iPhone membuat banyak log, jadi kalau tidak bisa menunjukkan tepat kapan itu terjadi, engineer tidak bisa memeriksanya”
    Saya merasa mempersempit bug ke rentang 8 jam sudah cukup baik, tetapi petugas berkata para engineer meminta ketepatan dalam hitungan menit
    Pada akhirnya, seperti setiap kali saya menyerahkan masalah sulit ke dukungan Apple, petugas berkata akan menghubungi kembali, tetapi tidak pernah menelepon lagi, dan tidak terjadi apa-apa
    Saya memindahkan kontak ke Google dan melupakannya begitu saja

  • Saya sudah menelusuri masalah ini. Apple, agar tidak terlalu mengganggu pengguna dengan konflik, memilih strategi sinkronisasi yang menghilangkan data pengguna dalam kondisi tertentu
    Mereka memutuskan untuk tidak memakai teknik yang jauh lebih lama yang bisa mempertahankan revisi yang berkonflik
    Ringkasannya ada di sini
    https://www.youtube.com/watch?v=q8k1q6kf1W0

    • Agar tidak mengganggu pengguna, mereka sebenarnya bisa menaruh file duplikat di tempat seperti folder konflik
      Dengan begitu orang bisa mencari “apa yang Apple lakukan pada file saya?” dan menemukan cara memulihkannya
      Bicara soal tidak mengganggu, dalam sebuah pembaruan iOS diam-diam mengubah pengaturan panggilan saya sehingga dering tidak berbunyi untuk sebagian penelepon
      Itu semacam fitur omong kosong untuk menenangkan pikiran, tapi karena sifat NHS, saya sampai sangat cemas karena melewatkan telepon dari ahli bedah kanker yang sulit dihubungi kembali
  • Dalam kasus saya, iCloud Drive kadang begitu saja tidak tersinkron dan tersangkut pada sesuatu. Status sinkronisasi bisa dilihat dari ikon iCloud Drive di Finder
    Menutup semua aplikasi di macOS dan iOS lalu menjalankan killall bird kadang menyelesaikannya. bird adalah layanan sinkronisasi iCloud