3 पॉइंट द्वारा GN⁺ 2023-09-24 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • iCloud Drive के छिपे हुए file conflict की वजह से हाल में लिखे गए पैराग्राफ या code changes गायब हो गए, और backup सेव होने से पहले ही नुकसान हो गया
  • conflict ऐसी स्थिति में माना गया था जहाँ Mac और iPhone पर उसी file के अलग-अलग versions थे, लेकिन समस्या वाली file iPhone पर कभी खोली ही नहीं गई थी
  • Dropbox conflict वाली file को अलग से रखता है, लेकिन iCloud Drive उसे file system में नहीं दिखाता, इसलिए conflict handling support वाले editors में ही selection popup देखा जा सकता है
  • Textifier, Xcode, Obsidian जैसे editors जिनमें conflict handling नहीं है, उनमें iCloud तय करता है कि कौन-सा version सेव करना है, और समय के साथ सही version backup में overwrite हो सकता है
  • महत्वपूर्ण data को iCloud Drive के बाहर रखना और core files में changes को Git repository से monitor करना ज्यादा सुरक्षित है; iCloud में ही रखनी पड़ने वाली files के लिए Cloud Cub भी develop किया जा रहा है

iCloud Drive के छिपे हुए file conflicts

  • document लिखते समय अभी-अभी टाइप किया गया पैराग्राफ गायब हो गया, और app development के दौरान Xcode ने उस code में कई errors दिखाए जो पहले तक ठीक चल रहा था
    • कई files के हालिया changes मिट चुके थे
    • यह नुकसान Time Machine या Backblaze के सेव करने से पहले हो गया
  • वजह iCloud Drive द्वारा detect किया गया file conflict था
    • iCloud Drive ने माना कि Mac और iPhone पर उसी file के अलग-अलग versions हैं और उन्हें automatically merge नहीं किया जा सकता
    • लेकिन प्रभावित file iPhone पर कभी खोली ही नहीं गई थी
    • Mac का Documents folder iCloud पर move किया हुआ था, इसलिए वे files iCloud में थीं
  • Dropbox में version conflict होने पर “(John Doe’s conflicted copy)” जैसे नाम वाली conflicted file साथ में सेव हो जाती है
  • iCloud Drive वही conflict file system में नहीं दिखाता
    • conflict handling support करने वाले editor में file खोलने पर कौन-सा version रखना है यह पूछने वाला popup दिखाई देता है
    • Textifier, Xcode, Obsidian जैसे editors जिनमें conflict handling नहीं है, उनमें iCloud तय करता है कि disk और backups में कौन-सा version सेव होगा

recovery की शर्तें और निपटने के तरीके

  • समय बीतने पर अगर नया backup उस पुराने backup को overwrite कर दे जिसमें सही version था, तो content स्थायी रूप से खो सकता है
  • recovery के लिए उस file को ऐसे editor में खोलना होगा जो conflict resolution support करता हो
    • उदाहरण में इस्तेमाल किया गया editor iA Writer है
    • file को iCloud Drive के बाहर move करने के बाद यह तरीका भी मदद नहीं करता
    • tests में, unchanged file को फिर से iCloud में move करने पर conflict version popup फिर दिखाई दिया, लेकिन अगर file edit की गई हो या copy पर काम जारी रखा गया हो, तो ऐसा नहीं भी हो सकता
  • version conflicts को छिपाने का तरीका user-friendly लग सकता है, लेकिन महत्वपूर्ण documents को कई साल बाद फिर खोलने तक data loss का पता नहीं चल सकता
  • जब तक iCloud Drive file system या किसी आसानी से accessible central location में version conflicts को expose नहीं करता, महत्वपूर्ण data को iCloud Drive के बाहर move करना ज्यादा सुरक्षित है
  • iCloud Drive में रखनी पड़ने वाली files के लिए छिपे हुए sync conflicts को detect और resolve करने वाला Cloud Cub बनाया जा रहा है

