Bug 1334237

Summary: Dump a guest with long domain name by watchdog failed
Product: Red Hat Enterprise Linux 7 Reporter: Fangge Jin <fjin>
Component: libvirtAssignee: Martin Kletzander <mkletzan>
Status: CLOSED ERRATA QA Contact: Virtualization Bugs <virt-bugs>
Severity: medium Docs Contact:
Priority: medium    
Version: 7.3CC: dyuan, rbalakri, yafu, zpeng
Target Milestone: rcKeywords: Upstream
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: libvirt-2.0.0-1.el7 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-11-03 18:45:04 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Fangge Jin 2016-05-09 09:05:14 UTC
Description of problem:
Prepare a guest with long name(248-character), try to get guest dump file by watchdog, but no dump file is generated due to file name too long:
2016-05-05 15:20:37.466+0000: 3440: error : qemuOpenFileAs:3076 : Failed to create file '/var/lib/libvirt/qemu/dump/1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111-1462461637': File name too long
2016-05-05 15:20:37.466+0000: 3440: error : processWatchdogEvent:3946 : operation failed: Dump failed

Version-Release number of selected component (if applicable):
libvirt-1.3.4-1.el7

How reproducible:
100%

Steps:
1.Prepare a guest with 248-character in domain name and with watchdog device:
virsh # dumpxml 1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
...
    <watchdog model='i6300esb' action='dump'>
      <alias name='watchdog0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x0c' function='0x0'/>
    </watchdog>
...

2.In guest:
#echo 1>/dev/watchdog

Wait 30s, check dump file
# ll /var/lib/libvirt/qemu/dump/
(no dump file is generated)

3.There is error log in libvirtd.log:
2016-05-05 15:20:37.466+0000: 3440: error : qemuOpenFileAs:3076 : Failed to create file '/var/lib/libvirt/qemu/dump/1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111-1462461637': File name too long
2016-05-05 15:20:37.466+0000: 3440: error : processWatchdogEvent:3946 : operation failed: Dump failed

Actual results:
Dump guest by watchdog failed when domain has a long name

Expected results:
Dump guest by watchdog successfully.

Additional info:

Comment 2 Martin Kletzander 2016-06-13 14:35:42 UTC
Patch posted upstream:

https://www.redhat.com/archives/libvir-list/2016-June/msg00776.html

Comment 3 Martin Kletzander 2016-06-16 14:43:29 UTC
Fixed upstream with v1.3.5-278-gab74f60a3668:
commit ab74f60a3668c401ff812ff0beb38f34bf4dcc6b
Author: Martin Kletzander <mkletzan>
Date:   Mon Jun 13 16:28:06 2016 +0200

    qemu: Shorten domain name for watchdog coredump

Comment 5 yafu 2016-07-26 02:39:24 UTC
Reproduced with libvirt-1.3.4-1.el7.
Steps are as comment0.

Verify pass with libvirt-2.0.0-3.el7.x86_64.
Test steps:
1.Prepare a guest with 248-character in domain name and with watchdog device:
virsh # dumpxml 1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
...
    <watchdog model='i6300esb' action='dump'>
      <alias name='watchdog0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x0c' function='0x0'/>
    </watchdog>
...

2.In guest:
#echo 1>/dev/watchdog

3.Wait 30s, check dump file, could see dump file create correctly:
#ll /var/lib/libvirt/qemu/dump/
-rw-------. 1 root root 1822568040 Jul 26 09:59 6-11111111111111111111-2016-07-26-09:59:37

Comment 7 errata-xmlrpc 2016-11-03 18:45:04 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://rhn.redhat.com/errata/RHSA-2016-2577.html