Семантика межпроцессной синхронизации XFS - PullRequest
0 голосов
/ 16 апреля 2019

Я наблюдаю поведение в моем приложении, которое, кажется, сводится к семантике файловой системы. Во время разработки мы сделали предположение о файловой системе, которая, вероятно, не содержит:

File F created by process PC is visible to process PP after p1 has exited.

Вот пример выполнения, который нарушает предположение:

  1. PP разветвляется на ПК и ждет его завершения
  2. ПК выполняет некоторую обработку
  3. ПК создает файл F
  4. ПК завершает работу
  5. ПП просыпается в результате завершения работы ПК
  6. PP пытается прочитать F, но получает ошибку «файл не найден»
  7. (несколько минут спустя) Файл подтверждения F, введенный человеком, действительно существует

Я знаю, что это возможно в общем случае (хотя и маловероятно) файловые системы и операционная система не могут волшебным образом заставить все изменения происходить мгновенно.

Мой вопрос: возможно ли, чтобы это произошло именно с XFS в Linux 4.15.x? Или XFS предоставляет какую-то семантику, чтобы это было невозможно?

...