1 टिप्पणियां

 
GN⁺ 2023-09-24
Hacker News की राय
  • मेरे साथ भी कुछ ऐसा ही हुआ: पत्नी के iPhone के Notes में cloud sync चालू था, और मुझे लगा इसकी ज़रूरत नहीं होगी, तो मैंने उसे बंद कर दिया। पत्नी बोली, “मेरे सारे notes कहाँ गए? तुमने क्या किया?”
    पसीने छूट गए, लेकिन फिर याद आया कि एक iPad है जिसमें synced Notes app है। उसे तुरंत खोला और WiFi बंद कर दिया ताकि notes “बचाए” जा सकें
    Apple को कॉल किया, और support प्रतिनिधि ने तरीका ढूंढा कि हर note को एक नए folder में copy-paste कर दें तो वे delete नहीं होंगे
    कुछ घंटे काफ़ी तनाव में बीते, और मुझे लगता है Apple को ऐसे action के पूरे असर के बारे में और warning या popup देने चाहिए थे
    साथ ही यह भी पता चला कि Apple tech support असल में phone में “VNC” की तरह access करके देख सकता है और settings बदल सकता है। शायद उन्होंने permission मांगी थी और मैंने “approve” दबाया था, लेकिन जब तक खुद देखा नहीं, पता ही नहीं था कि ऐसी functionality मौजूद है

    • मैं इस समस्या का बचाव नहीं कर रहा, लेकिन यह हैरान करने वाला है कि Apple प्रतिनिधि ने Notes sync की समस्या phone पर हल करने में मदद की और recover भी करा दिया
      ऊपर से वजह देखने में मेरी ही गलती लग रही थी, फिर भी उन्होंने मदद की। हमारी company Google products पर बहुत पैसा देती है, लेकिन Google के phone पर ऐसी मदद करने की संभावना लगभग नहीं है
      पहले access control जैसी चीज़ों पर किसी representative से बात हुई थी, लेकिन अगर Keep notes गायब हो जाएँ और मदद मांगूँ, तो शायद विनम्रता से दफा हो जाने जैसा जवाब मिलेगा। सच में Keep notes भी कभी-कभी गायब हो जाते हैं
    • अगर स्थिति वही है जो मैं सोच रहा हूँ, तो बस sync फिर से चालू करते ही सभी notes वापस दिखने लगते
    • मेरी याद में sync बंद करते समय यह सवाल आता है: “क्या आप जारी रखना चाहते हैं? सभी iCloud notes iPhone से हटा दिए जाएंगे”
      पत्नी की समस्या Apple से ज़्यादा iOS device manage करने वाले व्यक्ति की तरफ़ लगती है
    • Apple tech support का phone में “VNC” की तरह घुसकर content देख पाना और settings बदल पाना संभावित security vulnerability जैसा लगता है। सोच रहा हूँ इसे permanently बंद करने का कोई तरीका है या नहीं
    • उस “VNC” feature के बारे में और detail जानना चाहता हूँ। क्या यह सिर्फ iPad के लिए है या iOS पर भी चलता है, approval request system popup थी या कोई named app खुला था, क्या screen पर सच में वे क्या कर रहे थे दिख रहा था, और क्या इसका कहीं documentation है
  • सच में, लाख बार सहमत हूँ। लेकिन यह सिर्फ iCloud की समस्या नहीं, बल्कि Apple software में कुल मिलाकर दिखने वाली बुनियादी प्रवृत्ति लगती है
    Books में PDF पर highlight करते समय भी बार-बार ऐसा हुआ है। कभी-कभी PDF दोबारा खोलने पर हाल में highlight किए गए कई pages गायब मिलते हैं
    काम करते समय लगता है सब लगातार save हो रहा है, लेकिन किसी अज्ञात कारण से वह 11:45 वाली version के बजाय 11:35 वाली version को latest main version मान लेता है
    Apple द्वारा नए content को चुपचाप पुराने version से overwrite कर देने की समस्या कम से कम 10 साल से चल रही है
    समझ नहीं आता कि ऐसी घातक खामी शुरू में system में आई कैसे और अब तक ठीक क्यों नहीं हुई

    • software में सबसे कठिन दो समस्याएँ हैं cache invalidation, naming, off-by-one errors, और array index enforcement न होने से buffer overflow
    • macOS के default software से highlight या annotation करते समय भी कई अजीब चीज़ें झेलीं, और Skim काफी बढ़िया alternative निकला
      यह free है और BSD license वाला है, लेकिन यह याद रखना होगा कि दूसरे apps में changes देखने के लिए annotated PDF के रूप में export करना पड़ता है
      अगर आप Apple के contrast मार देने वाले नारंगी background या असली पीले highlighter की कमी से थक गए हैं, तो इसे आज़माने लायक है। मैं इससे जुड़ा नहीं हूँ, बस इसके मौजूद होने के लिए आभारी हूँ
      https://skim-app.sourceforge.io/
    • दिलचस्प point है। मैं Apple computers आते-जाते इस्तेमाल करता रहा हूँ और हाल में 2015 से इस साल की शुरुआत तक इस्तेमाल किया, और philosophy की समस्या वाली बात में दम लगती है
      hardware में भी floppy disk, optical drive, और पूरी CPU architecture को तीन बार काफ़ी बेरहमी से काट देने की याद है
      iCloud में वही रवैया files पर भी लागू होता लगता है। यह नहीं कहूँगा कि सब बुरा है, लेकिन उम्र बढ़ने के साथ यह मेरी पसंद से धीरे-धीरे दूर होता जा रहा है
    • iCloud infrastructure का ज़्यादातर हिस्सा Cassandra instances पर बना है। इस पर एक अच्छा paper है, लेकिन अभी ढूंढ नहीं पा रहा
    • अगर उसने 11:35 version को latest माना, तो क्या कुछ servers की clock गलत थी?
  • लेखक git इस्तेमाल करने का सुझाव देता है, लेकिन git iCloud Drive के साथ अच्छी तरह मेल नहीं खाता
    पहले मैंने iCloud Drive में सैकड़ों git repositories रखी थीं, लेकिन बड़ा commit करने पर कई सौ GB वाला पूरा iCloud Drive Apple servers के साथ फिर से sync होने लगता था और इसमें एक दिन लग जाता था
    Apple support को काफी high level तक escalate करके हल निकालने की कोशिश की, लेकिन अंत तक हल नहीं निकला। अब git repositories को iCloud Drive के बाहर रखता हूँ
    लगता है last बड़े change का sync खत्म होने से पहले अगर सैकड़ों files को तेजी से एक साथ बदल दें, तो यह घटना trigger होती है

    • मुझे लगा था कि यह लगभग common sense है कि git जैसे version control systems और iCloud, OneDrive, Google Drive जैसे cloud drives की cloud-based version control को mix नहीं करना चाहिए
      दोनों अच्छी तरह साथ नहीं चलते, और खासकर अगर कई devices एक ही cloud drive से sync हैं, तो तरह-तरह का अजीब और अनपेक्षित behavior होने की गुंजाइश रहती है
    • मूल पोस्ट का लेखक हूँ। share करने के लिए धन्यवाद
      समस्या यह है कि जिस app का इस्तेमाल करना ज़रूरी है वह कोई और sync method support नहीं करता, इसलिए कुछ important files के लिए iCloud Drive इस्तेमाल करना पड़ता है
      git न होता तो मैं यह भी पता नहीं लगा पाता कि कौन-सी files बदली हैं। git होने पर भी पक्का नहीं कह सकता कि सब पकड़ लिया। iCloud sync conflict से git content भी बदल सकता है
    • git वैसे भी बड़े binary objects के साथ अच्छी तरह मेल नहीं खाता
    • important iCloud Drive folders को किसी automatic process से कहीं rsync कर देना, और वहाँ Git या Dropbox आदि से automatic version management करना, मैं अक्सर यही तरीका इस्तेमाल करता हूँ
      बहुत बड़े data के लिए अच्छा नहीं होगा, लेकिन iCloud Drive में रहते हुए जिन चीज़ों को aggressively version-manage करना चाहता हूँ वे ज़्यादातर text होती हैं या छोटी होती हैं, इसलिए दो copies रखने का बोझ लगभग नहीं होता
    • संदर्भ के लिए, Dropbox में भी मिलते-जुलते कारणों से git काफी अजीब तरह से fail हो सकता है। पहले Dropbox को git server की तरह इस्तेमाल करने के लिए git-remote-dropbox इस्तेमाल किया था
      [1] https://github.com/anishathalye/git-remote-dropbox
  • iCloud Drive न इस्तेमाल करने की एक और बड़ी वजह यह है कि end-to-end encryption डिफ़ॉल्ट नहीं है
    वहां जो भी आप स्टोर करते हैं, उसे Apple के system administrator, support staff, और वे लोग पढ़ सकते हैं जो Apple से इसकी मांग कर सकते हैं—जैसे अभी बिना warrant के भी ऐसा कर सकने वाली अमेरिकी सरकार
    ऐसी services इस्तेमाल न करना बेहतर है जो end-to-end encrypted नहीं हैं
    अभी iCloud में optional end-to-end encryption मौजूद है, लेकिन वह डिफ़ॉल्ट रूप से बंद है और settings में काफी अंदर छिपा है, इसलिए लगभग कोई भी इसका इस्तेमाल नहीं करता
    मैं अपने सभी devices पर files बनाए रखने के लिए Syncthing इस्तेमाल करता हूं। यह end-to-end encrypted है, free software है, और conflict handling व version backup भी ठीक-ठाक हैं
    यह ऐसे untrusted sync-only devices को भी support करता है जो plaintext कभी नहीं देख पाते, इसलिए VPS या किसी बाहरी जगह पर node सुरक्षित रूप से रखा जा सकता है

    • “जो services end-to-end encrypted नहीं हैं, उन्हें इस्तेमाल न करें” कहते हुए “iCloud में भी optional end-to-end encryption है” कहना आपस में विरोधाभासी है। iCloud भी end-to-end encrypted हो सकता है
      दोस्तों या परिवार को menu में दो बार tap करके इसे on करने के लिए मनाना आसान है, लेकिन उन्हें कई devices पर Syncthing install और configure करने के लिए मनाना आसान नहीं है
      Syncthing की वकालत करना ठीक है, लेकिन average user key खो दे तो सारा data खो सकता है—ऐसी setting को default में on न रखने की वजह से iCloud Drive को खराब कहना थोड़ा अजीब है
      मैं दावे से कह सकता हूं कि दादी मां default में ज्यादा secure चीज़ की बजाय password भूल जाने पर Apple को call करके छोटे Johnny की photos वापस पाना कहीं ज्यादा चाहेंगी
    • end-to-end encryption के खिलाफ एक practical तर्क भी है। ज्यादातर लोगों के लिए administrator या government के हाथ data leak होने की तुलना में encryption key भूलने या खो देने से सारा data खो देने की संभावना कहीं ज्यादा है
      मैं भी end-to-end encryption चालू करना चाहता हूं, लेकिन key न खोने के लिए खुद पर इतना भरोसा नहीं कर पाता
    • iCloud में end-to-end encryption manually चालू करने और end-to-end encryption को default support करने वाले provider को खुद ढूंढकर इस्तेमाल करने में क्या फर्क है, यह समझ नहीं आता
      यह messaging जैसा मामला भी नहीं है जहां सामने वाले को भी end-to-end encryption चालू करना पड़े
    • cloud storage provider पूरी तरह बदलने की तुलना में iCloud में एक button दबाकर end-to-end encryption चालू करना निश्चित रूप से आसान लगता है
    • iCloud account settings में Advanced Data Protection से end-to-end encryption चालू किया जा सकता है
      https://support.apple.com/en-ca/HT212520
  • मुझे भी इस वजह से काफी गुस्सा आया। मैंने अपनी Calibre library Documents folder में रखी थी। और कहां रखता—free backup भी तो शामिल था
    लेकिन कुछ समय पहले मैंने पाया कि library के अंदर कुछ book folders, जिनमें असली epub files होनी चाहिए थीं, खाली थे
    directory structure और database entries मौजूद थीं, लेकिन सिर्फ book files गायब थीं। सारी नहीं, बल्कि random तरीके से करीब 40%
    निष्कर्ष यह है कि जिन चीजों से प्यार हो उन्हें iCloud Drive में store न करें, खासकर books तो बिल्कुल नहीं

    • मजाकिया tip है, लेकिन शायद Libgen से उन्हें फिर से पाया जा सकता है
  • “conflict handling support करने वाले editor में file खोलने पर कौन-सा version रखना है यह पूछने वाला popup आता है। Textifier, Xcode, Obsidian जैसे जिन editors में conflict handling नहीं है, उनमें iCloud को तय करने दिया जाता है कि disk और backup में कौन-सा version save होगा” वाले हिस्से पर, मुझे लगता है कि iCloud support जोड़ते समय conflict handling mechanism न जोड़ने वाले app developers की भी कुछ जिम्मेदारी है
    लेकिन Apple का अपना app Xcode conflict handling support क्यों नहीं करता? Apple software को third-party developers के लिए standard set करना चाहिए
    अगर Apple भी version conflicts handle नहीं करेगा, तो जाहिर है दूसरे developers भी नहीं करेंगे

    • मैं मूल पोस्ट का लेखक हूं। शायद मैंने थोड़ा गलतफहमी पैदा करने वाले ढंग से लिखा। मुख्य बात यह है कि यह editor से स्वतंत्र है
      conflict handling support करने वाला editor इस्तेमाल करने पर भी content खो सकता है
      मान लें कि आप कुछ लिखकर save करते हैं और फिर editor बंद करके दोबारा नहीं खोलते, तो iCloud उस file का content बदल सकता है और user को पता चलने का कोई तरीका नहीं होगा
      data न खोने का एकमात्र तरीका Git repository बनाना है, या सभी महत्वपूर्ण files को conflict handling support करने वाले editor में नियमित रूप से खोलना है
    • सिर्फ इसलिए कि app ने कोई feature implement नहीं किया, system API को महत्वपूर्ण data चुपचाप delete नहीं करना चाहिए
      यह Xcode bug नहीं, iCloud bug है
  • iCloud Drive में files रखने पर iPhone किसी भी समय local copy हटा सकता है
    अगर आप files sync करते हुए भी यह भरोसा रखना चाहते हैं कि local copy 100% मौजूद है, तो वही file iCloud Drive और “On My iPhone” folder दोनों जगह रखनी होगी
    Apple Books, Numbers, और iCloud Drive इस्तेमाल करने वाले सभी apps local copies बार-बार इसी वजह से हटाते हैं
    मैंने iCloud Drive इस्तेमाल करने वाला एक simple notes app बनाया था, लेकिन app बंद करते ही iCloud 2KB की txt file भी लालच से हटा देता था। कभी-कभी नहीं भी हटाता था, इसलिए यह काफी random था
    storage बहुत खाली हो तब भी फर्क नहीं पड़ता, और iCloud लगातार इस्तेमाल हो रही files के local versions भी हटा सकता है
    Apple developer support ने कहा कि वे कुछ नहीं कर सकते। developers के पास भी files को कभी न हटाने के लिए mark करने का कोई तरीका नहीं है
    official documentation में Apple वास्तव में recommend करता है कि users अपनी सारी files iCloud Drive में रखें और “On My iPhone” में copies न रखें

  • Contacts गायब होने जैसी similar problem मुझे भी हुई। कुछ समय तक ऐसा होता रहा, लेकिन शुरू में मैंने सोचा कि यह मेरी गलती है
    एक सुबह, जिस दोस्त से पिछली रात text कर रहा था उसका contact गायब देखकर मुझे एहसास हुआ कि समस्या iCloud है
    मैंने Apple support से contact किया, और basic instructions सब आजमाने के बाद representative ने माना कि यह known issue है, लेकिन root cause नहीं मिला है और कोई solution भी नहीं है
    उन्होंने कहा कि contacts को monitor करूं ताकि पता चल सके deletion कब हो रहा है, और इसके लिए कुछ minutes की range बतानी होगी
    वजह यह थी कि “iPhone बहुत सारे logs बनाता है, इसलिए अगर ठीक-ठीक कब हुआ यह pinpoint नहीं कर सके तो engineer उसे देख नहीं पाएंगे”
    मुझे लगा था कि bug को 8 घंटे की range तक narrow down करना भी काफी अच्छा है, लेकिन representative ने कहा कि engineers ने ऐसा कहा है और minutes-level accuracy चाहिए
    आखिरकार, Apple support को मुश्किल समस्या देने पर हर बार जैसा हुआ है, representative ने कहा कि वे follow up करेंगे, लेकिन फिर कभी call नहीं किया और कुछ नहीं हुआ
    मैंने contacts Google पर move कर दिए और बस भूल गया

  • मैंने इस समस्या को देखा। Apple ने users को conflicts से बहुत ज़्यादा परेशान न करने के लिए, कुछ खास परिस्थितियों में user data खो देने वाली sync strategy चुनी
    यानी उसने उन काफी पुरानी techniques का इस्तेमाल न करने का फैसला किया जिनसे conflicted revisions को सुरक्षित रखा जा सकता था
    सारांश यहाँ है
    https://www.youtube.com/watch?v=q8k1q6kf1W0

    • user को बाधित न करना हो तो duplicate files को conflict folder जैसी किसी जगह में रखा जा सकता था
      तब लोग “Apple ने मेरी files के साथ क्या किया?” खोजकर recovery का तरीका ढूँढ सकते थे
      बाधित न करने की बात करें तो, iOS ने किसी update में मेरी call settings चुपचाप बदल दीं, जिससे कुछ callers के लिए phone की ring नहीं बजी
      यह मन को शांत रखने वाली किसी तरह की बेकार feature थी, लेकिन NHS की प्रकृति के कारण cancer surgeon की call miss हो गई, जिन्हें वापस call करना मुश्किल था, और मैं काफी बेचैन हो गया
  • मेरे मामले में iCloud Drive कभी-कभी बस sync नहीं होता और कहीं अटक जाता है। Finder के iCloud Drive icon में sync status देखा जा सकता है
    macOS और iOS पर सभी apps बंद करके killall bird चलाने से कभी-कभी समस्या हल हो जाती है। bird iCloud sync service है