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

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

    <bug>
          <bug_id>35299</bug_id>
          
          <creation_ts>2018-08-28 14:42:49 +0300</creation_ts>
          <short_desc>segfault при запуске виртуальной машины, если файл виртуального диска отсутствует</short_desc>
          <delta_ts>2018-11-23 19:25:11 +0300</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>3</classification_id>
          <classification>Distributions</classification>
          <product>Branch p8</product>
          <component>libvirt-daemon</component>
          <version>не указана</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="Alexey Sheplyakov">asheplyakov</reporter>
          <assigned_to name="Grigory Ustinov">grenka</assigned_to>
          <cc>grenka</cc>
    
    <cc>grenka</cc>
          
          <qa_contact name="qa-p8@altlinux.org">qa-p8</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>173645</commentid>
    <comment_count>0</comment_count>
      <attachid>7720</attachid>
    <who name="Alexey Sheplyakov">asheplyakov</who>
    <bug_when>2018-08-28 14:42:49 +0300</bug_when>
    <thetext>Created attachment 7720
Test VM definition

Действия:

1. Определяем VM, в качестве образа диска указываем путь, которого не существует:

$ virsh define crashme.xml

2. Запускаем VM:

$ virsh start crashme

Ожидания:

Ошибка вида &quot;не удалось запустить crashme, т.к. отсутствует файл /var/empty/nonexistent.iso&quot;


Реальность:

error: Disconnected from qemu:///system due to end of file
error: Failed to start domain crashme
error: End of file while reading data: Input/output error

В dmesg появляется сообщение

[1551630.055809] libvirtd[32283]: segfault at 10 ip 00007f5e102d0234 sp 00007f5e1813c800 error 4 in libvirt_driver_storage.so[7f5e102bf000+2f000]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>173774</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Sheplyakov">asheplyakov</who>
    <bug_when>2018-08-31 10:41:49 +0300</bug_when>
    <thetext>(gdb) bt
#0  virStorageFileReportBrokenChain (errcode=2, src=src@entry=0x7fffdc072640, parent=0x7fffdc072640) at storage/storage_source.c:422
#1  0x00007fffe6652bd6 in qemuDomainDetermineDiskChain (driver=driver@entry=0x7fffdc122e60, vm=vm@entry=0x7fffdc037d10, disk=disk@entry=0x7fffdc1159a0, 
    force_probe=force_probe@entry=true, report_broken=report_broken@entry=true) at qemu/qemu_domain.c:6383
#2  0x00007fffe667ac9a in qemuProcessPrepareHostStorage (flags=17, vm=0x7fffdc037d10, driver=0x7fffdc122e60) at qemu/qemu_process.c:5562
#3  qemuProcessPrepareHost (driver=driver@entry=0x7fffdc122e60, vm=vm@entry=0x7fffdc037d10, flags=flags@entry=17) at qemu/qemu_process.c:5668
#4  0x00007fffe6680865 in qemuProcessStart (conn=conn@entry=0x7fffb4000b20, driver=driver@entry=0x7fffdc122e60, vm=vm@entry=0x7fffdc037d10, 
    updatedCPU=updatedCPU@entry=0x0, asyncJob=asyncJob@entry=QEMU_ASYNC_JOB_START, migrateFrom=migrateFrom@entry=0x0, migrateFd=-1, migratePath=0x0, snapshot=0x0, 
    vmop=VIR_NETDEV_VPORT_PROFILE_OP_CREATE, flags=17) at qemu/qemu_process.c:6128
#5  0x00007fffe66e05ff in qemuDomainObjStart (conn=0x7fffb4000b20, driver=driver@entry=0x7fffdc122e60, vm=0x7fffdc037d10, flags=flags@entry=0, 
    asyncJob=QEMU_ASYNC_JOB_START) at qemu/qemu_driver.c:7283
