𝗥𝗲𝗰𝗼𝘃𝗲𝗿𝗶𝗻𝗴 𝗦𝘁𝗮𝗹𝗲 𝗕𝗿𝗼𝘄𝘀𝗲𝗿 𝗣𝗿𝗼𝗳𝗶𝗹𝗲 𝗟𝗼𝗰𝗸𝘀 -> ಅವಧಿ ಮೀರಿದ ಬ್ರೌಸರ್ ಪ್ರೊಫೈಲ್ ಲಾಕ್‌ಗಳನ್ನು ಮರುಪಡೆಯುವುದು

ಬ್ರೌಸರ್ ಪ್ರೊಫೈಲ್ ಲಾಕ್ ಎಂಬುದು ಇಬ್ಬರು ಕೆಲಸಗಾರರು (workers) ಏಕಕಾಲದಲ್ಲಿ ಒಂದೇ ಖಾತೆಯನ್ನು ತೆರೆಯದಂತೆ ತಡೆಯುತ್ತದೆ.

ಹೆಚ್ಚಿನ ಆಟೊಮೇಷನ್ ವ್ಯವಸ್ಥೆಗಳು ಮರುಪಡೆಯುವಿಕೆಯ (recovery) ಸಮಯದಲ್ಲಿ ವಿಫಲವಾಗುತ್ತವೆ. ಒಂದು ಕೆಲಸಗಾರನು ಕ್ರ್ಯಾಶ್ ಆದಾಗ ಅಥವಾ ನೆಟ್‌ವರ್ಕ್ ಕಳೆದುಕೊಂಡಾಗ, ವ್ಯವಸ್ಥೆಯು ಹಳೆಯ ಲಾಕ್ ಅನ್ನು ನೋಡಿ ಅದನ್ನು ಅಳಿಸಿಹಾಕುತ್ತದೆ. ಇದು ಕ್ಯೂ (queue) ಚಲಿಸಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ, ಆದರೆ ಇದು ನಿಮ್ಮ ಖಾತೆಯ ಸ್ಥಿತಿಯನ್ನು (account state) ಹಾಳುಮಾಡುತ್ತದೆ.

ಅವಧಿ ಮೀರಿದ ಲಾಕ್ (stale lock) ಎಂಬುದು ಅಳಿಸಬೇಕಾದ ಕೇವಲ ಒಂದು ಫೈಲ್ ಅಲ್ಲ. ಅದು ನಿಯಂತ್ರಿತ ಮರುಪಡೆಯುವಿಕೆಯ ಮಾರ್ಗ ಬೇಕಾದ ಒಂದು ಅಪೂರ್ಣ ಪ್ರಕ್ರಿಯೆಯಾಗಿದೆ.

ಲಾಕ್‌ಗಳನ್ನು ಕೇವಲ ಸರಳ ಫೈಲ್‌ಗಳೆಂದು ಪರಿಗಣಿಸುವುದನ್ನು ನಿಲ್ಲಿಸಿ. ಅವುಗಳನ್ನು ಲೀಸ್‌ಗಳಂತೆ (leases) ಪರಿಗಣಿಸಿ.

ಒಂದು ಸುರಕ್ಷಿತ ಲೀಸ್‌ಗೆ ಇವು ಬೇಕು:

  • ಒಬ್ಬ ಮಾಲೀಕ (An owner)
  • ಅವಧಿ ಮುಕ್ತಾಯದ ಸಮಯ (An expiry time)
  • ಹಾರ್ಟ್‌ಬೀಟ್ (A heartbeat)
  • ವರ್ಷನ್ ಸಂಖ್ಯೆ (fencing token)

ವರ್ಷನ್ ಸಂಖ್ಯೆಯು ಅತ್ಯಗತ್ಯ. ಪ್ರತಿಯೊಂದು ಬರೆಯುವಿಕೆಯು (write) ಇತ್ತೀಚಿನ ಟೋಕನ್ ಅನ್ನು ಒಳಗೊಂಡಿರಬೇಕು. ಹೊಸ ಕೆಲಸಗಾರನು ಜವಾಬ್ದಾರಿ ವಹಿಸಿಕೊಂಡ ನಂತರ ಹಳೆಯ ಕೆಲಸಗಾರನು ಹಿಂತಿರುಗಿದರೆ, ವ್ಯವಸ್ಥೆಯು ಹಳೆಯ ಟೋಕನ್ ಅನ್ನು ತಿರಸ್ಕರಿಸುತ್ತದೆ. ಇದು ಮೌನವಾಗಿ ಡೇಟಾ ಹಾಳಾಗುವುದನ್ನು ತಡೆಯುತ್ತದೆ.

ಲಾಕ್ ಆಗಿರುವ ಸ್ಥಿತಿಯಿಂದ ನೇರವಾಗಿ ಲಭ್ಯವಿರುವ (available) ಸ್ಥಿತಿಗೆ ಹೋಗಬೇಡಿ. ಈ ಹಂತಗಳ ಮೂಲಕ ಚಲಿಸಲು ಸ್ಟೇಟ್ ಮೆಷಿನ್ (state machine) ಬಳಸಿ:

  • Held
  • Suspected stale
  • Quarantined
  • Inspected
  • Available | Resume pending | Manual review

