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

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

    <bug>
          <bug_id>31618</bug_id>
          
          <creation_ts>2015-12-12 21:08:31 +0300</creation_ts>
          <short_desc>отсутствуют необходимые зависимости в пакетах libvirt*</short_desc>
          <delta_ts>2016-03-28 15:44:09 +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>libvirt-daemon</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>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Стас">stas.grumbler</reporter>
          <assigned_to name="Alexey Shabalin">shaba</assigned_to>
          <cc>rx1513</cc>
    
    <cc>shaba</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>154235</commentid>
    <comment_count>0</comment_count>
    <who name="Стас">stas.grumbler</who>
    <bug_when>2015-12-12 21:08:31 +0300</bug_when>
    <thetext>На систему, развёрнутую с стартер-кита, установил libvirt-kvm и libvirt-lxc.
Запускаю /etc/init.d/libvirtd - демон сообщает в лог об успешном запуске и не работает (завершается).
Смотрю, что происходит при запуске - вижу, что как минимум два нужных пакета не установлены по зависимостям:
# /usr/sbin/libvirtd -v
2015-12-12 17:54:12.724+0000: 10378: info : libvirt version: 1.0.4, package: alt2
2015-12-12 17:54:12.724+0000: 10378: warning : virDriverLoadModule:72 : Module /usr/lib64/libvirt/connection-driver/libvirt_driver_interface.so not accessible
2015-12-12 17:54:12.724+0000: 10378: warning : virDriverLoadModule:72 : Module /usr/lib64/libvirt/connection-driver/libvirt_driver_xen.so not accessible
2015-12-12 17:54:12.726+0000: 10389: error : dnsmasqCapsRefreshInternal:735 : Cannot check dnsmasq binary /usr/sbin/dnsmasq: Нет такого файла или каталога
2015-12-12 17:54:12.795+0000: 10389: error : dnsmasqCapsRefreshInternal:735 : Cannot check dnsmasq binary /usr/sbin/dnsmasq: Нет такого файла или каталога
2015-12-12 17:54:12.820+0000: 10389: error : virCommandWait:2315 : внутренняя ошибка Child process (/usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf) unexpected exit status 1: libvirt:  ошибка : не удалось выполнить /usr/sbin/dnsmasq: Нет такого файла или каталога

2015-12-12 17:54:12.877+0000: 10389: error : virDBusGetSystemBus:86 : внутренняя ошибка Unable to get DBus system bus connection: Failed to connect to socket /var/run/dbus/system_bus_socket: Нет такого файла или каталога
2015-12-12 17:54:12.877+0000: 10389: warning : networkStartup:435 : DBus not available, disabling firewalld support in bridge_driver: внутренняя ошибка Unable to get DBus system bus connection: Failed to connect to socket /var/run/dbus/system_bus_socket: Нет такого файла или каталога
2015-12-12 17:54:12.901+0000: 10389: error : virDBusGetSystemBus:86 : внутренняя ошибка Unable to get DBus system bus connection: Failed to connect to socket /var/run/dbus/system_bus_socket: Нет такого файла или каталога
2015-12-12 17:54:12.909+0000: 10389: error : nwfilterDriverStartup:213 : DBus matches could not be installed. Disabling nwfilter driver
2015-12-12 17:54:12.909+0000: 10389: error : virDBusGetSystemBus:86 : внутренняя ошибка Unable to get DBus system bus connection: Failed to connect to socket /var/run/dbus/system_bus_socket: Нет такого файла или каталога
2015-12-12 17:54:12.909+0000: 10389: error : virStateInitialize:826 : Initialization of NWFilter state driver failed
2015-12-12 17:54:12.909+0000: 10389: error : daemonRunStateInit:880 : Ошибка инициализации состояния драйвера

Список пакетов libvirt-*
libvirt-client-1.0.4-alt2
libvirt-daemon-config-network-1.0.4-alt2
libvirt-daemon-driver-secret-1.0.4-alt2
libvirt-lxc-1.0.4-alt2
libvirt-daemon-1.0.4-alt2
libvirt-daemon-driver-lxc-1.0.4-alt2
libvirt-daemon-driver-nwfilter-1.0.4-alt2
libvirt-daemon-driver-nodedev-1.0.4-alt2
libvirt-daemon-driver-storage-1.0.4-alt2
libvirt-daemon-driver-qemu-1.0.4-alt2
libvirt-kvm-1.0.4-alt2
libvirt-daemon-driver-network-1.0.4-alt2
libvirt-daemon-config-nwfilter-1.0.4-alt2
libvirt-qemu-common-1.0.4-alt2


