Bug 811673 - guestfs_last_error not set when qemu fails early during launch
guestfs_last_error not set when qemu fails early during launch
Status: CLOSED ERRATA
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: libguestfs (Show other bugs)
6.3
Unspecified Unspecified
unspecified Severity unspecified
: rc
: ---
Assigned To: Richard W.M. Jones
Virtualization Bugs
:
Depends On: 811650
Blocks:
  Show dependency treegraph
 
Reported: 2012-04-11 12:58 EDT by Richard W.M. Jones
Modified: 2012-06-20 03:01 EDT (History)
7 users (show)

See Also:
Fixed In Version: libguestfs-1.16.18-2.el6
Doc Type: Bug Fix
Doc Text:
Cause: libguestfs was not setting an error during some appliance launch failures. Python bindings assume that the error string is not NULL, and would segfault if it was NULL. Consequence: Python programs could segfault when 'g.launch()' was called under some circumstances. Fix: libguestfs now sets the error string on all failure paths in launch, and the Python bindings have been fixed not to segfault. Result: Python programs won't segfault when calling 'g.launch()'
Story Points: ---
Clone Of: 811650
Environment:
Last Closed: 2012-06-20 03:01:49 EDT
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Richard W.M. Jones 2012-04-11 12:58:41 EDT
+++ This bug was initially created as a clone of Bug #811650 +++

Description of problem:

(Reported by Igor Lvovsky on RHEL 6.2 + libguestfs 1.16.15 from
preview repository)

> In [5]: guest.launch()                                                        
> python: Objects/stringobject.c:115: PyString_FromString: Assertion `str !=    
> ((void *)0)' failed.                                                          
> Aborted                                                                       

Version-Release number of selected component (if applicable):

libguestfs 1.16.15 on RHEL 6.2/6.3.

Fixed upstream:
https://github.com/libguestfs/libguestfs/commit/0f7de2279a4af0bb259c9e36fca5e5c3aa835301

There is a regression test which segfaults without the above
patch here:
https://github.com/libguestfs/libguestfs/commit/b6dd7e72500cbfa4e13379b9f2b1d0ccfa7ebec3
Comment 2 Qixiang Wan 2012-04-17 04:04:25 EDT
Verified with libguestfs-1.16.18-2.el6.x86_64.

Tested with the regression case "python/t/rhbz811650.py":

Before fix (libguestfs-1.16.15-1.el6.x86_64):

# python ./rhbz811650.py 
python: Objects/stringobject.c:115: PyString_FromString: Assertion `str != ((void *)0)' failed.
Aborted (core dumped)

After fix:

# python ./rhbz811650.py 
#
Comment 3 Richard W.M. Jones 2012-04-26 09:50:05 EDT
    Technical note added. If any revisions are required, please edit the "Technical Notes" field
    accordingly. All revisions will be proofread by the Engineering Content Services team.
    
    New Contents:
Cause:
libguestfs was not setting an error during some appliance launch failures.  Python bindings assume that the error string is not NULL, and would segfault if it was NULL.

Consequence:
Python programs could segfault when 'g.launch()' was called under some circumstances.

Fix:
libguestfs now sets the error string on all failure paths in launch, and the Python bindings have been fixed not to segfault.

Result:
Python programs won't segfault when calling 'g.launch()'
Comment 5 errata-xmlrpc 2012-06-20 03:01:49 EDT
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.

http://rhn.redhat.com/errata/RHSA-2012-0774.html

Note You need to log in before you can comment on or make changes to this bug.