It&#x27;s not really &quot;fundamental&quot;. It&#x27;s simply that the process that acquires the lock can fail (or be paused, or partitioned away from everything else, etc), and if it does, but then comes back later with a valid lock, bad things may happen.<p>The author&#x27;s solution is to push serialization logic into the resource&#x2F;storage layer (by checking fencing tokens). But what if the resource <i>is itself distributed</i>? Then it needs it&#x27;s own synchronization mechanism? It&#x27;s locks all the way down.