forum.wfido.ru  

Вернуться   forum.wfido.ru > Прочие эхи > RU.BINKD

Ответ
 
Опции темы Опции просмотра
  #1  
Старый 24.05.2022, 01:02
Nil A
Guest
 
Сообщений: n/a
По умолчанию .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  
Старый 24.05.2022, 07:12
Evgeny Chevtaev
Guest
 
Сообщений: n/a
По умолчанию .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  
Старый 24.05.2022, 08:32
Nil A
Guest
 
Сообщений: n/a
По умолчанию .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  
Старый 25.05.2022, 08:42
Evgeny Chevtaev
Guest
 
Сообщений: n/a
По умолчанию .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  
Старый 27.05.2022, 18:42
Pavel Gulchouck
Guest
 
Сообщений: n/a
По умолчанию .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  
Старый 27.05.2022, 22:32
Nil A
Guest
 
Сообщений: n/a
По умолчанию .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
Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 12:01. Часовой пояс GMT +4.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc. Перевод: zCarot