ಕ್ವಾರಂಟೈನ್ (quarantine) ಹಂತವು ನಿರ್ಣಾಯಕವಾಗಿದೆ. ನೀವು ತನಿಖೆ ನಡೆಸುವಾಗ ಎರಡನೇ ಕೆಲಸಗಾರನು ಪ್ರೊಫೈಲ್ ಅನ್ನು ಮುಟ್ಟದಂತೆ ಇದು ತಡೆಯುತ್ತದೆ.

ತನಿಖೆಯ ಸಮಯದಲ್ಲಿ, ನೀವು ಸಾಕ್ಷ್ಯಗಳನ್ನು ಸಂಗ್ರಹಿಸಬೇಕು:

  • ಬ್ರೌಸರ್ ಪ್ರಕ್ರಿಯೆಯು ಇನ್ನೂ ನಡೆಯುತ್ತಿತ್ತೇ?
  • ಕೊನೆಯ ತಿಳಿದಿದ್ದ URL ಯಾವುದು?
  • ಕಾರ್ಯವು ಚೆಕ್‌ಔಟ್ ಅಥವಾ ಸೆಟ್ಟಿಂಗ್ಸ್ ಬದಲಾವಣೆಗಳಂತಹ ಸೂಕ್ಷ್ಮ ಹಂತದಲ್ಲಿದೆಯೇ?
  • ವೈಫಲ್ಯದ ಸ್ಕ್ರೀನ್‌ಶಾಟ್ ಇದೆಯೇ?

ಒಂದು ಕಾರ್ಯವು ಸೂಕ್ಷ್ಮ ಕಾರ್ಯಾಚರಣೆಯ ಸಮಯದಲ್ಲಿ ನಿಂತರೆ, ಅದನ್ನು ಆಟೋ-ರೆಸ್ಯೂಮ್ ಮಾಡಬೇಡಿ. ಅದನ್ನು ಮ್ಯಾನುಯಲ್ ರಿವ್ಯೂಗೆ ಕಳುಹಿಸಿ. ತಪ್ಪು ನಿರ್ಧಾರಗಳನ್ನು ತಡೆಯಲು ಆಟೊಮೇಷನ್‌ಗೆ ಮಿತಿಗಳಿರಬೇಕು.

ತಪ್ಪಿಸಬೇಕಾದ ಸಾಮಾನ್ಯ ತಪ್ಪುಗಳು:

  • ಪ್ರೊಫೈಲ್ ಸುರಕ್ಷತೆಯನ್ನು ಪರಿಶೀಲಿಸದೆ ಲಾಕ್ ಅನ್ನು ಅಳಿಸುವುದು.
  • ಹಳೆಯ ಕೆಲಸಗಾರರಿಂದ ತಡವಾಗಿ ಬರುವ ಬರೆಯುವಿಕೆಗಳನ್ನು (writes) ತಿರಸ್ಕರಿಸಲು ಫೆನ್ಸಿಂಗ್ ಟೋಕನ್‌ಗಳನ್ನು ಬಳಸದಿರುವುದು.
  • ತಿಳಿದಿರುವ ಸುರಕ್ಷಿತ ಚೆಕ್‌ಪಾಯಿಂಟ್ ಇಲ್ಲದೆ ಫಾರ್ಮ್ ಸಬ್ಮಿಷನ್‌ಗಳನ್ನು ಮರುಪ್ರಯತ್ನಿಸುವುದು.
  • ಮರುಪಡೆಯುವಿಕೆಯ ಪ್ರಕ್ರಿಯೆಯ ಸಮಯದಲ್ಲಿ ಪ್ರೊಕ್ಸಿಗಳನ್ನು ಬದಲಾಯಿಸುವುದು.

ಮರುಪಡೆಯುವಿಕೆಯನ್ನು ಸಂಕೀರ್ಣಗೊಳಿಸುವುದು ಗುರಿಯಲ್ಲ. ಅದನ್ನು ಸ್ಪಷ್ಟಪಡಿಸುವುದು ಗುರಿಯಾಗಿದೆ.

ಲಾಕ್ ಎಂಬುದು ಕೇವಲ ಒಂದು ಲಕ್ಷಣವಷ್ಟೇ. ನಿಮ್ಮ ವ್ಯವಸ್ಥೆಯು ಆ ಲಾಕ್‌ನ ಹಿಂದಿರುವ ಖಾತೆಯ ಪರಿಸರವನ್ನು ರಕ್ಷಿಸಬೇಕು.

ಒಂದು ಪ್ರೊಫೈಲ್. ಒಬ್ಬ ಮಾಲೀಕನ ಲೀಸ್. ಒಂದು ಸಕ್ರಿಯ ಕಾರ್ಯ. ಒಂದು ಸಾಕ್ಷ್ಯದ ಪಥ. ಒಂದು ಮರುಪಡೆಯುವಿಕೆಯ ನಿರ್ಧಾರ.

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