personium / personium-core

Core module of Personium
https://personium.io
Apache License 2.0
88 stars 16 forks source link

When multiple accesses to the same Box occurred, 500 Errors occurred #28

Closed SawamiWataru closed 7 years ago

SawamiWataru commented 7 years ago

When multiple accesses to the same Box occurred, 500 Errors occurred.

PR500-DV-0002: Dav system inconsistency detected.

SawamiWataru commented 7 years ago

Personium behavior

Cause

The phenomenon is reproduced when executing API which accesses under Box at the same time after creating Box.

Assume that API to be executed concurrently is [API-1] [API-2]. A phenomenon occurs when the following processing order is reached.

  1. [API-1] Determine presence / absence of Box directory (Box directory does not exist)
  2. [API-1] Create Box directory
  3. [API-2] Determine presence / absence of Box directory (Box directory exists)
  4. [API-2] Obtain .pmeta file (error occurred because .pmeta file does not exist)
  5. [API-1] Create .pmeta file
hideakikondo commented 7 years ago

Solved in v1.5.2