В форуме я однажды уже спрашивал, почему в зависимостях к libvirt-daemon нет dnsmasq, ответ от одного из ментейнеров был, что, мол, он может работать и без dnsmasq. Как я вижу тут - не может (как минимум без напильника, который мне неизвестен).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155853</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Shabalin">shaba</who>
    <bug_when>2016-03-24 10:50:33 +0300</bug_when>
    <thetext>Основная проблема не в отсутствии dnsmasq, а в не запущенном dbus.
Unable to get DBus system bus connection: Failed to connect
to socket /var/run/dbus/system_bus_socket: Нет такого файла или каталога

Как я писал в #31906 я не буду стартовать messagebus из libvirtd.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155854</commentid>
    <comment_count>2</comment_count>
    <who name="Стас">stas.grumbler</who>
    <bug_when>2016-03-24 11:17:55 +0300</bug_when>
    <thetext>(В ответ на комментарий №1)
&gt; Основная проблема не в отсутствии dnsmasq, а в не запущенном dbus.
...
&gt; Как я писал в #31906 я не буду стартовать messagebus из libvirtd.

Во-первых, основное в этом багрепорте - не установленный dnsmask. dbus всё же установлен, хотя и по зависимостям от других пакетов.

Во-вторых, запустить dbus и поставить ему автозапуск можно руками, что я и сделал тогда.
Хорошо бы в стартовом скрипте sysV сделать проверку и выдать ошибку, если dbus не запущен, а в конфиге systemd можно просто указать зависимость запуска.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155855</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Shabalin">shaba</who>
    <bug_when>2016-03-24 11:26:00 +0300</bug_when>
    <thetext>для systemd в libvirtd.service указано After=dbus.service, там проблем быть не должно.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155856</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Shabalin">shaba</who>
    <bug_when>2016-03-24 11:35:48 +0300</bug_when>
    <thetext>1) libvirtd может работать без dnsmasq
2) libvirtd не может работать без dbus. посмотрю как лучше тут поступить.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155858</commentid>
    <comment_count>5</comment_count>
    <who name="Стас">stas.grumbler</who>
    <bug_when>2016-03-24 11:57:31 +0300</bug_when>
    <thetext>(В ответ на комментарий №4)
&gt; 1) libvirtd может работать без dnsmasq

&quot;Из коробки&quot; не работает. Если считаете, что зависимость у libvirt-daemon-config-network от dnsmasq ставить не нужно - хорошо, тогда нужно изменить конфигурацию libvirt, устанавливаемую с пакетом. Варианты:
- сделать сеть default изолированной либо маршрутизируемой;
- убрать autostart у сети default, это проще - убираем из спека строку
	ln -s ../default.xml /etc/libvirt/qemu/networks/autostart/default.xml
 Одновременно хорошо бы внести в документацию предупреждение о необходимости dnsmasq для типа сети &quot;nat&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155876</commentid>
    <comment_count>6</comment_count>
    <who name="Alexey Shabalin">shaba</who>
    <bug_when>2016-03-25 23:32:37 +0300</bug_when>
    <thetext>Делаю следующее(надеюсь устроит всех):
1) убираю из спека ln -s ../default.xml /etc/libvirt/qemu/networks/autostart/default.xml
т.е. после установки никакая сеть сама стартовать не будет. И это правильно.
У кого уже есть такой симлинк, но сеть default ему не нужна, придется удалить самостоятельно.

2) зависимость на dnsmasq добавил в пакет libvirt-daemon-config-network.
т.к. автостарта сети default нет, сам он стартовать не будет. сервис dnsmasq по умолчанию тоже не стартует. 
Но ничего не должно мешать libvirt создать виртуальную сеть с раздачей алресов по dhcp с помощью dnsmasq. весит он около 300кб, проблем создать не должен.

3) добавлена зависимость на dbus в пакет libvirt-daemon, теперь он должен стартовать без проблем.

4) работа без polkit по-прежнему возможна, поэтому его не добавляю в зависимости.

Если нет возражений, отправлю в таком виде в сизиф.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155877</commentid>
    <comment_count>7</comment_count>
    <who name="Alexey Shabalin">shaba</who>
    <bug_when>2016-03-25 23:37:15 +0300</bug_when>
    <thetext>тестовое задание #162000</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155883</commentid>
    <comment_count>8</comment_count>
    <who name="Стас">stas.grumbler</who>
    <bug_when>2016-03-27 14:05:36 +0300</bug_when>
    <thetext>(В ответ на комментарий №7)
&gt; тестовое задание #162000

Проверил, с qemu работает сразу после установки.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155898</commentid>
    <comment_count>9</comment_count>
    <who name="Alexey Shabalin">shaba</who>
    <bug_when>2016-03-28 15:44:09 +0300</bug_when>
    <thetext>исправлено в 1.3.2-alt2</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>