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

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

    <bug>
          <bug_id>12730</bug_id>
          
          <creation_ts>2007-09-09 01:53:27 +0400</creation_ts>
          <short_desc>Вызывает зависание SMP-системы</short_desc>
          <delta_ts>2011-07-12 08:25:24 +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>mbmon</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Roman Savochenko">rom_as</reporter>
          <assigned_to name="viy">viy</assigned_to>
          <cc>aen</cc>
    
    <cc>mike</cc>
    
    <cc>stalker</cc>
    
    <cc>vsu</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>54929</commentid>
    <comment_count>0</comment_count>
    <who name="Roman Savochenko">rom_as</who>
    <bug_when>2007-09-09 01:53:27 +0400</bug_when>
    <thetext>Дистрибутив: ALT4.0
Система: AMD Athlon 64 x2 3600+, ASUS M2NPV-VM
Режим: периодический вызов из другого приложения, через popen().
Приводит к стабильному зависанию системы в промежутке вызова от 1-30мин при 
периодическом вызове с периодом от 0.1-1сек.
На системах с одним процессором/ядром такой проблемы не выявлено.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>54933</commentid>
    <comment_count>1</comment_count>
    <who name="viy">viy</who>
    <bug_when>2007-09-09 15:28:12 +0400</bug_when>
    <thetext>Вы testcase не бросите?

У меня похожая машина, хочу воспроизвести.

Кр. того, из описания не понятно, вы popen() периодически дергаете и тучу этих
mbmon плодите?

