Size: a a a

2020 May 12

DL

Dmitry Luhtionov in freebsd_ru
error:
   tap_cleanup(be);
   return (-1);
тут как бы надо послать ей NGM_SHUTDOWN
источник

p

pragus in freebsd_ru
Alexander Fedorov
Да, но он предлагал уже тогда интересные вещи
ну если говорить про reiser3, то там вся фс была под одним мьютексом.
источник

p

pragus in freebsd_ru
Lev Serebryakov
init плох тем, что как и все стартовые системы тех лет, считает что сервер — это нечто отлитое из чугуна и никогда не меняющееся.
Для современных виртуалок, скажем, это и не плохо — они и правда все одинаковые.
А для ноутбуков вот — очень неудобно. devd и прочие automountd слегка помогают, но было бы лучше, если бы задачу поддержания системы в актуальном окружению (какие устройства воткнуты именно в данный момент, к какой сети подключены, и так далее) состоянии занималось одно централизованное место.
Плюс более развесистая работа с демонами: деревья зависимостей демонов, например. Да, у нас в rc.d скриптах есть зависимость вида «запустить вот то если нас запускают» — но  всё. Если «нас» остановить, то «вон то» само не остановится. Плюс по дефолту нет проверки начтоящей живости демона. Не то что этого, нет даже мониторинга, что он вообще ещё запущен.
Да, опять же, можно накручивать всякие daemontools и прочие мониторилки — конечно же их на systemd изобрёл — но хотелось бы централизованно, из коробки и, опять же, с увязкой на изменение (аппратной) среды.
Такое.
еще квоты и вещи вроде PrivateTmp
источник

AF

Alexander Fedorov in freebsd_ru
Dmitry Luhtionov
error:
   tap_cleanup(be);
   return (-1);
тут как бы надо послать ей NGM_SHUTDOWN
Она должна сама умереть если не удалось сокет открыть. По ошибкам да, я бы предпочёл прикидывать, на что мне указали что нафиг.
источник

DL

Dmitry Luhtionov in freebsd_ru
дальше
источник

AF

Alexander Fedorov in freebsd_ru
?
источник

DL

Dmitry Luhtionov in freebsd_ru
msbsz = sizeof(maxsbsz);
 if (sysctlbyname("kern.ipc.maxsockbuf", &maxsbsz, &msbsz,
   NULL, 0) < 0) {
   WPRINTF(("can't get 'kern.ipc.maxsockbuf' value"));
   goto error;
 }
источник

DL

Dmitry Luhtionov in freebsd_ru
вот тут нода уже создана
источник

DL

Dmitry Luhtionov in freebsd_ru
и идем на "error"
источник

DL

Dmitry Luhtionov in freebsd_ru
а нода остается
источник

DL

Dmitry Luhtionov in freebsd_ru
там аж 6 таких мест
источник

AF

Alexander Fedorov in freebsd_ru
Ну так я закрываю сокет
источник

DL

Dmitry Luhtionov in freebsd_ru
перед
tap_cleanup(be)
проверяй be->fd на "-1"
и если не равно - прибивай ноду
источник

AF

Alexander Fedorov in freebsd_ru
Так оно делает close на fd сокета, не?
источник

AF

Alexander Fedorov in freebsd_ru
Значит года умрет
источник

AF

Alexander Fedorov in freebsd_ru
*нода
источник

DL

Dmitry Luhtionov in freebsd_ru
вроде да
источник

AF

Alexander Fedorov in freebsd_ru
Блин, напиши прям в ревью. Я поправлю если что.
источник

AF

Andrey F in freebsd_ru
источник

AF

Andrey F in freebsd_ru
панеслась
источник