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

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

    <bug>
          <bug_id>11531</bug_id>
          
          <creation_ts>2007-04-17 13:10:55 +0400</creation_ts>
          <short_desc>Долго завершается при service httpd2 stop</short_desc>
          <delta_ts>2012-08-13 14:06:34 +0400</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>apache2</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>P2</priority>
          <bug_severity>critical</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>27091</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Vladimir V. Kamarzin">vvk</reporter>
          <assigned_to name="Anton Farygin">rider</assigned_to>
          <cc>rider</cc>
    
    <cc>snejok</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>48958</commentid>
    <comment_count>0</comment_count>
    <who name="Vladimir V. Kamarzin">vvk</who>
    <bug_when>2007-04-17 13:10:55 +0400</bug_when>
    <thetext>Я обнаружил, что иногда при service httpd2 restart он не стартует с ошибкой:
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:8080
no listening sockets available, shutting down

Небольшой тест показывает удручающую картину:

root@vvk ~ # for i in `seq 1 10` ; do service httpd2 restart |grep -ic failed ;
done |awk &apos;{ sum += $1 }; END { print sum }&apos;
8

Если вставить задержку, ситуация немного лучше

root@vvk ~ # for i in `seq 1 10` ; do service httpd2 restart |grep -ic failed ;
sleep 5; done |awk &apos;{ sum += $1 }; END { print sum }&apos;
5

Похоже, в инитскрипт нужно встроить killall, как в 1-м апаче.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>48959</commentid>
    <comment_count>1</comment_count>
    <who name="solo">solo</who>
    <bug_when>2007-04-17 13:31:43 +0400</bug_when>
    <thetext>Нелбзя: при особо удачном стечении обстоятельств killall может завершить процесс
используемый httpd-alterator`ом.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>48960</commentid>
    <comment_count>2</comment_count>
    <who name="Vladimir V. Kamarzin">vvk</who>
    <bug_when>2007-04-17 13:46:13 +0400</bug_when>
    <thetext>Ну и что делать? Текущая ситуация никуда не годится.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>48961</commentid>
    <comment_count>3</comment_count>
    <who name="solo">solo</who>
    <bug_when>2007-04-17 13:59:38 +0400</bug_when>
    <thetext>Буду вставлять задержку.

Если несложно -- прошу подобрать приемлимаю (у меня ситуация не воспроизводится).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>49040</commentid>
    <comment_count>4</comment_count>
    <who name="Vladimir V. Kamarzin">vvk</who>
    <bug_when>2007-04-18 09:41:10 +0400</bug_when>
    <thetext>Упс, пример с sleep из первого комментария был неудачным. Так лучше:

root@vvk ~ # for i in `seq 1 30` ; do service httpd2 stop ; sleep 1 ; service
httpd2 start |grep -ic failed ; done |awk &apos;{ sum += $1 }; END { print sum }&apos; ;
killall -9 httpd2
0

Видно, что при встраивании даже 1-секундной паузы ситуация сильно улучшается -
30 рестартов рошли успешно. При уменьшении интервала до 0.85 с. было уже 5
неудачных стартов, до 0.5 - 12.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>49048</commentid>
    <comment_count>5</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2007-04-18 10:35:38 +0400</bug_when>
    <thetext>sleep -- это всегда зависимость от скорости и загрузки системы... очень мрачный
вариант.

java в начале века народ стартовал и гасил, через секунду в цикле проверяя -- ну
как оно там, взлетело/легло?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>49054</commentid>
    <comment_count>6</comment_count>
    <who name="solo">solo</who>
    <bug_when>2007-04-18 11:24:54 +0400</bug_when>
    <thetext>OK, тогда сейчас жёстко делаю секкунду, позже -- думаю над циклом с проверкой.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>49506</commentid>
    <comment_count>7</comment_count>
    <who name="solo">solo</who>
    <bug_when>2007-04-25 19:34:07 +0400</bug_when>
    <thetext>Частичный фикс в apache2-2.2.4-alt22
(http://git.altlinux.org/people/solo/packages/?p=apache2.git;a=commit;h=2fc1f8e5935b5629b762401d48520fd07a53d0e2):

Добавлено sleep 1

PS: Багу пока не закрываю: пусть весит до полного фикса (через цикл).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130683</commentid>
    <comment_count>8</comment_count>
    <who name="Lenar Shakirov">snejok</who>
    <bug_when>2012-04-17 14:56:53 +0400</bug_when>
    <thetext>(В ответ на комментарий №1)
&gt; Нелбзя: при особо удачном стечении обстоятельств killall может завершить
&gt; процесс
&gt; используемый httpd-alterator`ом.

Этого можно больше не боятся: теперь у alterator&apos;а свой сервер, под названием ahttpd</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>132717</commentid>
    <comment_count>9</comment_count>
    <who name="Repository Robot">repository-robot</who>
    <bug_when>2012-08-10 23:40:05 +0400</bug_when>
    <thetext>apache2-2.2.22-alt4 -&gt; sisyphus:

* Fri Aug 10 2012 2012 Aleksey Avdeev &lt;solo@altlinux&gt; 2.2.22-alt4
- %apache2_sbindir/apachectl%apache2_branch replaced by the &quot;official&quot;
  apachectl (patched) (Closes: #27086)
- The function stop() in %_initdir/%apache2_dname now waiting
  (maximum 300 seconds) of the actual completion of the demon
  (Closes: #11531, #27091)</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>