достаточно 1 запустить.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>55273</commentid>
    <comment_count>2</comment_count>
    <who name="Roman Savochenko">rom_as</who>
    <bug_when>2007-09-17 13:33:10 +0400</bug_when>
    <thetext>(In reply to comment #1)
&gt; Вы testcase не бросите?
У меня это исполняется в рамках SCADA-системы OpenSCADA.
Отделить попробую, в ближайшее время.

&gt; У меня похожая машина, хочу воспроизвести.
&gt; Кр. того, из описания не понятно, вы popen() периодически дергаете и тучу 
этих
&gt; mbmon плодите?
&gt; достаточно 1 запустить.
Я не пложу, я периодически вызываю одиночный запрос mbmon, т.е mbmon после 
запроса завершается.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>55274</commentid>
    <comment_count>3</comment_count>
    <who name="Roman Savochenko">rom_as</who>
    <bug_when>2007-09-17 13:34:38 +0400</bug_when>
    <thetext>Команда вызова у меня: mbmon -r -c 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>55293</commentid>
    <comment_count>4</comment_count>
    <who name="Sergey Vlasov">vsu</who>
    <bug_when>2007-09-17 16:25:26 +0400</bug_when>
    <thetext>То, что делает mbmon (прямой доступ к портам, минуя все драйверы), вряд ли можно
сделать надёжным - слишком много возможностей для конфликтов с другими
программами, обращающимися к тем же устройствам. Например, функция
pci_conf_read() из pci_pm.c потенциально опасна - поскольку доступ к
конфигурации PCI не является атомарным (требуется 2 операции - запись в регистр
адреса и чтение данных по выбранному адресу), выполнение этой функции может
нарушить работу другого процесса (в том числе кода ядра), параллельно
выполняющегося на другом процессоре и обращающегося к тем же регистрам. В
однопроцессорной системе такие проблемы могут не проявляться, поскольку в этом
случае нет возможности параллельного выполнения кода пользовательского процесса
(mbmon) и кода ядра.

Могу посоветовать настроить lm_sensors; правда, в этом случае тоже возможны
аналогичные конфликты, но уже с кодом BIOS, который в некоторых случаях
обращается к сенсорам - эта проблема пока не решается нормальным образом.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>55390</commentid>
    <comment_count>5</comment_count>
    <who name="viy">viy</who>
    <bug_when>2007-09-18 16:33:37 +0400</bug_when>
    <thetext>гм. тогда ничем не помогу :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>55957</commentid>
    <comment_count>6</comment_count>
    <who name="viy">viy</who>
    <bug_when>2007-09-27 16:54:10 +0400</bug_when>
    <thetext>закрою, так как ничего не могу сделать.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>56025</commentid>
    <comment_count>7</comment_count>
      <attachid>2213</attachid>
    <who name="Roman Savochenko">rom_as</who>
    <bug_when>2007-09-29 00:32:45 +0400</bug_when>
    <thetext>Created attachment 2213
mbmon_test.cpp

Исходник тестовой программки, которая вызывает mbmoon через popen с
периодичностью 100мс.
Как минимум уже один раз система повисла при фоновой работе этой программки,
после часа работы.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>56027</commentid>
    <comment_count>8</comment_count>
    <who name="Roman Savochenko">rom_as</who>
    <bug_when>2007-09-29 00:36:05 +0400</bug_when>
    <thetext>(In reply to comment #4)
&gt; Могу посоветовать настроить lm_sensors; правда, в этом случае тоже возможны
&gt; аналогичные конфликты, но уже с кодом BIOS, который в некоторых случаях
&gt; обращается к сенсорам - эта проблема пока не решается нормальным образом.

Спасибо за информацию. С mbmon было проще в реализации и настройке, но раз 
так, то добавлю поддержку lm_sensors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>123008</commentid>
    <comment_count>9</comment_count>
    <who name="Roman Savochenko">rom_as</who>
    <bug_when>2011-07-10 20:09:56 +0400</bug_when>
    <thetext>Переоткрываю ошибку, поскольку фактически это критическая crash уязвимость ядра.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>123010</commentid>
    <comment_count>10</comment_count>
    <who name="viy">viy</who>
    <bug_when>2011-07-10 22:25:15 +0400</bug_when>
    <thetext>можно вылечить гильотиной, т.е. удалить из Сизифа. апстрим mbmon не развивает.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>123011</commentid>
    <comment_count>11</comment_count>
    <who name="Roman Savochenko">rom_as</who>
    <bug_when>2011-07-10 22:42:05 +0400</bug_when>
    <thetext>(В ответ на комментарий №10)
&gt; можно вылечить гильотиной, т.е. удалить из Сизифа. апстрим mbmon не развивает.
Можно, только выглядеть это будет как удаление локального эксплоита из дырявой системы.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>123012</commentid>
    <comment_count>12</comment_count>
    <who name="viy">viy</who>
    <bug_when>2011-07-10 22:48:56 +0400</bug_when>
    <thetext>#50157 AWAITING #1 sisyphus del=xmbmon</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>123013</commentid>
    <comment_count>13</comment_count>
    <who name="AEN">aen</who>
    <bug_when>2011-07-11 05:03:31 +0400</bug_when>
    <thetext>
(В ответ на комментарий №9)
&gt; Переоткрываю ошибку, поскольку фактически это критическая crash уязвимость
&gt; ядра.

Вешайте багу на ядро.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>123056</commentid>
    <comment_count>14</comment_count>
    <who name="Sergey Vlasov">vsu</who>
    <bug_when>2011-07-11 19:43:17 +0400</bug_when>
    <thetext>(В ответ на комментарий №13)
&gt; Вешайте багу на ядро.

Не надо ничего вешать на ядро — проблема как раз в том, что mbmon лезет в порты мимо ядра.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>123057</commentid>
    <comment_count>15</comment_count>
    <who name="Roman Savochenko">rom_as</who>
    <bug_when>2011-07-11 19:49:41 +0400</bug_when>
    <thetext>(В ответ на комментарий №14)
&gt; Не надо ничего вешать на ядро — проблема как раз в том, что mbmon лезет в порты
&gt; мимо ядра.
Тогда будет самое правильное убрать его из репозитория, как минимум из P6, как потенциально опасное, не поддерживаемое и некорректно работающее с низкоуровневым API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>123071</commentid>
    <comment_count>16</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2011-07-12 02:53:07 +0400</bug_when>
    <thetext>(In reply to comment #7)
&gt; Как минимум уже один раз система повисла при фоновой работе этой программки,
&gt; после часа работы.
А это у тебя железо стреляться вполне может.  IPMI BMC тоже так умеет...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>123076</commentid>
    <comment_count>17</comment_count>
    <who name="Roman Savochenko">rom_as</who>
    <bug_when>2011-07-12 08:11:27 +0400</bug_when>
    <thetext>(В ответ на комментарий №16)
&gt; (In reply to comment #7)
&gt; &gt; Как минимум уже один раз система повисла при фоновой работе этой программки,
&gt; &gt; после часа работы.
&gt; А это у тебя железо стреляться вполне может.  IPMI BMC тоже так умеет...
В смысле?
Я на этом своём железе уже чётко и неоднократно заметил закономерность. Только mbmon работает часов 5 - жди зависаний с теме-же симптомами. При этом без mbmon и с lm_sensors машина работает сутками. И вот недавно, не запуская специально mbmon, я был удивлён получив характерное зависание. Как оказалось была несколько сломана инсталляция libsensors и моя программа автоматически начала использовать mbmon, а результат не стал долго себя ждать.
Можно конечно попробовать и на другой машине.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>123077</commentid>
    <comment_count>18</comment_count>
    <who name="Roman Savochenko">rom_as</who>
    <bug_when>2011-07-12 08:25:24 +0400</bug_when>
    <thetext>Возможно mbmon совсем можно не удалять, а достаточно будет установить конфликт с libsensors.

В ближайшее время попробую погонять тест mbmon при полном отсутствии libsensors.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>2213</attachid>
            <date>2007-09-29 00:32:45 +0400</date>
            <delta_ts>2007-09-29 00:32:45 +0400</delta_ts>
            <desc>mbmon_test.cpp</desc>
            <filename>mbmon_test.cpp</filename>
            <type>text/plain</type>
            <size>1663</size>
            <attacher name="Roman Savochenko">rom_as</attacher>
            
              <data encoding="base64">I2luY2x1ZGUgPHN0ZGxpYi5oPgojaW5jbHVkZSA8c3RkaW8uaD4KI2luY2x1ZGUgPHVuaXN0ZC5o
PgojaW5jbHVkZSA8c2lnbmFsLmg+CiNpbmNsdWRlIDx0aW1lLmg+CiNpbmNsdWRlIDxwdGhyZWFk
Lmg+Cgp2b2lkICpUYXNrKCB2b2lkICogKQp7CiAgICBmbG9hdCBwcmVjLCBwcmVjX21heD0wLjsK
ICAgIGxvbmcgbG9uZyB3b3JrX3RtLCBjdXJfdG07CiAgICBpbnQgcGVyID0gMTAwMDAwMDAwOwkv
L3MKICAgIHN0cnVjdCB0aW1lc3BlYyBnZXRfdG07CiAgICAKICAgIC8vQ2FsYyBuZXh0IHdvcmsg
dGltZSBhbmQgc2xlZXAKICAgIGNsb2NrX2dldHRpbWUoQ0xPQ0tfUkVBTFRJTUUsJmdldF90bSk7
CiAgICB3b3JrX3RtID0gKGxvbmcgbG9uZylnZXRfdG0udHZfc2VjKjEwMDAwMDAwMDArZ2V0X3Rt
LnR2X25zZWM7ICAgIAogICAgCiAgICBmb3IoaW50IGk9MDsgdHJ1ZS8qaSA8IDEwMDAqLzsgaSsr
KQogICAgewoJY2hhciBidWZbMTAwXSwgbmFtZVszMV07CiAgICAgICAgZmxvYXQgdmFsOwoJRklM
RSAqZnAgPSBwb3BlbigibWJtb24gLXIgLWMgMSIsInIiKTsKICAgICAgICBpZiggZnAgPT0gTlVM
TCApIHJldHVybiBOVUxMOwoJCSAgICAgICAKICAgICAgICB3aGlsZShmZ2V0cyhidWYsc2l6ZW9m
KGJ1ZiksZnApKQogICAgICAgIHsKCSAgICBpZiggc3NjYW5mKGJ1ZiwgIiUzMXMgOiAlZiIsIG5h
bWUsICZ2YWwpICE9IDIgKSBjb250aW51ZTsKCSAgICBwcmludGYoIiVzIDogJWZcbiIsbmFtZSx2
YWwpOwoJfQoJcGNsb3NlKGZwKTsgICAgCiAgICAKCXdvcmtfdG09d29ya190bStwZXI7CglnZXRf
dG0udHZfc2VjID0gd29ya190bS8xMDAwMDAwMDAwOyBnZXRfdG0udHZfbnNlYyA9IHdvcmtfdG0l
MTAwMDAwMDAwMDsKCWNsb2NrX25hbm9zbGVlcChDTE9DS19SRUFMVElNRSxUSU1FUl9BQlNUSU1F
LCZnZXRfdG0sTlVMTCk7CgljbG9ja19nZXR0aW1lKENMT0NLX1JFQUxUSU1FLCZnZXRfdG0pOwoJ
Y3VyX3RtID0gKGxvbmcgbG9uZylnZXRfdG0udHZfc2VjKjEwMDAwMDAwMDArZ2V0X3RtLnR2X25z
ZWM7CQoJcHJlYyA9IChmbG9hdCkoY3VyX3RtLXdvcmtfdG0pLzEwMDAwMDAuOwoJaWYocHJlYz5w
cmVjX21heCkgcHJlY19tYXg9cHJlYzsKCXByaW50ZigiUHJlY2lzc2lvbiAlZiBtczsgbWF4ICVm
XG4iLHByZWMscHJlY19tYXgpOwogICAgfSAgICAKfQoKaW50IG1haW4oIGludCBhcmdjLCBjaGFy
ICoqYXJndiApCnsgICAgCiAgICBwdGhyZWFkX3QgcHRocmlkOwogICAgcHRocmVhZF9hdHRyX3Qg
cHRocl9hdHRyOwogICAgcHRocmVhZF9hdHRyX2luaXQoJnB0aHJfYXR0cik7CiAgICBzdHJ1Y3Qg
c2NoZWRfcGFyYW0gcHJpb3I7CiAgICBwdGhyZWFkX2F0dHJfc2V0c2NoZWRwb2xpY3koJnB0aHJf
YXR0cixTQ0hFRF9SUik7CiAgICAvL3B0aHJlYWRfYXR0cl9zZXRzY2hlZHBvbGljeSgmcHRocl9h
dHRyLFNDSEVEX09USEVSKTsKICAgIHByaW9yLl9fc2NoZWRfcHJpb3JpdHk9MTA7CiAgICBwdGhy
ZWFkX2F0dHJfc2V0c2NoZWRwYXJhbSgmcHRocl9hdHRyLCZwcmlvcik7CiAgICBwdGhyZWFkX2Ny
ZWF0ZSgmcHRocmlkLCZwdGhyX2F0dHIsVGFzayxOVUxMKTsKICAgIHB0aHJlYWRfYXR0cl9kZXN0
cm95KCZwdGhyX2F0dHIpOwogICAgCiAgICB3aGlsZSh0cnVlKSBzbGVlcCgxMDApOwoKICAgIHJl
dHVybiAwOwp9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>