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

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

    <bug>
          <bug_id>17955</bug_id>
          
          <creation_ts>2008-11-20 20:17:36 +0300</creation_ts>
          <short_desc>nut works bad with current libusb</short_desc>
          <delta_ts>2012-04-07 15:18:43 +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>nut</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>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>17727</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Vladimir V. Kamarzin">vvk</reporter>
          <assigned_to name="Michael Shigorin">mike</assigned_to>
          <cc>ab</cc>
    
    <cc>amike</cc>
    
    <cc>amike</cc>
    
    <cc>ded</cc>
    
    <cc>ldv</cc>
    
    <cc>mike</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>81412</commentid>
    <comment_count>0</comment_count>
    <who name="Vladimir V. Kamarzin">vvk</who>
    <bug_when>2008-11-20 20:17:36 +0300</bug_when>
    <thetext>При использовании nut с libusb-0.9.3-alt3.0 наблюдаются ужасные вещи.
Например, дома newhidups съедает 1.9G RES, на работе даёт 99% загрузку CPU

ab в курсе, обещал починить, ждём. Бага носит информационно-отслеживательный характер.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>81525</commentid>
    <comment_count>1</comment_count>
    <who name="Alexander Bokovoy">ab</who>
    <bug_when>2008-11-22 08:22:55 +0300</bug_when>
    <thetext>Проверено с nut 2.2.2 от Amike (git.alt:/people/amike/packages/nut.git) и libusb 0.9.4-alt1.0 все работает как надо, никаких проблем больше не наблюдается.

