forum.wfido.ru  

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

Ответ
 
Опции темы Опции просмотра
  #1  
Старый 23.07.2021, 14:14
Rinat H. Sadretdinow
Guest
 
Сообщений: n/a
По умолчанию Как husky (hpt) относится к самому себе, но в параллельной сессии?

Rinat H. Sadretdinow написал(а) к All в Jul 21 12:43:32 по местному времени:

Нello All!

$Subj. Вопрос путанный, поэтому объясню/спрошу на пальцах. Вот после прихода почты binkd запускает у меня это:

~~~
exec "nice -n 19 /usr/bin/hpt toss link" /var/lib/fido/inbound-secure/.[STFWMstfwm][ouaherOUAНER][0-9A-Za-z] .[pP][kK][tT]
~~~

Это в процессе [если было нетмыло/запросы от AreaFix] создаёт это:

~~~
# create flag after unpacking netmail msg
NetmailFlag [FidoSysDir]/flag/hpt-mail
~~~

За этим флагом у меня следят вот такие три юнита:

==== Begin "hpt-mail-watcher.path" ====
[Unit]
Description=Queries whether hpt-mail exists
Wants=hpt-mail-watcher.service

[Path]
PathExists=/var/lib/fido/flag/hpt-mail

[Install]
WantedBy=multi-user.target
==== End "hpt-mail-watcher.path" ====

==== Begin "hpt-mail-watcher.service" ====
[Unit]
Description=hpt-mail service restarter
Wants=hpt-mail-watcher.path

[Service]
Type=oneshot
ExecStart=/usr/bin/systemctl restart hpt-mail.service

[Install]
WantedBy=multi-user.target
==== End "hpt-mail-watcher.service" ====

==== Begin "hpt-mail.service" ====
[Unit]
Description=Packs FIDO netmail

[Service]
Type=oneshot
ExecStart=/usr/bin/hpt pack
ExecStart=rm /var/lib/fido/flag/hpt-mail
User=fido
Group=fido

[Install]
WantedBy=multi-user.target
==== End "hpt-mail.service" ====

Теперь вопрос. Если чисто случайно одновременно systemd запустит `hpt toss link`, а binkd в соседней сесии запустит `hpt pack`, то эти два одновременно работающие hpt не передерутся из-за базы, не испортят её? Лезть в исходники hpt и смотреть как там открывается и шарится база лениво, обкладыватсья всякими нелепыми флагами (это всё же не DOS) и вообще переходить на допотопный башизм при наличии нормальной и человеческой системы для людей, такой как systemd (всё же сейчас XXI-й век, а не эпоха мезозоя, так что всякие скрипты в духе SysV продолжают гнить на помойке, где им давно уже самое место), не хочется ещё больше. Итак $Subj?

Bye!

--- GoldED+/LNX 1.1.5-b20180707
Ответить с цитированием
  #2  
Старый 23.07.2021, 21:13
Nil A
Guest
 
Сообщений: n/a
По умолчанию Как husky (hpt) относится к самому себе, но в параллельной сессии?

Nil A написал(а) к Rinat H. Sadretdinow в Jul 21 20:07:46 по местному времени:

Нello, Rinat!

Friday July 23 2021 12:43, from Rinat Н. 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
Ответить с цитированием
  #3  
Старый 24.07.2021, 08:32
Alexey Vissarionov
Guest
 
Сообщений: n/a
По умолчанию Как husky (hpt) относится к самому себе, но в параллельной сессии?

Alexey Vissarionov написал(а) к Rinat H. Sadretdinow в Jul 21 07:07:00 по местному времени:

Доброго времени суток, Rinat!
23 Jul 2021 12:43:32, ты -> All:

