Bug 616060

Summary: netcf: Show ifup output in relevant error message
Product: Red Hat Enterprise Linux 6 Reporter: Cole Robinson <crobinso>
Component: netcfAssignee: Laine Stump <laine>
Status: CLOSED ERRATA QA Contact: qe-baseos-daemons
Severity: medium Docs Contact:
Priority: low    
Version: 6.0CC: dallan, dyuan, mjenner, syeghiay, vbian
Target Milestone: rc   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: netcf-0.1.9-1.el6 Doc Type: Bug Fix
Doc Text:
In previous versions of netcf, when a management application (e.g. virt-manager) used netcf to start or stop an interface and an error occurred during this operation, netcf could only return the exit code of the program it uses for these operations (/sbin/ifup and /sbin/ifdown). This could make it more difficult than necessary to troubleshoot problems - ifup and ifdown sometimes provide a more detailed reason for the failure than can be communicated in an exit code. netcf has been modified to capture the stdout and stderr output of ifup and ifdown, and forward that information back to the management application in the case of an error, which should make it easier to troubleshoot problems.
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-12-06 15:18:46 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 651032    
Bug Blocks:    

Description Cole Robinson 2010-07-19 14:48:04 UTC
netcf doesn't report cmdline output of failed commands in it's error messages. Example (via virt-manager/libvirt):

https://bugzilla.redhat.com/show_bug.cgi?id=612068
RuntimeError: Could not create interface: internal error failed to create
(start) interface br0 (netcf: failed to execute external program - Running
'ifup br0' failed with exit code 1)

Firstly, 'failed to execute' doesn't sound right in this case, my guess is ifup was launched fine. Secondly, ifup might have given us informative stdout/stderr output, and this info should be included in the error message. Code for this can probably be stolen from libvirt.

Comment 1 Suzanne Logcher 2011-03-28 19:54:01 UTC
Since RHEL 6.1 External Beta has begun, and this bug remains 
unresolved, it has been rejected as it is not proposed as an 
exception or blocker.

Red Hat invites you to ask your support representative to 
propose this request, if appropriate and relevant, in the 
next release of Red Hat Enterprise Linux.

Comment 2 Laine Stump 2011-05-18 17:36:32 UTC
A fix has been committed to upstream netcf, and will be included when RHEL netcf is rebase (see Bug 705061):

commit 3aff37e9921810eac86b4eefd9bb600495e43632
Author: Laine Stump <laine>
Date:   Mon May 16 02:54:49 2011 -0400

    Capture stdout and stderr when execing external programs
    
    This is in response to:
    
       https://bugzilla.redhat.com/show_bug.cgi?id=616060
    
    but will also be useful in an upcoming patch which needs to retrieve
    the output of /etc/rc.d/init.d/netcf-transaction.
    
    Before forking, we now create a pipe, then after forking, the child
    dup2's both stdout and stderr to the write side of the pipe, and the
    parent calls fdopen() on the read side of the pipe and then calls
    gnulib's fread_file() before calling waitpid() to reap the process.

Comment 3 Laine Stump 2011-06-14 21:36:45 UTC
A fix for this bug is included in netcf-0.1.8-1.el6. A build is available here:

https://brewweb.devel.redhat.com/buildinfo?buildID=167451

Comment 5 Vivian Bian 2011-08-04 08:11:52 UTC
tested with netcf-0.1.9-1.el6

Steps:
start virt-manager
1. click 'Edit','Connection Details','Network Interfaces'
2. click 'add','Bridge',Name->'br1', choose 'eth1'
3. click 'Finish'
4. ifup br1 
Determining IP information for br1... failed.

There is no 'exit code 1' alike errors . So set bug status to VERIFIED

Comment 6 Laine Stump 2011-11-16 16:45:29 UTC
    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:
In previous versions of netcf, when a management application (e.g. virt-manager) used netcf to start or stop an interface and an error occurred during this operation, netcf could only return the exit code of the program it uses for these operations (/sbin/ifup and /sbin/ifdown). This could make it more difficult than necessary to troubleshoot problems - ifup and ifdown sometimes provide a more detailed reason for the failure than can be communicated in an exit code.

netcf has been modified to capture the stdout and stderr output of ifup and ifdown, and forward that information back to the management application in the case of an error, which should make it easier to troubleshoot problems.

Comment 7 errata-xmlrpc 2011-12-06 15:18:46 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.

http://rhn.redhat.com/errata/RHBA-2011-1631.html