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


Присутствуют сообщения из эхоконференции RU.BINKD с датами от 14 Jul 13 17:53:22 до 25 Aug 24 19:42:02, всего сообщений: 1947
Ответить на сообщение К списку сообщений Предыдущее сообщение Следующее сообщение
= Сообщение: 1736 из 1947 ========================================= RU.BINKD =
От   : Pavel Gulchouck                  2:463/68           27 May 22 17:08:06
Кому : Nil A                                               27 May 22 17:08:06
Тема : .bsy файлы - кто будет вычищать?
FGHI : area://RU.BINKD?msgid=2:463/68+6290dfa4
На   : area://RU.BINKD?msgid=2:5015/46+628c5e44
= Кодировка сообщения определена как: CP866 ==================================
Ответ: area://RU.BINKD?msgid=2:5015/46+629116a1
==============================================================================
Hi Nil!

24 May 22, Nil A ==> Evgeny Chevtaev:

EC>> # Remove old .bsy/.csy files (If some are left after a system crash).
EC>> It would # be wise to set this to 12h on almost any system. (Note that
EC>> binkd always # touches .bsy's/.csy's for active sessions) # #
EC>> kill-old-bsy is OFF by default. # kill-old-bsy 12h

EC>> Это разве не оно? В binkd.conf параметр имеется, значит всё давно
EC>> придумано.

NA> Точно, почти оно. Только 12 часов залипания - это по сегодняшним меркам уже народ занервничает, хоть и фидо, хоть и "любительская сеть"
NA> ;-)
NA> А можно было бы и без времени сделать, если смотреть на PID внутри.
NA> Только вопрос, все ли туда PID пишут, но хаски и бинк пишут.

Софт должен ориентироваться на стандарт (в данном случае BSO), а не на фактическое поведение другого софта. Потому что поведение софта может меняться в пределах стандарта, софта может быть много разного, и это путь к граблям.
По стандарту BSO внутри bsy пида может не быть. И это естестенно, ведь трудно атомарно создать бзишку с пидом.

Кроме того, отсутствие процесса с прочитанным пидом не означает, что бзишку можно удалять. Ведь процесс, создавший бзишку, может быть на другом сервере (или на другой виртуалке - например, в докере) с другим пространством пидов. BSO на сетевом диске, мейлер и тоссер на разных компах - не такая уж редкая конфигурация.

И кроме того, между событиями "прочитали пид из бзишки" и "удалили бзишку" могут быть другие события - например:
- мы прочитали пид из бзишки;
- процесс, установивший бзишку, успешно завершился, удалив за собой эту бзишку;
- мы проверили существование процесса с указанным pid - его нет, считаем бзишку залипшей;
- новый процесс запустился и установил свою бзищку на этот же адрес;
- мы удалили эту новую бзишку и начали что-то делать с почтой параллельно с новым процессом.

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

Было бы хорошо лочить бзишку на время сессии. Это можно сделать аккуратно и правильно почти на всех системах, но нужна гарантия, что так себя ведёт весь используемый софт, т.е. это получится уже не BSO, а немного другой тип outbound. В нынешних условиях вряд ли реально.

В каком-то софте вместо бзишек использовались named mutex semaphores (TheBrake! Mailer, если не ошибаюсь). Интересно, но не взлетело.

NA> Стоп, а что они туда пишут под виндой? ;-)

              Lucky carrier,
                           Паша
                           aka  gul@gul.kiev.ua
--- GoldED+/LNX 1.1.5-b20160827
* Origin: printf("%s", "How can I increase performance?\n"); (2:463/68)

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