Добро пожаловать, Гость. Пожалуйста авторизуйтесь здесь.
FGHIGate на GaNJa NeTWoRK ST@Ti0N - Просмотр сообщения в эхоконференции RU.FTN.DEVELOP
Введите FGHI ссылку:


Присутствуют сообщения из эхоконференции RU.FTN.DEVELOP с датами от 12 Jul 13 20:52:30 до 18 Oct 24 22:48:06, всего сообщений: 2735
Ответить на сообщение К списку сообщений Предыдущее сообщение Следующее сообщение
= Сообщение: 2173 из 2735 =================================== RU.FTN.DEVELOP =
От   : Alexey Khromov                   2:5030/723         02 Jun 23 19:18:10
Кому : Nil A                                               02 Jun 23 19:18:10
Тема : TOCTOU
FGHI : area://RU.FTN.DEVELOP?msgid=2:5030/723+647a18ec
На   : area://RU.FTN.DEVELOP?msgid=2:5015/46+647a09f3
= Кодировка сообщения определена как: CP866 ==================================
Ответ: area://RU.FTN.DEVELOP?msgid=2:5015/46+647a2066
==============================================================================
Здраствуйте, Nil!

02 июн 23 18:15, Nil A -> Semen Panevin:

NA> Пуржилка хватает лок на базу при своей работе, т.е. если в этот момент
NA> голдед бы держал лок, то пуржилка бы ждала. Но не комельфо всю дорогу
NA> держать лок на базу, поэтому голдед делает всё правильно, он открыл
NA> файлы баз, читает из них, а когда надо записать, он коротко берёт лок.

Редактор и тоссер не должны быть взаимозависимы - представь вместо голдеда штатный (для husky) msged.

NA> Сейчас проблема в юниксовом  голдеде (линукс, фрибсд, макось, ..) в
NA> том, что он берёт лок на базу удачно, записывает сообщение, но потом
NA> оказывается, что это уже было на удалённом файле.

K.I.S.S.
База сообщений - это территория редактора. А возможно, еще и BBS. В любом случае, ЧМИ (для чтения хомосапиенсами).
Тоссер должен быть адаптирован (и он адаптирован, флагами), к наименее конфликтной работе.
Пуржилка относится к инструментам обслуживания. А обслуживаение - это зона повышенного внимания сисопа/админа/босса качалки. Так что сисопу и городить проверку на занятость базы оконечным сапиенсом.

NA> Моё предложение - голдед хватает лок, далее делает fstat() на этот
NA> открытый файл, проверяет поле st_nlink, и если там ноль, значит этот
NA> файл уже стёрли, значит надо переоткрыть файл. При этом тут TOCTOU не
NA> проиходит, потому что сначала успешно схвачен лок, а потом уже
NA> спокойно проверяется, не стёрт ли файл.

Голдеду достаточно в данном случае поставить лок - никто их husky базы не тронет. Но тут другая проблема - пока у тебя открыт голдед, тоссер (и пуржилка, и весь комплект) будет отваливаться "до лучших времен". А сейчас ты можешь заресканить измененную тоссером базу. Пр

Alexey Khromov
--- GoldED+/LNX 1.1.5-b20230304
* Origin:  - Вы в опасности! Вы окружены роботами! -  (2:5030/723)

К главной странице гейта
Powered by NoSFeRaTU`s FGHIGate
Открытие страницы: 0.149769 секунды