Created attachment 642180 [details] screenshot showing "rsync exited with code 12" error message Description of problem: During installation from a Live CD, rsync may fail with a "No space left on device" error when copying files. This error is not reported to the user. Instead, the user sees the message: "rsync exited with code 12". Version-Release number of selected component (if applicable): anaconda-18.28-1.fc18.x86_64 Fedora-18-Beta-TC7-x86_64-Live-Desktop.iso How reproducible: Always. Steps to Reproduce: 1. Create a 5120 MB disc image. 2. Install to the disc image from a Live CD: $ qemu-kvm -m 1024 -hda f18-test-4.img -cdrom ~/xfr/fedora/F18/F18-Beta/TC7/Fedora-18-Beta-TC7-x86_64-Live-Desktop.iso -usb -vga qxl -boot menu=on -usbdevice mouse Actual results: When the copying fails, the message "rsync exited with code 12" is displayed. See attached screenshot. Expected results: "No space left on device" is reported to the user. Additional info: The rsync exit values are listed near the end of the rsync man page: http://rsync.samba.org/ftp/rsync/rsync.html Exit value 12 may occur in several situations: rsync current issues and debugging http://rsync.samba.org/issues.html See also: Bug 868755 - error: rpmdb open failed
Created attachment 642181 [details] anaconda-tb-Og2Hmj log showing rsync error message "No space left on device" The attached log shows the rsync does indeed report "No space left on device": [snippet from attached anaconda-tb-Og2Hmj] Nov 10 08:42:40 localhost program: rsync: writefd_unbuffered failed to write 4 bytes to socket [sender]: Broken pipe (32) Nov 10 08:42:40 localhost program: rsync: write failed on "/mnt/sysimage/usr/share/locale/uk/LC_MESSAGES/gtk20.mo": No space left on device (28) Nov 10 08:42:40 localhost program: rsync error: error in file IO (code 11) at receiver.c(322) [receiver=3.0.9] Nov 10 08:42:40 localhost program: rsync: connection unexpectedly closed (1657900 bytes received so far) [sender] Nov 10 08:42:40 localhost program: rsync error: error in rsync protocol data stream (code 12) at io.c(605) [sender=3.0.9] Nov 10 08:42:40 localhost anaconda: rsync exited with code 12
Simply displaying the error messages from rsync in a window might be sufficient. The problem is that iutil.py has two functions, neither of which quite does what is needed: Capture stderr in a buffer _and_ write stderr to a file. ISTM, the functions could be generalized with one function that does it all: 1. Capture stdout and/or stderr in a buffer. 2. Write stdout and/or stderr to a file. $ less -N anaconda-18.28-1/pyanaconda/iutil.py ... 85 ## Run an external program and redirect the output to a file. 86 # @param command The command to run. 87 # @param argv A list of arguments. 88 # @param stdin The file descriptor to read stdin from. 89 # @param stdout The file descriptor to redirect stdout to. 90 # @param stderr The file descriptor to redirect stderr to. 91 # @param root The directory to chroot to before running command. 92 # @return The return code of command. 93 def execWithRedirect(command, argv, stdin = None, stdout = None, 94 stderr = None, root = '/', env_prune=[]): ... 197 ## Run an external program and capture standard out. 198 # @param command The command to run. 199 # @param argv A list of arguments. 200 # @param stdin The file descriptor to read stdin from. 201 # @param stderr The file descriptor to redirect stderr to. 202 # @param root The directory to chroot to before running command. 203 # @param fatal Boolean to determine if non-zero exit is fatal. 204 # @return The output of command from stdout. 205 def execWithCapture(command, argv, stdin = None, stderr = None, root='/', 206 fatal = False): ...
This bug is for the related problem on the DVD: Bug 875422 - Anaconda fails with Could not run transaction if not enough disk space
*** This bug has been marked as a duplicate of bug 868755 ***