पुराने (Stale) ब्राउज़र प्रोफाइल लॉक को रिकवर करना
ब्राउज़र प्रोफाइल लॉक दो वर्कर्स को एक साथ एक ही अकाउंट खोलने से रोकता है।
अधिकांश सिस्टम तब विफल हो जाते हैं जब कोई वर्कर क्रैश हो जाता है या नेटवर्क खो देता है। वे एक पुराने लॉक को देखते हैं, उसे डिलीट कर देते हैं, और एक नए वर्कर को कार्यभार संभालने देते हैं। इससे क्यू (queue) तो आगे बढ़ जाती है, लेकिन यह आपके अकाउंट की स्थिति (state) को खराब कर देता है।
एक पुराना (stale) लॉक केवल डिलीट करने वाली कोई फ़ाइल नहीं है। यह एक अधूरा ऑपरेशन है जिसे एक नियंत्रित रिकवरी पाथ (recovery path) की आवश्यकता होती है।
लॉक को केवल एक साधारण फ्लैग (flag) न समझें। असली मूल्य ब्राउज़र प्रोफाइल का है: कुकीज़ (cookies), लोकल स्टोरेज (local storage), और सेशन हिस्ट्री (session history)।
रिकवरी के लिए स्टेट मशीन (state machine) का उपयोग करें:
• Held • संदिग्ध रूप से पुराना (Suspected stale) • क्वारंटाइन (Quarantined) • निरीक्षण किया गया (Inspected) • उपलब्ध (Available) | रीज़्यूम पेंडिंग (Resume pending) | मैन्युअल रिव्यू (Manual review)
क्वारंटाइन (Quarantine) स्टेट अत्यंत महत्वपूर्ण है। यह आपके जांच करते समय दूसरे वर्कर को बीच में आने से रोकता है।
आपको फेंसिंग टोकन (fencing token) के साथ लीज़ मॉडल (lease model) का उपयोग करना चाहिए। हर 'राइट' (write) ऑपरेशन में एक वर्शन नंबर शामिल होना चाहिए। यदि कोई पुराना वर्कर नए वर्कर के कार्यभार संभालने के बाद सक्रिय होता है, तो सिस्टम को उसके पुराने टोकन को अस्वीकार कर देना चाहिए। यह साइलेंट करप्शन (silent corruption) को रोकता है।
पुराने (stale) लॉक के सामान्य कारण:
- वर्कर प्रोसेस क्रैश हो गया
- होस्ट रीस्टार्ट हो गया
- जॉब रनटाइम से अधिक हो गया
- हार्टबीट (Heartbeat) रुक गई
- नेटवर्क पार्टीशन (Network partition)
एक पुराने (stale) लॉक का मतलब यह नहीं है कि प्रोफाइल सुरक्षित है। एक वर्कर मृत (dead) लग सकता है, लेकिन वह नेटवर्क देरी के कारण अभी भी चल रहा हो सकता है।
प्रोफाइल को दोबारा उपयोग करने से पहले, आपको साक्ष्य (evidence) एकत्र करने चाहिए:
- अंतिम ज्ञात URL
- अंतिम ज्ञात स्टेप
- अंतिम स्क्रीनशॉट
- प्रॉक्सी ID
- प्रोफाइल डायरेक्टरी स्टेटस
यदि कोई टास्क चेकआउट या पासवर्ड बदलने जैसे संवेदनशील कार्य के दौरान रुक जाता है, तो उसे ऑटो-रीज़्यूम (auto-resume) न करें। उसे मैन्युअल रिव्यू (manual review) के लिए भेजें।
रिकवरी के लिए चार सुरक्षित परिणाम:
- उपलब्ध (Available): इसका उपयोग तब करें यदि टास्क कभी शुरू ही नहीं हुआ या अकाउंट डेटा को छूने से पहले ही विफल हो गया।
- रीज़्यूम पेंडिंग (Resume pending): इसका उपयोग तब करें यदि आपके टास्क में स्पष्ट और सुरक्षित चेकपॉइंट्स (checkpoints) हैं।
- रिट्राय (Retry): इसका उपयोग तब करें यदि प्रोफाइल सुरक्षित है लेकिन टास्क को फिर से शुरू करना आवश्यक है।
- मैन्युअल रिव्यू (Manual review): इसका उपयोग तब करें यदि स्थिति संदिग्ध या संवेदनशील है।
शॉर्टकट लेना बंद करें। सेशन को ठीक करने के लिए प्रोफाइल डायरेक्टरीज़ को डिलीट न करें या कुकीज़ साफ़ न करें। ये क्रियाएं अकाउंट कॉन्टेक्स्ट (account context) को नुकसान पहुँचाती हैं।
एक सुरक्षित सिस्टम इन नियमों का पालन करता है:
- एक प्रोफाइल
- एक ओनर लीज़ (owner lease)
- एक सक्रिय टास्क
- एक साक्ष्य ट्रेल (evidence trail)
- एक रिकवरी निर्णय
लॉक केवल एक लक्षण है। आपका काम इसके पीछे के अकाउंट वातावरण (account environment) की रक्षा करना है।