LINUX.ORG.RU

История изменений

Исправление firkax, (текущая версия) :

Зачем хранить локфайл в облачном хранилище? Ему самое место в tmpfs.

«pid lock» тем и хорош что использует две атомарные операции: отдельно запись и отдельно чтение, поэтому все готово к сетевым сбоям в процессе работы.

И это очень плохо, нужно чтобы была одна атомарная операция «проверить занятость и захватить если не занято». Без flock это можно через просто создание файла с O_CREAT|O_EXCL, но такой способ страдает от упавшего демона, файл он при этом не удалит (и придётся делать всю эту возню со сравнением pid-ов, которая тоже уязвима в race condition в итоге, хотя и в маловероятном сценарии), а вот лок снимется сам.

Исправление firkax, :

Зачем хранить локфайл в облачном хранилище? Ему самое место в tmpfs.

«pid lock» тем и хорош что использует две атомарные операции: отдельно запись и отдельно чтение, поэтому все готово к сетевым сбоям в процессе работы.

И это очень плохо, нужно чтобы была одна атомарная операция «проверить занятость и захватить если не занято». Без flock это можно через просто создание файла с O_CREAT|O_EXCL, но такой способ страдает от упавшего демона, файл он при этом не удалит (и придётся делать всю эту возню со сравнением pid-ов, которая тоже уязвима в race condition в итоге, хотя и в маловероятном сценарии), в вот лок снимется сам.

Исправление firkax, :

Зачем хранить локфайл в облачном хранилище? Ему самое место в tmpfs.

«pid lock» тем и хорош что использует две атомарные операции: отдельно запись и отдельно чтение, поэтому все готово к сетевым сбоям в процессе работы.

И это очень плохо, нужно чтобы была одна атомарная операция «проверить занятость и захватить если не занято». Без flock это можно через просто создание файла с O_CREAT|O_EXCL, но такой способ страдает от упавшего демона, файл он при этом не удалит (и придётся делать всю эту возню со сравнением pid-ов), в вот лок снимется сам.

Исходная версия firkax, :

Зачем хранить локфайл в облачном хранилище? Ему самое место в tmpfs.