После обновления до 4.3.3-alt4 перестаёт отвечать на запросы. Откат до alt3 сразу лечит это поведение. Запускается при этом нормально, конфигурация самая простая. Аналогично сломано и в p8, где было и поймано.
Запускается нормально, но не выходит.
Да, ещё и не выходит. На системах с SysVInit запускается, но не отвечает на запросы. При этом завершает свою работу нормально. На системах с systemd - запускается и работает, но на SIGTERM не реагирует. если просто из консоли запустить как dhcpd -d на sysvinit запускается и работает
Разница в том, что на sysvinit не используется опция -f
[root@stlk system]# systemctl start dhcpd [root@stlk system]# netstat -nap | grep :67 udp 0 0 0.0.0.0:67 0.0.0.0:* 6820/dhcpd [root@stlk system]# ps -aux | grep dhc dhcpd 6820 0.0 0.1 97000 21272 ? Ssl 16:14 0:00 /usr/sbin/dhcpd -4 -f --no-pid eth0 br0; На p8 не отвечает. А самое интересное..если руками запустить ровно с теми же опциями - всё работает. через systemd ещё и завершается 1,5 минуты time systemctl stop dhcpd 0.00user 0.00system 1:30.14elapsed 0%CPU (0avgtext+0avgdata 3552maxresident)k 0inputs+0outputs (0major+292minor)pagefaults 0swaps
У меня на P8 под systemd работает. Не работает под SysVinit, т.к. тут форкается сам dhcpd. На systemd dhpcd не форкается, поэтому и работает.
У меня даже после отката, если руками запустить /usr/sbin/dhcpd -4 -f --no-pid eth0 br0; то работает,а если через systemd нет
в трейсе при этом epoll_wait(4, [{EPOLLIN, {u32=8, u64=8}}], 64, -1) = 1 epoll_ctl(4, EPOLL_CTL_DEL, 8, 0x7ffef6fcf740) = 0 recvfrom(8, "\1\1\6\0007\t\354$\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0RT\0?"..., 1540, 0, {sa_family=AF_INET, sin_port=htons(68), sin_addr=inet_addr("0.0.0.0")}, [16]) = 300 epoll_ctl(4, EPOLL_CTL_ADD, 8, {EPOLLIN, {u32=8, u64=8}}) = 0 epoll_wait(4, [{EPOLLIN, {u32=8, u64=8}}], 64, -1) = 1 epoll_ctl(4, EPOLL_CTL_DEL, 8, 0x7ffef6fcf740) = 0 recvfrom(8, "\1\1\6\0007\t\354$\0\10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0RT\0?"..., 1540, 0, {sa_family=AF_INET, sin_port=htons(68), sin_addr=inet_addr("0.0.0.0")}, [16]) = 300 epoll_ctl(4, EPOLL_CTL_ADD, 8, {EPOLLIN, {u32=8, u64=8}}) = 0 epoll_wait(4, [{EPOLLIN, {u32=8, u64=8}}], 64, -1) = 1 epoll_ctl(4, EPOLL_CTL_DEL, 8, 0x7ffef6fcf740) = 0 recvfrom(8, "\1\1\6\0007\t\354$\0\22\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0RT\0?"..., 1540, 0, {sa_family=AF_INET, sin_port=htons(68), sin_addr=inet_addr("0.0.0.0")}, [16]) = 300 epoll_ctl(4, EPOLL_CTL_ADD, 8, {EPOLLIN, {u32=8, u64=8}}) = 0 epoll_wait(4,
Что-то изменилось в библиотеках нового bind, похоже dhcpd уходит в deadlock. Попробую для начала просто обновить его до актуальной версии.
При ближайшем рассмотрении обновление dhcpd несколько более трудозатратная задача, чем я думал, так что отложим до лучших времен. Проверьте dhcpd из #177232.
Для проверки нужен таск для P8.
> Проверьте dhcpd из #177232. Только там решалась проблема с завершением dhcpd. Чинить работу под sysvinit я пока даже не пытался.
т.е. - с -f всё ещё не работает ?
Наоборот, не работает без. Это две разные проблемы. С новой libbind у нас не только bind стал многопоточным, но и dhcpd. И к этому он оказался совершенно не готов.
Ясно, ждём.
Простите, увидел коммент про "многопоточность" и вспомнил про патч для другой баги, в котором фигурируют слова про "THREADS" :-) http://git.altlinux.org/people/snejok/packages/bind.git?p=bind.git;a=commitdiff;h=1d72b684c5cbe2df95312d4f2d432c040c4c3c75 вот кстати бага: https://bugzilla.altlinux.org/show_bug.cgi?id=31158
(In reply to comment #15) > Простите, увидел коммент про "многопоточность" и вспомнил про патч для другой > баги, в котором фигурируют слова про "THREADS" :-) > > http://git.altlinux.org/people/snejok/packages/bind.git?p=bind.git;a=commitdiff;h=1d72b684c5cbe2df95312d4f2d432c040c4c3c75 > > вот кстати бага: > https://bugzilla.altlinux.org/show_bug.cgi?id=31158 Объясните, пожалуйста, почему вы считаете, что тот патч ещё актуален.
(В ответ на комментарий №16) > Объясните, пожалуйста, почему вы считаете, что тот патч ещё актуален. С новой версией bind в Sisyphus и p8 еще не проверял. В ближайшее время проверю.
Мне удалось получить похожие на рабочие сервер и dhcreley, но я сломался на dhclient. После чего посмотрел внимательно, наконец, как это собирают в Федоре. Они собирают с библиотеками от bind-9.9.9. И с ними dhcp работает, даже если библиотеки собраны с --enable-threads (Многопоточность в dhcp там не включается, хотя глядя на код я пока не понял почему, он не выглядит сильно другим. Впрочем, я не читал его целиком, так что отличие все же есть, очевидно). Короче говоря, я думаю надо делать как в Федоре: собирать отдельно библиотеки от старого bind и собирать dhcp с ними.
(In reply to comment #18) > Мне удалось получить похожие на рабочие сервер и dhcreley, но я сломался на > dhclient. После чего посмотрел внимательно, наконец, как это собирают в Федоре. > Они собирают с библиотеками от bind-9.9.9. И с ними dhcp работает, даже если > библиотеки собраны с --enable-threads (Многопоточность в dhcp там не > включается, хотя глядя на код я пока не понял почему, он не выглядит сильно > другим. Впрочем, я не читал его целиком, так что отличие все же есть, > очевидно). > Короче говоря, я думаю надо делать как в Федоре: собирать отдельно библиотеки > от старого bind и собирать dhcp с ними. Если в федоре не осилили, это не основание опускать руки.
(In reply to comment #18) > библиотеки собраны с --enable-threads (Многопоточность в dhcp там не > включается, хотя глядя на код я пока не понял почему, он не выглядит сильно > другим. Впрочем, я не читал его целиком, так что отличие все же есть, > очевидно). Ну, в целом ясно. Dhcp собирался с *-export библиотеками, в которых потоки были выключены. В bind-9.10 *-export библиотек больше нет и теперь с патчем Большакова dhcp собирается с библиотеками, в которых потоки включены. В результате все dhcp* хозяйство стало многопоточным, чего апстрим не предполагал, они просто написаны без поддержки подобного варианта. (In reply to comment #19) > > Короче говоря, я думаю надо делать как в Федоре: собирать отдельно библиотеки > > от старого bind и собирать dhcp с ними. > > Если в федоре не осилили, это не основание опускать руки. Зато не переписывать dhcp с поддержкой многопоточности - вполне основание, на мой взгляд. Нам так нужны многопоточные dhcp сервер и клиент? Есть еще вариант добавить в библиотеки bind поддержку runtime-выбора включения/выключения многопоточности, но я не уверен, что оно того стоит. Если даже при этом dhcp будет работать с текущими библиотеками bind, нет никаких гарантий, что будет работать со следующей. Австрим ведь ведь хоронит dhcp и заменяет его Kea, насколько я понимаю. Думаю лучше уж сразу собирать dhcp с теми библиотеками, с которыми он должен работать, а не с теми, с которыми апстрим никогда не предполагал его работу.
(In reply to comment #20) > (In reply to comment #18) > > библиотеки собраны с --enable-threads (Многопоточность в dhcp там не > > включается, хотя глядя на код я пока не понял почему, он не выглядит сильно > > другим. Впрочем, я не читал его целиком, так что отличие все же есть, > > очевидно). > > Ну, в целом ясно. Dhcp собирался с *-export библиотеками, в которых потоки были > выключены. В bind-9.10 *-export библиотек больше нет. export-библиотеки это чисто федорное изобретение. Может, вернём их? Вернуть export-библиотеки от bind-9.9 проще, конечно, чем от текущей версии. Хотя в https://fedorahosted.org/fpc/ticket/502 они пишут, что dhcp не работает с библиотеками от bind-9.10, складывается ощущение, что если эти библиотеки просто собрать с --disable-threads, то dhcp будет нормально с ними работать.
(In reply to comment #21) > (In reply to comment #20) > > (In reply to comment #18) > > > библиотеки собраны с --enable-threads (Многопоточность в dhcp там не > > > включается, хотя глядя на код я пока не понял почему, он не выглядит сильно > > > другим. Впрочем, я не читал его целиком, так что отличие все же есть, > > > очевидно). > > > > Ну, в целом ясно. Dhcp собирался с *-export библиотеками, в которых потоки были > > выключены. В bind-9.10 *-export библиотек больше нет. > > export-библиотеки это чисто федорное изобретение. Может, вернём их? Нет, это было в апстриме. В Федоре только отрывали bundled bind в релизе dhcp и собирали с системным. Эти патчи и у нас, конечно. > Вернуть export-библиотеки от bind-9.9 проще, конечно, чем от текущей версии. От текущей версии - это именно то, чего в Федоре не осилили https://bugzilla.redhat.com/show_bug.cgi?id=1181562#c5 Но похоже есть надежда, что апстрим сделает версию dhcp, рабочую с bind-9.10. Хоть и нет гарантий. В Федоре, собственно, и решили переждать на старых библиотеках. > Хотя в https://fedorahosted.org/fpc/ticket/502 они пишут, что dhcp не работает > с библиотеками от bind-9.10, складывается ощущение, что если эти библиотеки > просто собрать с --disable-threads, то dhcp будет нормально с ними работать. https://lists.isc.org/pipermail/bind-users/2015-February/094640.html Еще нужно --disable-epoll, тогда почти работает. На сигналы все равно не реагирует, но тут поможет мой патч как раз.
Я пока соберу dhcp с библиотеками bind-9.9.9. Надо его починить, наконец, а то он и в p8 сломан. Далее уже без спешки можно экспериментировать с его сборкой на Сизифе.
dhcp-1:4.3.3-alt5 -> sisyphus: * Wed Feb 01 2017 Mikhail Efremov <sem@altlinux> 1:4.3.3-alt5 - Use _unpackaged_files_terminate_build. - Build with bind-9.9.9 libraries (closes: #33053).
Миша, спасибо. Завтра проверю.
Следующие НОВЫЕ пакеты будут установлены: libisc-export-dhcp 4 будет обновлено, 1 новых установлено, 0 пакетов будет удалено и 0 не будет обновлено. Необходимо получить 0B/2168kB архивов. После распаковки потребуется дополнительно 2114kB дискового пространства. Продолжить? [Y/n] y Совершаем изменения... Preparing... ################################################################################################### [100%] file /usr/lib64/libirs-export.so.91.0.3 from install of libisc-export-dhcp-9.9.9-alt1.M80P.1 conflicts with file from package libisc-export-9.9.8-alt5 file /usr/lib64/libisc-export.so.106 from install of libisc-export-dhcp-9.9.9-alt1.M80P.1 conflicts with file from package libisc-export-9.9.8-alt5 file /usr/lib64/libisccfg-export.so.90 from install of libisc-export-dhcp-9.9.9-alt1.M80P.1 conflicts with file from package libisc-export-9.9.8-alt5 E: Ошибка во время исполнения транзакции
(In reply to comment #26) > E: Ошибка во время исполнения транзакции Да, конфликт я забыл поставить.
(In reply to comment #27) > (In reply to comment #26) > > E: Ошибка во время исполнения транзакции > > Да, конфликт я забыл поставить. конфликт по soname? это точно не provides+obsoletes?
Ну да, поставил obsoletes. Provides не стал. хотя может зря.