#1
|
|||
|
|||
.bsy файлы - кто будет вычищать?
Nil A написал(а) к All в May 22 23:55:30 по местному времени:
* Originally in ru.husky * Crossposted in ru.binkd Нello, All! Пишу сразу в husky и binkd, ибо проблема как раз в этой паре - никто не вычищает эти бизи файлики. Сценарий такой, стартует бинк, и что-то идёт не так, например, на малютке заканчивается память (не по вине бинка), или кто-то экспериментальную версию запускает и оно крашится. Далее приходит хаски и не может ничего затоссить на этот линк, потому что он сейчас занят. Приходит бинк и не может позвонить на этот линк, потому что он уже занят. При этом внутри файлика есть PID, и кто-то из этих двоих, либо бинк, либо хаски, или оба, могли бы глянуть на актуальность блокировки. Best Regards, Nil --- GoldED+/LNX 1.1.5 |
#2
|
|||
|
|||
.bsy файлы - кто будет вычищать?
Evgeny Chevtaev написал(а) к Nil A в May 22 08:04:02 по местному времени:
Нi Nil! Monday May 23 2022 23:55, Nil A wrote to All: NA> Пишу сразу в husky и binkd, ибо проблема как раз в этой паре - никто NA> не вычищает эти бизи файлики. NA> Сценарий такой, стартует бинк, и что-то идёт не так, например, на NA> малютке заканчивается память (не по вине бинка), или кто-то NA> экспериментальную версию запускает и оно крашится. Далее приходит NA> хаски и не может ничего затоссить на этот линк, потому что он сейчас NA> занят. Приходит бинк и не может позвонить на этот линк, потому что он NA> уже занят. При этом внутри файлика есть PID, и кто-то из этих двоих, NA> либо бинк, либо хаски, или оба, могли бы глянуть на актуальность NA> блокировки. # Remove old .bsy/.csy files (If some are left after a system crash). It would # be wise to set this to 12h on almost any system. (Note that binkd always # touches .bsy's/.csy's for active sessions) # # kill-old-bsy is OFF by default. # kill-old-bsy 12h Это разве не оно? В binkd.conf параметр имеется, значит всё давно придумано. With best regards, Evgeny --- GoldED+/BSD 1.1.5-b20220504 |
#3
|
|||
|
|||
.bsy файлы - кто будет вычищать?
Nil A написал(а) к Evgeny Chevtaev в May 22 07:23:44 по местному времени:
Нello, Evgeny! Tuesday May 24 2022 08:04, from Evgeny Chevtaev -> Nil A: 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> придумано. Точно, почти оно. Только 12 часов залипания - это по сегодняшним меркам уже народ занервничает, хоть и фидо, хоть и "любительская сеть" ;-) А можно было бы и без времени сделать, если смотреть на PID внутри. Только вопрос, все ли туда PID пишут, но хаски и бинк пишут. Стоп, а что они туда пишут под виндой? ;-) Best Regards, Nil --- GoldED+/LNX 1.1.5 |
#4
|
|||
|
|||
.bsy файлы - кто будет вычищать?
Evgeny Chevtaev написал(а) к Nil A в May 22 09:27:30 по местному времени:
Нi Nil! Tuesday May 24 2022 07:23, Nil A wrote to Evgeny Chevtaev: EC>> Это разве не оно? В binkd.conf параметр имеется, значит всё давно EC>> придумано. NA> Точно, почти оно. Только 12 часов залипания - это по сегодняшним NA> меркам уже народ занервничает, хоть и фидо, хоть и "любительская сеть" У меня стоит 1h, но я не уверен, что оно когда-либо использовалось. Все сессии по паре секунд и за это время ничего сломаться не успевает. NA> А можно было бы и без времени сделать, если смотреть на PID NA> внутри. Только вопрос, все ли туда PID пишут, но хаски и бинк пишут. NA> Стоп, а что они туда пишут под виндой? ;-) Я не могу сказать, что конкретно они туда пишут, но не хочешь ли ты сказать, что под виндой у процессов нет идентификатора? Всё как положено - tasklist в руки и всё видно. With best regards, Evgeny --- GoldED+/BSD 1.1.5-b20220504 |
#5
|
|||
|
|||
.bsy файлы - кто будет вычищать?
Pavel Gulchouck написал(а) к Nil A в May 22 17:08:06 по местному времени:
Нi 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 |
#6
|
|||
|
|||
.bsy файлы - кто будет вычищать?
Nil A написал(а) к Pavel Gulchouck в May 22 21:09:24 по местному времени:
Нello, Pavel! Friday May 27 2022 17:08, from Pavel Gulchouck -> Nil A: PG> Софт должен ориентироваться на стандарт (в данном случае BSO), а не на PG> фактическое поведение другого софта. [...skipped...] Курим spec, самодеятельность не приветствуется. PG> Ведь процесс, создавший бзишку, может быть на другом сервере (или на PG> другой виртуалке - например, в докере) с другим пространством пидов. PG> BSO на сетевом диске, мейлер и тоссер на разных компах - не такая уж PG> редкая конфигурация. [...skipped...] Вот реально объяснил, спасибо большое. Я прям почувствовал себя джуниором на кодревью :-) PG> И кроме того, между событиями "прочитали пид из бзишки" и "удалили PG> бзишку" могут быть другие события - например: TOCTOU (Time-of-check to time-of-use). Best Regards, Nil --- GoldED+/LNX 1.1.5 |