#6  0x00007fffe66e0cf6 in qemuDomainCreateWithFlags (dom=0x7fffc4000990, flags=0) at qemu/qemu_driver.c:7337
#7  0x00007ffff778113f in virDomainCreate (domain=domain@entry=0x7fffc4000990) at libvirt-domain.c:6531
#8  0x000055555559b643 in remoteDispatchDomainCreate (server=0x5555558369a0, msg=0x555555836850, args=&lt;optimized out&gt;, rerr=0x7fffee0c5c00, client=0x55555583fcf0)
    at remote_dispatch.h:4222
#9  remoteDispatchDomainCreateHelper (server=0x5555558369a0, client=0x55555583fcf0, msg=0x555555836850, rerr=0x7fffee0c5c00, args=&lt;optimized out&gt;, ret=0x7fffc40008e0)
    at remote_dispatch.h:4198
#10 0x00007ffff77eaaa9 in virNetServerProgramDispatchCall (msg=0x555555836850, client=0x55555583fcf0, server=0x5555558369a0, prog=0x55555583ccd0)
    at rpc/virnetserverprogram.c:437
#11 virNetServerProgramDispatch (prog=0x55555583ccd0, server=server@entry=0x5555558369a0, client=0x55555583fcf0, msg=0x555555836850) at rpc/virnetserverprogram.c:307
#12 0x00005555555ab248 in virNetServerProcessMsg (msg=&lt;optimized out&gt;, prog=&lt;optimized out&gt;, client=&lt;optimized out&gt;, srv=0x5555558369a0) at rpc/virnetserver.c:148
#13 virNetServerHandleJob (jobOpaque=&lt;optimized out&gt;, opaque=0x5555558369a0) at rpc/virnetserver.c:169
#14 0x00007ffff76d02eb in virThreadPoolWorker (opaque=opaque@entry=0x555555843470) at util/virthreadpool.c:167
#15 0x00007ffff76cf698 in virThreadHelper (data=&lt;optimized out&gt;) at util/virthread.c:206
#16 0x00007ffff66ab414 in start_thread (arg=0x7fffee0c6700) at pthread_create.c:333
#17 0x00007ffff63e93ad in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>173775</commentid>
    <comment_count>2</comment_count>
    <who name="Alexey Sheplyakov">asheplyakov</who>
    <bug_when>2018-08-31 10:43:36 +0300</bug_when>
    <thetext>Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffee0c6700 (LWP 20275)]
virStorageFileReportBrokenChain (errcode=2, src=src@entry=0x7fffdc072640, parent=0x7fffdc072640) at storage/storage_source.c:422
422	    unsigned int access_user = src-&gt;drv-&gt;uid;

(gdb) print src-&gt;drv
$3 = (virStorageDriverDataPtr) 0x0</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>173777</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Sheplyakov">asheplyakov</who>
    <bug_when>2018-08-31 10:46:46 +0300</bug_when>
    <thetext>Эта же проблема в Red Hat bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1522682</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>173778</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Sheplyakov">asheplyakov</who>
    <bug_when>2018-08-31 10:50:39 +0300</bug_when>
    <thetext>patch: https://github.com/libvirt/libvirt/commit/2d07f1f0ebd44b0348daa61afa0de34f3f838c22</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>173819</commentid>
    <comment_count>5</comment_count>
    <who name="Grigory Ustinov">grenka</who>
    <bug_when>2018-09-01 14:55:49 +0300</bug_when>
    <thetext>Бэкпортировать из сизифа новую версию или просто приложить патч к существующей версии?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176020</commentid>
    <comment_count>6</comment_count>
    <who name="Repository Robot">repository-robot</who>
    <bug_when>2018-11-23 19:25:11 +0300</bug_when>
    <thetext>libvirt-3.10.0-alt2 -&gt; p8:

