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

একটি ব্রাউজার প্রোফাইল লক নিশ্চিত করে যে দুজন ওয়ার্কার (worker) একসাথে একই অ্যাকাউন্ট খুলতে না পারে।

বেশিরভাগ সিস্টেম তখনই ব্যর্থ হয় যখন কোনো ওয়ার্কার ক্র্যাশ করে বা নেটওয়ার্ক সংযোগ বিচ্ছিন্ন হয়ে যায়। তারা একটি পুরোনো লক দেখতে পায়, সেটি মুছে ফেলে এবং নতুন ওয়ার্কারকে কাজ শুরু করতে দেয়। এতে কিউ (queue) চললেও আপনার অ্যাকাউন্টের স্টেট (state) বা অবস্থা নষ্ট হয়ে যায়।

একটি 'স্টেল লক' (stale lock) বা অচল লক কেবল মুছে ফেলার মতো কোনো ফাইল নয়। এটি একটি অসমাপ্ত অপারেশন যা একটি নিয়ন্ত্রিত রিকভারি পথের প্রয়োজন।

লককে কেবল একটি সাধারণ ফ্ল্যাগ হিসেবে গণ্য করবেন না। আসল গুরুত্ব হলো ব্রাউজার প্রোফাইলে: কুকিজ (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) রোধ করে।

অচল লকের সাধারণ কারণসমূহ:

  • ওয়ার্কার প্রসেস ক্র্যাশ করেছে
  • হোস্ট রিস্টার্ট হয়েছে
  • জব রানটাইম অতিক্রম করেছে
  • হার্টবিট (heartbeat) বন্ধ হয়ে গেছে
  • নেটওয়ার্ক পার্টিশন

একটি অচল লক মানেই এই নয় যে প্রোফাইলটি নিরাপদ। একটি ওয়ার্কার মৃত বলে মনে হতে পারে, কিন্তু নেটওয়ার্ক বিলম্বের কারণে এটি তখনও চলতে পারে।

একটি প্রোফাইল পুনরায় ব্যবহার করার আগে, আপনাকে প্রমাণ সংগ্রহ করতে হবে:

  • সর্বশেষ জানা URL
  • সর্বশেষ জানা ধাপ
  • সর্বশেষ স্ক্রিনশট
  • প্রক্সি আইডি (Proxy ID)
  • প্রোফাইল ডিরেক্টরি স্ট্যাটাস

যদি চেকআউট বা পাসওয়ার্ড পরিবর্তনের মতো কোনো সংবেদনশীল কাজের সময় কোনো টাস্ক থেমে যায়, তবে তা স্বয়ংক্রিয়ভাবে রজিউ (auto-resume) করবেন না। এটিকে ম্যানুয়াল রিভিউতে পাঠান।

রিকভারির জন্য চারটি নিরাপদ ফলাফল:

  1. Available: এটি ব্যবহার করুন যদি টাস্কটি কখনোই শুরু না হয়ে থাকে বা অ্যাকাউন্টের ডেটা স্পর্শ করার আগেই ব্যর্থ হয়ে থাকে।
  2. Resume pending: এটি ব্যবহার করুন যদি আপনার টাস্কগুলোর স্পষ্ট এবং নিরাপদ চেকপয়েন্ট থাকে।
  3. Retry: এটি ব্যবহার করুন যদি প্রোফাইলটি নিরাপদ থাকে কিন্তু টাস্কটি নতুন করে শুরু করতে হয়।
  4. Manual review: এটি ব্যবহার করুন যদি অবস্থাটি অস্পষ্ট বা সংবেদনশীল হয়।

শর্টকাট নেওয়া বন্ধ করুন। একটি সেশন ঠিক করতে প্রোফাইল ডিরেক্টরি মুছে ফেলবেন না বা কুকিজ পরিষ্কার করবেন না। এই কাজগুলো অ্যাকাউন্টের কনটেক্সট (context) নষ্ট করে দেয়।

একটি নিরাপদ সিস্টেম এই নিয়মগুলো অনুসরণ করে:

  • একটি প্রোফাইল
  • একজন মালিক লিজ (one owner lease)
  • একটি সক্রিয় টাস্ক
  • একটি প্রমাণের ধারা (one evidence trail)
  • একটি রিকভারি সিদ্ধান্ত

লকটি কেবল একটি উপসর্গ মাত্র। আপনার কাজ হলো এর পেছনের অ্যাকাউন্ট পরিবেশকে রক্ষা করা।

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