期限切れのブラウザプロファイルロックの復旧

ブラウザプロファイルのロックは、2つのワーカーが同時に同じアカウントを開くのを防ぎます。

多くのシステムは、ワーカーがクラッシュしたりネットワークが切断されたりした際に失敗します。それらは古いロックを検出し、それを削除して新しいワーカーに引き継がせます。これによりキューは進みますが、アカウントの状態が破損してしまいます。

期限切れのロックは、単に削除すべきファイルではありません。それは、制御された復旧パスを必要とする「未完了の操作」なのです。

ロックを単なるフラグとして扱わないでください。真の価値はブラウザプロファイル、つまりクッキー、ローカルストレージ、セッション履歴にあります。

復旧にはステートマシンを使用してください:

• 保持中 (Held) • 期限切れの疑いあり (Suspected stale) • 隔離中 (Quarantined) • 検査済み (Inspected) • 利用可能 (Available) | 再開保留中 (Resume pending) | 手動レビュー (Manual review)

「隔離(Quarantine)」状態は極めて重要です。調査中に2番目のワーカーが割り込んでくるのを防ぎます。

フェンシングトークンを用いたリースモデルを使用する必要があります。すべての書き込みにはバージョン番号を含めなければなりません。新しいワーカーが引き継いだ後に古いワーカーが復帰した場合、システムはその古いトークンを拒否する必要があります。これにより、サイレントなデータ破損を防ぐことができます。

期限切れのロックの一般的な原因:

  • ワーカープロセスのクラッシュ
  • ホストの再起動
  • ジョブの実行時間超過
  • ハートビートの停止
  • ネットワーク分断

期限切れのロックがあるからといって、プロファイルが安全であるとは限りません。ワーカーは停止しているように見えても、ネットワーク遅延の背後でまだ動作している可能性があります。

プロファイルを再利用する前に、以下の証拠を収集する必要があります:

  • 最後に確認されたURL
  • 最後に確認されたステップ
  • 最後のスクリーンショット
  • プロキシID
  • プロファイルディレクトリの状態

チェックアウトやパスワード変更などの機密性の高いアクションの途中でタスクが停止した場合は、自動再開しないでください。手動レビューに回してください。

復旧における4つの安全な結果:

  1. 利用可能 (Available): タスクが開始されていなかった場合、またはアカウントデータに触れる前に失敗した場合はこれを使用します。
  2. 再開保留中 (Resume pending): タスクに明確で安全なチェックポイントがある場合はこれを使用します。
  3. リトライ (Retry): プロファイルは安全だが、タスクを最初からやり直す必要がある場合はこれを使用します。
  4. 手動レビュー (Manual review): 状態が曖昧、または機密性が高い場合はこれを使用します。

近道をするのはやめましょう。セッションを修正するためにプロファイルディレクトリを削除したり、クッキーを消去したりしないでください。これらの行為はアカウントのコンテキストを損ないます。

安全なシステムは、以下のルールに従います:

  • 1つのプロファイル
  • 1つの所有者リース
  • 1つのアクティブなタスク
  • 1つの証拠の記録
  • 1つの復旧決定

ロックは単なる症状に過ぎません。あなたの仕事は、その背後にあるアカウント環境を保護することです。

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