Mon Nov 19 2018 Grigory Ustinov &lt;grenka@altlinux&gt; 3.10.0-alt2
- Cherry-picked commit 2d07f1f (Closes: #35299).

Fri Dec 08 2017 Alexey Shabalin &lt;shaba@altlinux.ru&gt; 3.10.0-alt1
- 3.10.0

Mon Oct 30 2017 Alexey Shabalin &lt;shaba@altlinux.ru&gt; 3.8.0-alt1
- 3.8.0
- fixed CVE-2017-1000256

Mon Sep 04 2017 Alexey Shabalin &lt;shaba@altlinux.ru&gt; 3.7.0-alt1
- 3.7.0

Tue Aug 08 2017 Alexey Shabalin &lt;shaba@altlinux.ru&gt; 3.6.0-alt1
- 3.6.0</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>7720</attachid>
            <date>2018-08-28 14:42:49 +0300</date>
            <delta_ts>2018-08-28 14:42:49 +0300</delta_ts>
            <desc>Test VM definition</desc>
            <filename>crashme.xml</filename>
            <type>application/xml</type>
            <size>891</size>
            <attacher name="Alexey Sheplyakov">asheplyakov</attacher>
            
              <data encoding="base64">PGRvbWFpbiB0eXBlPSdrdm0nPgogIDxuYW1lPmNyYXNobWU8L25hbWU+CiAgPG1lbW9yeSB1bml0
PSdNaUInPjEwMjQ8L21lbW9yeT4KICA8Y3VycmVudE1lbW9yeSB1bml0PSdNaUInPjEwMjQ8L2N1
cnJlbnRNZW1vcnk+CiAgPHZjcHUgcGxhY2VtZW50PSdzdGF0aWMnPjE8L3ZjcHU+CiAgPHJlc291
cmNlPgogICAgPHBhcnRpdGlvbj4vbWFjaGluZTwvcGFydGl0aW9uPgogIDwvcmVzb3VyY2U+CiAg
PG9zPgogICAgPHR5cGUgYXJjaD0neDg2XzY0JyBtYWNoaW5lPSdwYy0xLjAnPmh2bTwvdHlwZT4K
ICA8L29zPgogIDxmZWF0dXJlcz4KICAgIDxhY3BpLz4KICAgIDxhcGljLz4KICAgIDxwYWUvPgog
IDwvZmVhdHVyZXM+CiAgPGNsb2NrIG9mZnNldD0ndXRjJy8+CiAgPG9uX3Bvd2Vyb2ZmPmRlc3Ry
b3k8L29uX3Bvd2Vyb2ZmPgogIDxvbl9yZWJvb3Q+cmVzdGFydDwvb25fcmVib290PgogIDxvbl9j
cmFzaD5yZXN0YXJ0PC9vbl9jcmFzaD4KICA8ZGV2aWNlcz4KICAgIDxlbXVsYXRvcj4vdXNyL2Jp
bi9rdm08L2VtdWxhdG9yPgogICAgPGRpc2sgdHlwZT0nZmlsZScgZGV2aWNlPSdjZHJvbSc+CiAg
ICAgIDxkcml2ZXIgbmFtZT0ncWVtdScgdHlwZT0ncmF3JyBjYWNoZT0nbm9uZScvPgogICAgICA8
c291cmNlIGZpbGU9Jy92YXIvZW1wdHkvbm9uZXhpc3RlbnQuaXNvJy8+CiAgICAgIDx0YXJnZXQg
ZGV2PSdzZGEnIGJ1cz0nc2F0YScvPgogICAgPC9kaXNrPgogICAgPGNvbnRyb2xsZXIgdHlwZT0n
cGNpJyBpbmRleD0nMCcgbW9kZWw9J3BjaS1yb290Jy8+CiAgICA8Y29udHJvbGxlciB0eXBlPSd1
c2InIGluZGV4PScwJyBtb2RlbD0nbm9uZScvPgogICAgPGNvbnRyb2xsZXIgdHlwZT0nc2F0YScg
aW5kZXg9JzAnLz4KICA8L2RldmljZXM+CjwvZG9tYWluPgoK
</data>

          </attachment>
      

    </bug>

</bugzilla>