پرانے (Stale) براؤزر پروفائل لاکس کی بحالی
براؤزر پروفائل لاک دو ورکرز کو ایک ہی وقت میں ایک ہی اکاؤنٹ کھولنے سے روکتا ہے۔
زیادہ تر آٹومیشن سسٹم ریکوری کے دوران ناکام ہو جاتے ہیں۔ جب کوئی ورکر کریش ہو جاتا ہے یا نیٹ ورک کا رابطہ ٹوٹ جاتا ہے، تو سسٹم پرانے لاک کو دیکھتا ہے اور اسے ڈیلیٹ کر دیتا ہے۔ اس سے کیو (queue) تو آگے بڑھ جاتی ہے، لیکن آپ کے اکاؤنٹ کی حالت (state) خراب ہو جاتی ہے۔
ایک پرانا (stale) لاک محض ڈیلیٹ کرنے کے لیے کوئی فائل نہیں ہے۔ یہ ایک نامکمل آپریشن ہے جسے ایک کنٹرول شدہ ریکوری راستے کی ضرورت ہوتی ہے۔
لاکس کو محض سادہ فائلیں سمجھنا بند کریں۔ انہیں لیز (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) کا مرحلہ انتہائی اہم ہے۔ یہ آپ کی تحقیقات کے دوران دوسرے ورکر کو پروفائل کو چھونے سے روکتا ہے۔
تحقیقات کے دوران، آپ کو شواہد جمع کرنے ہوں گے:
- کیا براؤزر کا عمل (process) اب بھی چل رہا تھا؟
- آخری معلوم یو آر ایل (URL) کیا تھا؟
- کیا ٹاسک کسی حساس مرحلے میں تھا جیسے چیک آؤٹ یا سیٹنگز کی تبدیلی؟
- کیا ناکامی کا کوئی اسکرین شاٹ موجود ہے؟
اگر کوئی ٹاسک کسی حساس آپریشن کے دوران رک جائے، تو اسے خود بخود دوبارہ شروع (auto-resume) نہ کریں۔ اسے دستی جائزے (manual review) کے لیے بھیج دیں۔ غلط فیصلوں سے بچنے کے لیے آٹومیشن کی حدود ہونی چاہئیں۔
عام غلطیاں جن سے بچنا چاہیے:
- پروفائل کی حفاظت چیک کیے بغیر لاک کو ڈیلیٹ کرنا۔
- پرانے ورکرز کی طرف سے دیر سے ہونے والی رائٹس کو مسترد کرنے کے لیے فینسنگ ٹوکنز (fencing tokens) کا استعمال نہ کرنا۔
- کسی معلوم محفوظ چیک پوائنٹ کے بغیر فارم سبمیشن کی دوبارہ کوشش کرنا۔
- ریکوری کے عمل کے دوران پراکسیز (proxies) تبدیل کرنا۔
مقصد ریکوری کو پیچیدہ بنانا نہیں ہے۔ مقصد اسے واضح (explicit) بنانا ہے۔
لاک محض ایک علامت ہے۔ آپ کے سسٹم کو اس لاک کے پیچھے موجود اکاؤنٹ کے ماحول کی حفاظت کرنی چاہیے۔
ایک پروفائل۔ ایک مالک کی لیز۔ ایک فعال ٹاسک۔ ایک شواہد کا سلسلہ۔ ایک ریکوری کا فیصلہ۔