= Сообщение: 4498 из 5321 ========================================= RU.HUSKY = От : Nil A 2:5015/46 23 Jul 21 20:07:46 Кому : Rinat H. Sadretdinow 23 Jul 21 20:07:46 Тема : Как husky (hpt) относится к самому себе, но в параллельной сессии? FGHI : area://RU.HUSKY?msgid=2:5015/46+60faf791 На : area://RU.HUSKY?msgid=2:5020/620+60fa93ec = Кодировка сообщения определена как: CP866 ================================== Ответ: area://RU.HUSKY?msgid=2:5020/620+60fbadce ============================================================================== Hello, Rinat!
Friday July 23 2021 12:43, from Rinat H. Sadretdinow -> All:
RS> $Subj. Вопрос путанный, поэтому объясню/спрошу на пальцах.
Не буду квотить все твои коммандочки и конфиги тут, а раскажу про разные лок-файлы, видимо в этом вопрос.
LockFile [FidoSysDir]\flag\hpt-lock С помощью данного лок-файла гарантируется, что будет запущена только одна копия хаски бинаря, а это может быть hpt, sqpack и пр. Это к вопросу, что будет, если запускать тосс и упаковку из разных мест - прямо из бинка с помощью директивы exec, через systemd, через crontab. Одновременно будет работать только один хаски-процесс.
Далее, про механизм блокировок между тоссером и мейлером. Директива exec в конфиге бинка позволяет начать тоссинг прямо пока ещё мы не разорвали сессию с линком. Тут может пробежать запрос на Areafix, например, и мы его даже сможем обработать, НО запаковать на тот линк, с которым у нас вот прямо сейчас связь мы не можем, потому что есть лок-файл в outboud. Здесь работает точечная бокировка на конкретного линка. Это позволяет иметь зоопарк тоссеров и трекеров одновременно, да ещё и зoопарк мейлеров и binkd, и qico, и каких хочешь.
Далее, про механизм блокировок между тоссером и читалкой. Каждый формат фидобазы поддерживает тот или иной механизм блокировки. Например, в JAM надо системным вызовом залочить на запись первый байт в файле .jhr. Блокировка держится только на момент изменения базы. Голдед, например, в некоторых ситуациях не перечитывает заголовки базы, а т.к. параллельно там тоссер что-то делал с базой, то голдед может упасть на отсутствующем сообщении. Например, написали нетмейл к AreaFix с флагом KillSent, и параллельно вызвался hpt pack, который стёр сообщение, и голдед, ожидая увидеть своё же сообщение, тут и падает. Так или иначе, базы не портятся, потому что на время модификаций держится лок.
Best Regards, Nil --- GoldED+/LNX 1.1.5 * Origin: Linux 2.6.32-042stab145.3 (2:5015/46)