К сожалению, для помещения nut 2.2.2 в Сизиф надо поработать над переездом конфигурационных файлов. Как минимум, /etc/nut/ups.conf потребует переименования драйвера (newhidups -&gt; usbhid-ups), а также файлы конфигурации для других служб на самом деле лежат в /var/lib/nut/etc/nut и должны как-то корректно синхронизироваться.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>81561</commentid>
    <comment_count>2</comment_count>
    <who name="Mike">amike</who>
    <bug_when>2008-11-22 22:03:42 +0300</bug_when>
    <thetext>(In reply to comment #1)
&gt; Проверено с nut 2.2.2 от Amike (git.alt:/people/amike/packages/nut.git) и libusb 0.9.4-alt1.0 все работает как
&gt; надо, никаких проблем больше не наблюдается.
хорощо
&gt; К сожалению, для помещения nut 2.2.2 в Сизиф надо поработать над переездом
&gt; конфигурационных файлов. Как минимум, /etc/nut/ups.conf потребует переименования
&gt; драйвера (newhidups -&gt; usbhid-ups), а также файлы конфигурации для других служб на
&gt; самом деле лежат в /var/lib/nut/etc/nut и должны как-то корректно синхронизироваться.
&gt; 
сейчас занят этим. 
Спасибо что посмотрели сборку. 
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>81580</commentid>
    <comment_count>3</comment_count>
    <who name="Alexander Bokovoy">ab</who>
    <bug_when>2008-11-23 22:09:07 +0300</bug_when>
    <thetext>Более плотное вычитывание кода драйверов USB-устройств в NUT 2.2.2 привело исправлению некоторого количества утечек файловых дескрипторов в libusb (0.9.4-alt2.0).

Код hidups-usb в nut написан просто отвратительно с точки зрения работы со сторонними ресурсами. Типичный подход: создать ресурс USB (usb_open()), при обнаружении каких-либо ошибок работы с ним просто обнулить внутренний указатель на устройство и вызвать пересоединение к устройству. В результате старый указатель на ресурс USB &quot;подвисает&quot; неиспользуемым, выполняется повторное сканирование шины, распределяются новые ресурсы, теряются файловые дескрипторы и течет память.

Я поправил немного код hidups-usb так, что память не течет и файловые дескрипторы не теряются, однако по-прежнему вся эта система не работает, если вдруг что-то происходит с usb-устройством (например, система автоматически включила режим сохранения энергии). Повторное присоединение к устройству не проходит, буду смотреть дальше.

Со старым кодом в newhidups все еще хуже... В 2.2.2 он уже совсем не используется (код драйвера присутствует, но содержит вызовы функций, которые уже отсутствуют в инфраструктуре NUT 2.2.2). Написан он в том же стиле и просто игнорирует управление ресурсами в USB.

Примитивный патч, который исправляет элементарные ошибки и позволяет работать hidups-usb до &quot;сбоя&quot; устройства, прилагается.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>81581</commentid>
    <comment_count>4</comment_count>
      <attachid>3085</attachid>
    <who name="Alexander Bokovoy">ab</who>
    <bug_when>2008-11-23 22:09:58 +0300</bug_when>
    <thetext>Created attachment 3085
Первая версия исправления hidups-usb</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>99335</commentid>
    <comment_count>5</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2009-09-18 01:07:22 +0400</bug_when>
    <thetext>Пакет nut ищет мейнтейнера.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>102313</commentid>
    <comment_count>6</comment_count>
    <who name="Vladimir V. Kamarzin">vvk</who>
    <bug_when>2009-10-29 09:50:54 +0300</bug_when>
    <thetext>Какие-то наработки по исправлению помимо уже представленного есть у кого-нибудь?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>116763</commentid>
    <comment_count>7</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2010-12-29 13:18:35 +0300</bug_when>
    <thetext>Пакет сборки amike@ залил в сизиф всё-таки я.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130455</commentid>
    <comment_count>8</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2012-04-07 15:18:43 +0400</bug_when>
    <thetext>УМВР на 2.6.3-alt1 (Powerware 9120 по USB).</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>3085</attachid>
            <date>2008-11-23 22:09:58 +0300</date>
            <delta_ts>2008-11-23 22:09:58 +0300</delta_ts>
            <desc>Первая версия исправления hidups-usb</desc>
            <filename>nut-usb.patch</filename>
            <type>text/plain</type>
            <size>1408</size>
            <attacher name="Alexander Bokovoy">ab</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL251dC9kcml2ZXJzL2xpYnVzYi5jIGIvbnV0L2RyaXZlcnMvbGlidXNiLmMK
aW5kZXggYjZmNWZiNS4uNWE1MTliYSAxMDA2NDQKLS0tIGEvbnV0L2RyaXZlcnMvbGlidXNiLmMK
KysrIGIvbnV0L2RyaXZlcnMvbGlidXNiLmMKQEAgLTIwOCw3ICsyMDgsMTAgQEAgc3RhdGljIGlu
dCBsaWJ1c2Jfb3Blbih1c2JfZGV2X2hhbmRsZSAqKnVkZXZwLCBVU0JEZXZpY2VfdCAqY3VyRGV2
aWNlLCBVU0JEZXZpY2UKICNlbmRpZgogCQkJCiAJCQkvKiBzZXQgZGVmYXVsdCBpbnRlcmZhY2Ug
Ki8KLQkJCXVzYl9zZXRfYWx0aW50ZXJmYWNlKHVkZXYsIDApOworCQkJaWYgKHVzYl9zZXRfYWx0
aW50ZXJmYWNlKHVkZXYsIDApIDwgMCkgeworCQkJCXVwc2RlYnVneCgyLCAiIENvdWxkbid0IHNl
dCBkZWZhdWx0IGludGVyZmFjZSIpOworCQkJCWdvdG8gbmV4dF9kZXZpY2U7CisJCQl9CiAJCQkK
IAkJCWlmICghY2FsbGJhY2spIHsKIAkJCQlyZXR1cm4gMTsKZGlmZiAtLWdpdCBhL251dC9kcml2
ZXJzL3VzYmhpZC11cHMuYyBiL251dC9kcml2ZXJzL3VzYmhpZC11cHMuYwppbmRleCA0ODI0MTg5
Li4zZmZhMWUyIDEwMDY0NAotLS0gYS9udXQvZHJpdmVycy91c2JoaWQtdXBzLmMKKysrIGIvbnV0
L2RyaXZlcnMvdXNiaGlkLXVwcy5jCkBAIC04NCw3ICs4NCw3IEBAIHN0YXRpYyBpbnQgcG9sbGZy
ZXEgPSBERUZBVUxUX1BPTExGUkVROwogc3RhdGljIGludCB1cHNfc3RhdHVzID0gMDsKIHN0YXRp
YyBib29sX3QgZGF0YV9oYXNfY2hhbmdlZCA9IEZBTFNFOyAvKiBmb3IgU0VNSV9TVEFUSUMgZGF0
YSBwb2xsaW5nICovCiBzdGF0aWMgdGltZV90IGxhc3Rwb2xsOyAvKiBUaW1lc3RhbXAgdGhlIGxh
c3QgcG9sbGluZyAqLwotaGlkX2Rldl9oYW5kbGVfdCB1ZGV2OworaGlkX2Rldl9oYW5kbGVfdCB1
ZGV2ID0gTlVMTDsKIAogLyogc3VwcG9ydCBmdW5jdGlvbnMgKi8KIHN0YXRpYyBoaWRfaW5mb190
ICpmaW5kX251dF9pbmZvKGNvbnN0IGNoYXIgKnZhcm5hbWUpOwpAQCAtMTM2MCw3ICsxMzYwLDkg
QEAgc3RhdGljIGludCByZWNvbm5lY3RfdXBzKHZvaWQpCiAJdXBzZGVidWd4KDQsICI9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSIpOwogCXVwc2RlYnVn
eCg0LCAiPSBkZXZpY2UgaGFzIGJlZW4gZGlzY29ubmVjdGVkLCB0cnkgdG8gcmVjb25uZWN0ID0i
KTsKIAl1cHNkZWJ1Z3goNCwgIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Iik7Ci0KKwlpZiAodWRldikKKwkJY29tbV9kcml2ZXItPmNsb3NlKHVkZXYp
OworCQogCXJldCA9IGNvbW1fZHJpdmVyLT5vcGVuKCZ1ZGV2LCAmY3VyRGV2aWNlLCBzdWJkcml2
ZXJfbWF0Y2hlciwKICNpZmRlZiBTSFVUX01PREUKIAkJTlVMTCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>