Red Hat Bugzilla – Bug 616060
netcf: Show ifup output in relevant error message
Last modified: 2011-12-06 10:18:46 EST
netcf doesn't report cmdline output of failed commands in it's error messages. Example (via virt-manager/libvirt):
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.
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.
A fix has been committed to upstream netcf, and will be included when RHEL netcf is rebase (see Bug 705061):
Author: Laine Stump <email@example.com>
Date: Mon May 16 02:54:49 2011 -0400
Capture stdout and stderr when execing external programs
This is in response to:
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.
A fix for this bug is included in netcf-0.1.8-1.el6. A build is available here:
tested with netcf-0.1.9-1.el6
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
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.
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.
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.