𝗥𝗲𝗰𝗼𝘃𝗲𝗿𝗶𝗻𝗴 𝗦𝘁𝗮𝗹𝗲 𝗕𝗿𝗼𝘄𝘀𝗲𝗿 𝗣𝗿𝗼𝗳𝗶𝗹𝗲 𝗟𝗼𝗰𝗸𝘀

ब्राउझर प्रोफाइल लॉक एकाच वेळी दोन वर्कर्सना (workers) एकच खाते उघडण्यापासून रोखते.

बहुतेक ऑटोमेशन सिस्टम्स रिकव्हरी दरम्यान अपयशी ठरतात. जेव्हा एखादा वर्कर क्रॅश होतो किंवा नेटवर्क कनेक्शन तुटते, तेव्हा सिस्टम जुना लॉक पाहते आणि तो डिलीट करते. यामुळे क्यू (queue) पुढे सरकते, परंतु तुमच्या खात्याची स्थिती (account state) बिघडते.

जुना (stale) लॉक म्हणजे केवळ डिलीट करायची फाईल नाही. ती एक अपूर्ण प्रक्रिया आहे ज्यासाठी नियंत्रित रिकव्हरी मार्गाची (controlled recovery path) आवश्यकता असते.

लॉक्सना केवळ साध्या फाईल्स म्हणून मानणे थांबवा. त्यांना 'लीज' (leases) म्हणून पहा.

एका सुरक्षित लीजसाठी खालील गोष्टी आवश्यक आहेत:

  • एक मालक (owner)
  • एक्सपायरी वेळ (expiry time)
  • हार्टबीट (heartbeat)
  • व्हर्जन नंबर (fencing token)

व्हर्जन नंबर अत्यंत महत्त्वाचा आहे. प्रत्येक 'राईट' (write) ऑपरेशनमध्ये नवीनतम टोकन असणे आवश्यक आहे. जर नवीन वर्करने काम ताब्यात घेतल्यावर जुना वर्कर परत आला, तर सिस्टम जुने टोकन नाकारते. यामुळे डेटाची गुप्तपणे होणारी बिघाड (silent corruption) टाळता येते.

'Locked' वरून थेट 'Available' कडे जाऊ नका. या टप्प्यांमधून जाण्यासाठी 'स्टेट मशीन' (state machine) वापरा:

  • Held
  • Suspected stale (जुने असल्याचा संशय)
  • Quarantined (क्वारंटाईन)
  • Inspected (तपासलेले)
  • Available | Resume pending | Manual review (उपलब्ध | रिझ्युम प्रलंबित | मॅन्युअल रिव्ह्यू)

क्वारंटाईन (quarantine) टप्पा अत्यंत महत्त्वाचा आहे. तुम्ही तपास करत असताना तो दुसऱ्या वर्करला प्रोफाइलला स्पर्श करण्यापासून रोखतो.

तपास करताना, तुम्हाला पुरावे गोळा करणे आवश्यक आहे:

  • ब्राउझर प्रोसेस अजूनही सुरू होती का?
  • शेवटचा ज्ञात URL कोणता होता?
  • टास्क चेकआउट किंवा सेटिंग्ज बदलण्यासारख्या संवेदनशील टप्प्यावर (sensitive step) होते का?
  • त्रुटीचा (failure) स्क्रीनशॉट उपलब्ध आहे का?

जर एखादे कार्य संवेदनशील ऑपरेशन दरम्यान थांबले असेल, तर ते ऑटो-रिझ्युम (auto-resume) करू नका. ते मॅन्युअल रिव्ह्यूसाठी पाठवा. चुकीचे निर्णय टाळण्यासाठी ऑटोमेशनला मर्यादा (boundaries) असणे आवश्यक आहे.

टाळल्या पाहिजेत अशा सामान्य चुका:

  • प्रोफाइलची सुरक्षितता तपासल्याशिवाय लॉक डिलीट करणे.
  • जुन्या वर्कर्सकडून होणारे उशिराचे 'राईट्स' (late writes) नाकारण्यासाठी 'फेंसिंग टोकन्स' (fencing tokens) वापरणे टाळणे.
  • सुरक्षित चेकपॉइंटशिवाय (safe checkpoint) फॉर्म सबमिशन पुन्हा करण्याचा प्रयत्न करणे.
  • रिकव्हरी प्रक्रियेदरम्यान प्रॉक्सी (proxies) बदलणे.

रिकव्हरी प्रक्रिया गुंतागुंतीची करणे हे ध्येय नाही. ती स्पष्ट (explicit) करणे हे ध्येय आहे.

लॉक हा केवळ एक लक्षण (symptom) आहे. तुमच्या सिस्टमने त्या लॉकच्या मागे असलेल्या खाते वातावरणाचे (account environment) संरक्षण केले पाहिजे.

एक प्रोफाइल. एक मालक लीज (owner lease). एक सक्रिय टास्क (active task). एक पुराव्याचा मागोवा (evidence trail). एक रिकव्हरी निर्णय.

Source: https://dev.to/web4browser/recovering-stale-browser-profile-locks-without-corrupting-account-state-2hi