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

ഒരു ബ്രൗസർ പ്രൊഫൈൽ ലോക്ക് (browser profile lock), ഒരേ സമയം രണ്ട് വർക്കർമാർ ഒരേ അക്കൗണ്ട് തുറക്കുന്നത് തടയുന്നു.

ഒരു വർക്കർ ക്രാഷ് ചെയ്യുമ്പോഴോ നെറ്റ്‌വർക്ക് നഷ്ടപ്പെടുമ്പോഴോ മിക്ക സിസ്റ്റങ്ങളും പരാജയപ്പെടുന്നു. അവ പഴയൊരു ലോക്ക് കണ്ട് അത് നീക്കം ചെയ്യുകയും പുതിയൊരു വർക്കർ ഏറ്റെടുക്കാൻ അനുവദിക്കുകയും ചെയ്യുന്നു. ഇത് ക്യൂ (queue) മുന്നോട്ട് നീങ്ങാൻ സഹായിക്കുമെങ്കിലും, നിങ്ങളുടെ അക്കൗണ്ട് സ്റ്റേറ്റ് (account state) നശിപ്പിക്കുന്നു.

ഒരു കാലഹരണപ്പെട്ട ലോക്ക് (stale lock) എന്നത് വെറുതെ ഡിലീറ്റ് ചെയ്യേണ്ട ഒരു ഫയലല്ല. അത് നിയന്ത്രിതമായി വീണ്ടെടുക്കേണ്ട (controlled 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) തടയുന്നു.

കാലഹരണപ്പെട്ട ലോക്കുകൾ ഉണ്ടാകാനുള്ള പൊതുവായ കാരണങ്ങൾ:

  • വർക്കർ പ്രോസസ്സ് ക്രാഷ് ആയി
  • ഹോസ്റ്റ് റീസ്റ്റാർട്ട് ചെയ്തു
  • ജോബ് റൺടൈം കവിഞ്ഞു
  • ഹാർട്ട്ബീറ്റ് (Heartbeat) നിലച്ചു
  • നെറ്റ്‌വർക്ക് പാർട്ടീഷൻ (Network partition)

ഒരു കാലഹരണപ്പെട്ട ലോക്ക് എന്നാൽ പ്രൊഫൈൽ സുരക്ഷിതമാണ് എന്നല്ല അർത്ഥമാക്കുന്നത്. ഒരു വർക്കർ നിലച്ചതായി തോന്നിയേക്കാം, എന്നാൽ നെറ്റ്‌വർക്ക് താമസം കാരണം അത് ഇപ്പോഴും പ്രവർത്തിച്ചുകൊണ്ടിരിക്കാം.

ഒരു പ്രൊഫൈൽ വീണ്ടും ഉപയോഗിക്കുന്നതിന് മുമ്പ്, നിങ്ങൾ തെളിവുകൾ ശേഖരിക്കണം:

  • അവസാനമായി അറിയപ്പെട്ട URL
  • അവസാനമായി അറിയപ്പെട്ട സ്റ്റെപ്പ്
  • അവസാനത്തെ സ്ക്രീൻഷോട്ട്
  • പ്രോക്സി ഐഡി (Proxy ID)
  • പ്രൊഫൈൽ ഡയറക്ടറി സ്റ്റാറ്റസ്

ചെക്ക്ഔട്ട് അല്ലെങ്കിൽ പാസ്‌വേഡ് മാറ്റം പോലുള്ള സെൻസിറ്റീവ് ആയ ഒരു പ്രവർത്തനത്തിനിടയിലാണ് ഒരു ടാസ്ക് നിലച്ചതെങ്കിൽ, അത് ഓട്ടോമാറ്റിക്കായി പുനരാരംഭിക്കരുത് (auto-resume). പകരം അത് മാനുവൽ റിവ്യൂവിന് (manual review) അയക്കുക.

വീണ്ടെടുക്കലിനായുള്ള നാല് സുരക്ഷിത ഫലങ്ങൾ:

  1. Available: ടാസ്ക് ഒരിക്കലും ആരംഭിച്ചില്ലെങ്കിലോ അല്ലെങ്കിൽ അക്കൗണ്ട് ഡാറ്റയിൽ തൊടുന്നതിന് മുമ്പ് പരാജയപ്പെട്ടാലോ ഇത് ഉപയോഗിക്കുക.
  2. Resume pending: നിങ്ങളുടെ ടാസ്കുകൾക്ക് വ്യക്തവും സുരക്ഷിതവുമായ ചെക്ക് പോയിന്റുകൾ ഉണ്ടെങ്കിൽ ഇത് ഉപയോഗിക്കുക.
  3. Retry: പ്രൊഫൈൽ സുരക്ഷിതമാണെങ്കിലും ടാസ്ക് ആദ്യം മുതൽ തുടങ്ങേണ്ടതുണ്ടെങ്കിൽ ഇത് ഉപയോഗിക്കുക.
  4. Manual review: അവസ്ഥ അവ്യക്തമോ സെൻസിറ്റീവ് ആയതോ ആണെങ്കിൽ ഇത് ഉപയോഗിക്കുക.

ഷോർട്ട്കട്ടുകൾ ഒഴിവാക്കുക. ഒരു സെഷൻ ശരിയാക്കാൻ പ്രൊഫൈൽ ഡയറക്ടറികൾ ഡിലീറ്റ് ചെയ്യുകയോ കുക്കികൾ ക്ലിയർ ചെയ്യുകയോ ചെയ്യരുത്. ഇത്തരം പ്രവൃത്തികൾ അക്കൗണ്ട് കോൺടെക്സ്റ്റിനെ (account context) ദോഷകരമായി ബാധിക്കും.

ഒരു സുരക്ഷിത സിസ്റ്റം ഈ നിയമങ്ങൾ പാലിക്കുന്നു:

  • ഒരു പ്രൊഫൈൽ
  • ഒരു ഓണർ ലീസ് (owner lease)
  • ഒരു ആക്റ്റീവ് ടാസ്ക്
  • ഒരു തെളിവ് പാത (evidence trail)
  • ഒരു വീണ്ടെടുക്കൽ തീരുമാനം

ലോക്ക് എന്നത് ഒരു ലക്ഷണമാണ് മാത്രം. അതിന് പിന്നിലുള്ള അക്കൗണ്ട് എൻവയോൺമെന്റിനെ സംരക്ഷിക്കുക എന്നതാണ് നിങ്ങളുടെ ജോലി.

ഉറവിടം: https://dev.to/web4browser/recovering-stale-browser-profile-locks-without-corrupting-account-state-2hi