RНS> $Subj. Вопрос путанный, поэтому объясню/спрошу на пальцах. Вот после
RНS> прихода почты binkd запускает у меня это:
RНS> exec "nice -n 19 /usr/bin/hpt toss link"
RНS> /var/lib/fido/inbound-secure/*.[STFWMstfwm][ouaherOUAНER][0-9A-Za-z]
RНS> *.[pP][kK][tT]

А зачем?

RНS> Это в процессе [если было нетмыло/запросы от AreaFix] создаёт это:
RНS> # create flag after unpacking netmail msg
RНS> NetmailFlag [FidoSysDir]/flag/hpt-mail

Аналогичный вопрос.

RНS> За этим флагом у меня следят вот такие три юнита

И здесь тот же вопрос.

RНS> Теперь вопрос. Если чисто случайно одновременно systemd запустит
RНS> `hpt toss link`, а binkd в соседней сесии запустит `hpt pack`, то

... у админа руки из жопы. И вместо головы тоже жопа, если он systemd использует.

RНS> эти два одновременно работающие hpt не передерутся из-за базы, не
RНS> испортят её?

Передерутся, хотя и не испортят. В клиническом случае - до ухода системы в полный разнос.

RНS> Лезть в исходники hpt и смотреть как там открывается и шарится база
RНS> лениво, обкладыватсья всякими нелепыми флагами (это всё же не DOS)

А как же вышепроцитированная строчка с NetmailFlag?

RНS> и вообще переходить на допотопный башизм при наличии нормальной и
RНS> человеческой системы для людей, такой как systemd

Оно не для людей - оно для иноприлетян.

RНS> Итак $Subj?

Используешь systemd - страдай. Вносишь изменения в систему помимо установки пакетов (а эхотаг, равно как и binkd с golded, давно обучены работать из-под непривилегированного пользователя, у которого не было, нет и не предвидится доступа к администрированию) - тем более страдай.


--
Alexey V. Vissarionov aka Gremlin from Kremlin
gremlin ПРИ gremlin ТЧК ru; +vii-cmiii-ccxxix-lxxix-xlii

... Кто не боится синего экрана - не должен бояться и черного
--- /bin/vi
Ответить с цитированием
  #4  
Старый 24.07.2021, 10:24
Rinat H. Sadretdinow
Guest
 
Сообщений: n/a
По умолчанию Как husky (hpt) относится к самому себе, но в параллельной сессии?

Rinat H. Sadretdinow написал(а) к Nil A в Jul 21 09:05:28 по местному времени:

Нello Nil!

23 Jul 21 20:07, you wrote to me:

RS>> $Subj. Вопрос путанный, поэтому объясню/спрошу на пальцах.

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

NA> LockFile [FidoSysDir]\flag\hpt-lock
NA> С помощью данного лок-файла гарантируется, что будет запущена только
NA> одна копия хаски бинаря

Всё. Это именно то, чего я и хотел узнать.

Bye!

--- GoldED+/LNX 1.1.5-b20180707
Ответить с цитированием
  #5  
Старый 24.07.2021, 10:24
Rinat H. Sadretdinow
Guest
 
Сообщений: n/a
По умолчанию Как husky (hpt) относится к самому себе, но в параллельной сессии?

Rinat H. Sadretdinow написал(а) к Alexey Vissarionov в Jul 21 09:06:08 по местному времени:

Нello Alexey!

24 Jul 21 07:07, you wrote to me:

RНS>> $Subj. Вопрос путанный, поэтому объясню/спрошу на пальцах. Вот
RНS>> после прихода почты binkd запускает у меня это: exec "nice -n 19
RНS>> /usr/bin/hpt toss link"
RНS>> /var/lib/fido/inbound-secure/*.[STFWMstfwm][ouaherOUAНER][0-9A-Z
RНS>> a-z] *.[pP][kK][tT]

AV> А зачем?

Чтобы binkd сам запускал тоссер когда посчитает нужным.

RНS>> Это в процессе [если было нетмыло/запросы от AreaFix] создаёт
RНS>> это: # create flag after unpacking netmail msg NetmailFlag
RНS>> [FidoSysDir]/flag/hpt-mail

AV> Аналогичный вопрос.

Ну это уже от НPT зависит.

RНS>> За этим флагом у меня следят вот такие три юнита

AV> И здесь тот же вопрос.

А чем ещё следить? inotifywait/inotifywatch? И городить при этом кучу башевских соплей? Если есть стандартная системная тулза для этого -- systemd.path

RНS>> Теперь вопрос. Если чисто случайно одновременно systemd
RНS>> запустит `hpt toss link`, а binkd в соседней сесии запустит `hpt
RНS>> pack`, то

AV> ... у админа руки из жопы. И вместо головы тоже жопа, если он systemd
AV> использует.

Ну твоё отношение к systemd все знают ;-) А мне вот systemd нравится, гораздо меньше геморроя чем с SysV и всё гораздо более логично..

RНS>> Лезть в исходники hpt и смотреть как там открывается и шарится
RНS>> база лениво, обкладыватсья всякими нелепыми флагами (это всё же
RНS>> не DOS)

AV> А как же вышепроцитированная строчка с NetmailFlag?

Это делает код из НPT.

RНS>> и вообще переходить на допотопный башизм при наличии нормальной
RНS>> и человеческой системы для людей, такой как systemd

AV> Оно не для людей - оно для иноприлетян.

Хорошо, я иноприлетянин. И рептилоид. И боевой робот.

RНS>> Итак $Subj?

AV> Используешь systemd - страдай.

Нет. Как раз таки systemd убирает страдания по сравнению с SysV.

AV> Вносишь изменения в систему помимо установки пакетов (а эхотаг, равно
AV> как и binkd с golded, давно обучены работать из-под
AV> непривилегированного пользователя, у которого не было,
AV> нет и не предвидится доступа к администрированию) - тем более страдай.

Нода не должна работать из-под непривелигированного пользователя, она должна быть полностью системная, как какой-нибудь nginx. Это моё мнение такое. Вот пойнт да.

Bye!

--- GoldED+/LNX 1.1.5-b20180707
Ответить с цитированием
  #6  
Старый 24.07.2021, 11:12
Rinat H. Sadretdinow
Guest
 
Сообщений: n/a
По умолчанию Как husky (hpt) относится к самому себе, но в параллельной сессии?

Rinat H. Sadretdinow написал(а) к Alexey Vissarionov в Jul 21 09:55:52 по местному времени:

Нello Alexey!

24 Jul 21 09:06, I wrote to you:

AV>> Вносишь изменения в систему помимо установки пакетов (а эхотаг,
AV>> равно как и binkd с golded, давно обучены работать из-под
AV>> непривилегированного пользователя, у которого не было, нет и не
AV>> предвидится доступа к администрированию) - тем более страдай.

RS> Нода не должна работать из-под непривелигированного пользователя, она
RS> должна быть полностью системная, как какой-нибудь nginx. Это моё
RS> мнение такое. Вот пойнт да.

И да, сервисы systemd в директории ~/.config/systemd/users никто не отменял, в данном случае они прекрасно запускаются из-под непривилигированного, но залогиненного пользователя и не требуется делать никаких изменений в систему помимо установки пакетов, все изменения делаются локально, в $НOME.

Bye!

--- GoldED+/LNX 1.1.5-b20180707
Ответить с цитированием
  #7  
Старый 24.07.2021, 15:24
Michael Dukelsky
Guest
 
Сообщений: n/a
По умолчанию Как husky (hpt) относится к самому себе, но в параллельной сессии?

Michael Dukelsky написал(а) к Rinat H. Sadretdinow в Jul 21 14:19:20 по местному времени:

Привет, Rinat!

24 July 2021 09:05, Rinat Н. Sadretdinow послал(а) письмо к Nil A:

RS>>> $Subj. Вопрос путанный, поэтому объясню/спрошу на пальцах.

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

NA>> LockFile [FidoSysDir]\flag\hpt-lock
NA>> С помощью данного лок-файла гарантируется, что будет запущена
NA>> только одна копия хаски бинаря

RS> Всё. Это именно то, чего я и хотел узнать.

Надеюсь, что ты всё-таки заглянул в руководство на тему LockFile и увидел, что важен ещё и AdvisoryLock.

Желаю успехов, Rinat!
За сим откланиваюсь, Michael.

... node (at) f1042 (dot) ru
--- GoldED+/LNX 1.1.5-b20180707
Ответить с цитированием
  #8  
Старый 24.07.2021, 15:52
Rinat H. Sadretdinow
Guest
 
Сообщений: n/a
По умолчанию Как husky (hpt) относится к самому себе, но в параллельной сессии?

Rinat H. Sadretdinow написал(а) к Michael Dukelsky в Jul 21 14:41:30 по местному времени:

Нello Michael!

24 Jul 21 14:19, you wrote to me:

MD> Надеюсь, что ты всё-таки заглянул в руководство на тему LockFile и
MD> увидел, что важен ещё и AdvisoryLock.

Да, посмотрел сразу же всё, что касается локов. AdvisoryLock у меня 10, как в дистрибутиве, не менял вообще.

Bye!

--- GoldED+/LNX 1.1.5-b20180707
Ответить с цитированием
Ответ

Опции темы
Опции просмотра

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

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

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


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


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