<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>33053</bug_id>
          
          <creation_ts>2017-01-26 15:09:25 +0300</creation_ts>
          <short_desc>Не отвечает на запросы при запуске через SysVInit</short_desc>
          <delta_ts>2017-02-03 13:17:58 +0300</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>dhcp-server</component>
          <version>unstable</version>
          <rep_platform>all</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>blocker</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anton Farygin">rider</reporter>
          <assigned_to name="Mikhail Efremov">sem</assigned_to>
          <cc>aen</cc>
    
    <cc>cas</cc>
    
    <cc>glebfm</cc>
    
    <cc>lav</cc>
    
    <cc>mike</cc>
    
    <cc>rider</cc>
    
    <cc>sem</cc>
    
    <cc>snejok</cc>
    
    <cc>stalker</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>161523</commentid>
    <comment_count>0</comment_count>
    <who name="Anton Farygin">rider</who>
    <bug_when>2017-01-26 15:09:25 +0300</bug_when>
    <thetext>После обновления до 4.3.3-alt4 перестаёт отвечать на запросы.
Откат до alt3 сразу лечит это поведение.

Запускается при этом нормально, конфигурация самая простая.
Аналогично сломано и в p8, где было и поймано.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161528</commentid>
    <comment_count>1</comment_count>
    <who name="Andrey Cherepanov">cas</who>
    <bug_when>2017-01-26 15:31:15 +0300</bug_when>
    <thetext>Запускается нормально, но не выходит.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161529</commentid>
    <comment_count>2</comment_count>
    <who name="Anton Farygin">rider</who>
    <bug_when>2017-01-26 15:50:11 +0300</bug_when>
    <thetext>Да, ещё и не выходит.
На системах с SysVInit запускается, но не отвечает на запросы. При этом завершает свою работу нормально. На системах с systemd - запускается и работает, но на SIGTERM не реагирует.
если просто из консоли запустить как dhcpd -d на sysvinit запускается и работает</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161530</commentid>
    <comment_count>3</comment_count>
    <who name="Anton Farygin">rider</who>
    <bug_when>2017-01-26 16:08:20 +0300</bug_when>
    <thetext>Разница в том, что на sysvinit не используется опция -f</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161531</commentid>
    <comment_count>4</comment_count>
    <who name="stalker">stalker</who>
    <bug_when>2017-01-26 16:17:43 +0300</bug_when>
    <thetext>[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</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161532</commentid>
    <comment_count>5</comment_count>
    <who name="Anton Farygin">rider</who>
    <bug_when>2017-01-26 16:23:55 +0300</bug_when>
    <thetext>У меня на P8 под systemd работает.
Не работает под SysVinit, т.к. тут форкается сам dhcpd.
На systemd dhpcd не форкается, поэтому и работает.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161535</commentid>
    <comment_count>6</comment_count>
    <who name="stalker">stalker</who>
    <bug_when>2017-01-26 16:51:17 +0300</bug_when>
    <thetext>У меня даже после отката, если руками запустить
/usr/sbin/dhcpd -4 -f --no-pid eth0 br0;

то работает,а если через systemd нет</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161536</commentid>
    <comment_count>7</comment_count>
    <who name="stalker">stalker</who>
    <bug_when>2017-01-26 16:58:16 +0300</bug_when>
    <thetext>в трейсе при этом

epoll_wait(4, [{EPOLLIN, {u32=8, u64=8}}], 64, -1) = 1
epoll_ctl(4, EPOLL_CTL_DEL, 8, 0x7ffef6fcf740) = 0
recvfrom(8, &quot;\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?&quot;..., 1540, 0, {sa_family=AF_INET, sin_port=htons(68), sin_addr=inet_addr(&quot;0.0.0.0&quot;)}, [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, &quot;\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?&quot;..., 1540, 0, {sa_family=AF_INET, sin_port=htons(68), sin_addr=inet_addr(&quot;0.0.0.0&quot;)}, [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, &quot;\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?&quot;..., 1540, 0, {sa_family=AF_INET, sin_port=htons(68), sin_addr=inet_addr(&quot;0.0.0.0&quot;)}, [16]) = 300
epoll_ctl(4, EPOLL_CTL_ADD, 8, {EPOLLIN, {u32=8, u64=8}}) = 0
epoll_wait(4,</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161539</commentid>
    <comment_count>8</comment_count>
    <who name="Mikhail Efremov">sem</who>
    <bug_when>2017-01-26 22:03:29 +0300</bug_when>
    <thetext>Что-то изменилось в библиотеках нового bind, похоже dhcpd уходит в deadlock.
Попробую для начала просто обновить его до актуальной версии.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161545</commentid>
    <comment_count>9</comment_count>
    <who name="Mikhail Efremov">sem</who>
    <bug_when>2017-01-27 19:08:52 +0300</bug_when>
    <thetext>При ближайшем рассмотрении обновление dhcpd несколько более трудозатратная задача, чем я думал, так что отложим до лучших времен.
Проверьте dhcpd из #177232.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161546</commentid>
    <comment_count>10</comment_count>
    <who name="Anton Farygin">rider</who>
    <bug_when>2017-01-27 19:39:01 +0300</bug_when>
    <thetext>Для проверки нужен таск для P8.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161547</commentid>
    <comment_count>11</comment_count>
    <who name="Mikhail Efremov">sem</who>
    <bug_when>2017-01-27 19:44:43 +0300</bug_when>
    <thetext>&gt; Проверьте dhcpd из #177232.

Только там решалась проблема с завершением dhcpd. Чинить работу под sysvinit я пока даже не пытался.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161548</commentid>
    <comment_count>12</comment_count>
    <who name="Anton Farygin">rider</who>
    <bug_when>2017-01-27 21:27:22 +0300</bug_when>
    <thetext>т.е. - с -f всё ещё не работает ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161549</commentid>
    <comment_count>13</comment_count>
    <who name="Mikhail Efremov">sem</who>
    <bug_when>2017-01-27 22:09:36 +0300</bug_when>
    <thetext>Наоборот, не работает без. Это две разные проблемы.
С новой libbind у нас не только bind стал многопоточным, но и dhcpd. И к этому он оказался совершенно не готов.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161551</commentid>
    <comment_count>14</comment_count>
    <who name="Anton Farygin">rider</who>
    <bug_when>2017-01-28 07:12:53 +0300</bug_when>
    <thetext>Ясно, ждём.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161554</commentid>
    <comment_count>15</comment_count>
    <who name="Lenar Shakirov">snejok</who>
    <bug_when>2017-01-28 12:20:06 +0300</bug_when>
    <thetext>Простите, увидел коммент про &quot;многопоточность&quot; и вспомнил про патч для другой баги, в котором фигурируют слова про &quot;THREADS&quot; :-)

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</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161556</commentid>
    <comment_count>16</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2017-01-28 12:28:07 +0300</bug_when>
    <thetext>(In reply to comment #15)
&gt; Простите, увидел коммент про &quot;многопоточность&quot; и вспомнил про патч для другой
&gt; баги, в котором фигурируют слова про &quot;THREADS&quot; :-)
&gt; 
&gt; http://git.altlinux.org/people/snejok/packages/bind.git?p=bind.git;a=commitdiff;h=1d72b684c5cbe2df95312d4f2d432c040c4c3c75
&gt; 
&gt; вот кстати бага:
&gt; https://bugzilla.altlinux.org/show_bug.cgi?id=31158

Объясните, пожалуйста, почему вы считаете, что тот патч ещё актуален.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161560</commentid>
    <comment_count>17</comment_count>
    <who name="Lenar Shakirov">snejok</who>
    <bug_when>2017-01-28 13:36:20 +0300</bug_when>
    <thetext>(В ответ на комментарий №16)
&gt; Объясните, пожалуйста, почему вы считаете, что тот патч ещё актуален.

С новой версией bind в Sisyphus и p8 еще не проверял.
В ближайшее время проверю.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161615</commentid>
    <comment_count>18</comment_count>
    <who name="Mikhail Efremov">sem</who>
    <bug_when>2017-01-31 01:36:17 +0300</bug_when>
    <thetext>Мне удалось получить похожие на рабочие сервер и dhcreley, но я сломался на dhclient. После чего посмотрел внимательно, наконец, как это собирают в Федоре. Они собирают с библиотеками от bind-9.9.9. И с ними dhcp работает, даже если библиотеки собраны с --enable-threads (Многопоточность в dhcp там не включается, хотя глядя на код я пока не понял почему, он не выглядит сильно другим. Впрочем, я не читал его целиком, так что отличие все же есть, очевидно).
Короче говоря, я думаю надо делать как в Федоре: собирать отдельно библиотеки от старого bind и собирать dhcp с ними.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161618</commentid>
    <comment_count>19</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2017-01-31 11:46:22 +0300</bug_when>
    <thetext>(In reply to comment #18)
&gt; Мне удалось получить похожие на рабочие сервер и dhcreley, но я сломался на
&gt; dhclient. После чего посмотрел внимательно, наконец, как это собирают в Федоре.
&gt; Они собирают с библиотеками от bind-9.9.9. И с ними dhcp работает, даже если
&gt; библиотеки собраны с --enable-threads (Многопоточность в dhcp там не
&gt; включается, хотя глядя на код я пока не понял почему, он не выглядит сильно
&gt; другим. Впрочем, я не читал его целиком, так что отличие все же есть,
&gt; очевидно).
&gt; Короче говоря, я думаю надо делать как в Федоре: собирать отдельно библиотеки
&gt; от старого bind и собирать dhcp с ними.

Если в федоре не осилили, это не основание опускать руки.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161636</commentid>
    <comment_count>20</comment_count>
    <who name="Mikhail Efremov">sem</who>
    <bug_when>2017-01-31 15:08:01 +0300</bug_when>
    <thetext>(In reply to comment #18)
&gt; библиотеки собраны с --enable-threads (Многопоточность в dhcp там не
&gt; включается, хотя глядя на код я пока не понял почему, он не выглядит сильно
&gt; другим. Впрочем, я не читал его целиком, так что отличие все же есть,
&gt; очевидно).

Ну, в целом ясно. Dhcp собирался с *-export библиотеками, в которых потоки были
выключены. В bind-9.10 *-export библиотек больше нет и теперь с патчем Большакова dhcp собирается с библиотеками, в которых потоки включены. В результате все dhcp* хозяйство стало многопоточным, чего апстрим не предполагал, они просто написаны без поддержки подобного варианта.

(In reply to comment #19)
&gt; &gt; Короче говоря, я думаю надо делать как в Федоре: собирать отдельно библиотеки
&gt; &gt; от старого bind и собирать dhcp с ними.
&gt; 
&gt; Если в федоре не осилили, это не основание опускать руки.

Зато не переписывать dhcp с поддержкой многопоточности - вполне основание, на мой взгляд. Нам так нужны многопоточные dhcp сервер и клиент?
Есть еще вариант добавить в библиотеки bind поддержку runtime-выбора включения/выключения многопоточности, но я не уверен, что оно того стоит.
Если даже при этом dhcp будет работать с текущими библиотеками bind, нет никаких гарантий, что будет работать со следующей. Австрим ведь ведь хоронит dhcp и заменяет его Kea, насколько я понимаю.
Думаю лучше уж сразу собирать dhcp с теми библиотеками, с которыми он должен работать, а не с теми, с которыми апстрим никогда не предполагал его работу.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161637</commentid>
    <comment_count>21</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2017-01-31 15:34:51 +0300</bug_when>
    <thetext>(In reply to comment #20)
&gt; (In reply to comment #18)
&gt; &gt; библиотеки собраны с --enable-threads (Многопоточность в dhcp там не
&gt; &gt; включается, хотя глядя на код я пока не понял почему, он не выглядит сильно
&gt; &gt; другим. Впрочем, я не читал его целиком, так что отличие все же есть,
&gt; &gt; очевидно).
&gt; 
&gt; Ну, в целом ясно. Dhcp собирался с *-export библиотеками, в которых потоки были
&gt; выключены. В bind-9.10 *-export библиотек больше нет.

export-библиотеки это чисто федорное изобретение. Может, вернём их?
Вернуть export-библиотеки от bind-9.9 проще, конечно, чем от текущей версии.

Хотя в https://fedorahosted.org/fpc/ticket/502 они пишут, что dhcp не работает с библиотеками от bind-9.10, складывается ощущение, что если эти библиотеки просто собрать с --disable-threads, то dhcp будет нормально с ними работать.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161642</commentid>
    <comment_count>22</comment_count>
    <who name="Mikhail Efremov">sem</who>
    <bug_when>2017-01-31 16:13:38 +0300</bug_when>
    <thetext>(In reply to comment #21)
&gt; (In reply to comment #20)
&gt; &gt; (In reply to comment #18)
&gt; &gt; &gt; библиотеки собраны с --enable-threads (Многопоточность в dhcp там не
&gt; &gt; &gt; включается, хотя глядя на код я пока не понял почему, он не выглядит сильно
&gt; &gt; &gt; другим. Впрочем, я не читал его целиком, так что отличие все же есть,
&gt; &gt; &gt; очевидно).
&gt; &gt; 
&gt; &gt; Ну, в целом ясно. Dhcp собирался с *-export библиотеками, в которых потоки были
&gt; &gt; выключены. В bind-9.10 *-export библиотек больше нет.
&gt; 
&gt; export-библиотеки это чисто федорное изобретение. Может, вернём их?

Нет, это было в апстриме. В Федоре только отрывали bundled bind в релизе dhcp и собирали с системным. Эти патчи и у нас, конечно.

&gt; Вернуть export-библиотеки от bind-9.9 проще, конечно, чем от текущей версии.

От текущей версии - это именно то, чего в Федоре не осилили
https://bugzilla.redhat.com/show_bug.cgi?id=1181562#c5
Но похоже есть надежда, что апстрим сделает версию dhcp, рабочую с bind-9.10. Хоть и нет гарантий. В Федоре, собственно, и решили переждать на старых библиотеках.

&gt; Хотя в https://fedorahosted.org/fpc/ticket/502 они пишут, что dhcp не работает
&gt; с библиотеками от bind-9.10, складывается ощущение, что если эти библиотеки
&gt; просто собрать с --disable-threads, то dhcp будет нормально с ними работать.

https://lists.isc.org/pipermail/bind-users/2015-February/094640.html
Еще нужно --disable-epoll, тогда почти работает. На сигналы все равно не реагирует, но тут поможет мой патч как раз.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161669</commentid>
    <comment_count>23</comment_count>
    <who name="Mikhail Efremov">sem</who>
    <bug_when>2017-02-01 18:09:23 +0300</bug_when>
    <thetext>Я пока соберу dhcp с библиотеками bind-9.9.9. Надо его починить, наконец, а то он и в p8 сломан.
Далее уже без спешки можно экспериментировать с его сборкой на Сизифе.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161676</commentid>
    <comment_count>24</comment_count>
    <who name="Repository Robot">repository-robot</who>
    <bug_when>2017-02-01 22:29:34 +0300</bug_when>
    <thetext>dhcp-1:4.3.3-alt5 -&gt; sisyphus:

* Wed Feb 01 2017 Mikhail Efremov &lt;sem@altlinux&gt; 1:4.3.3-alt5
- Use _unpackaged_files_terminate_build.
- Build with bind-9.9.9 libraries (closes: #33053).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161678</commentid>
    <comment_count>25</comment_count>
    <who name="Anton Farygin">rider</who>
    <bug_when>2017-02-01 23:07:05 +0300</bug_when>
    <thetext>Миша, спасибо. Завтра проверю.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161693</commentid>
    <comment_count>26</comment_count>
    <who name="stalker">stalker</who>
    <bug_when>2017-02-02 20:20:50 +0300</bug_when>
    <thetext>Следующие НОВЫЕ пакеты будут установлены:
  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: Ошибка во время исполнения транзакции</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161694</commentid>
    <comment_count>27</comment_count>
    <who name="Mikhail Efremov">sem</who>
    <bug_when>2017-02-02 20:33:54 +0300</bug_when>
    <thetext>(In reply to comment #26)
&gt; E: Ошибка во время исполнения транзакции

Да, конфликт я забыл поставить.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161697</commentid>
    <comment_count>28</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2017-02-03 03:06:48 +0300</bug_when>
    <thetext>(In reply to comment #27)
&gt; (In reply to comment #26)
&gt; &gt; E: Ошибка во время исполнения транзакции
&gt; 
&gt; Да, конфликт я забыл поставить.

конфликт по soname? это точно не provides+obsoletes?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161701</commentid>
    <comment_count>29</comment_count>
    <who name="Mikhail Efremov">sem</who>
    <bug_when>2017-02-03 13:17:58 +0300</bug_when>
    <thetext>Ну да, поставил obsoletes. Provides не стал. хотя может зря.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>