Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at bugzilla.redhat.com.
Bug 875329 - [rsync] "No space left on device" not reported to user
Summary: [rsync] "No space left on device" not reported to user
Keywords:
Status: CLOSED DUPLICATE of bug 868755
Alias: None
Product: Fedora
Classification: Fedora
Component: anaconda
Version: 18
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Brian Lane
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2012-11-10 14:52 UTC by Steve Tyler
Modified: 2012-11-12 16:22 UTC (History)
5 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2012-11-12 16:22:06 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)
screenshot showing "rsync exited with code 12" error message (deleted)
2012-11-10 14:52 UTC, Steve Tyler
no flags Details
anaconda-tb-Og2Hmj log showing rsync error message "No space left on device" (deleted)
2012-11-10 14:57 UTC, Steve Tyler
no flags Details

Description Steve Tyler 2012-11-10 14:52:12 UTC
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

Comment 1 Steve Tyler 2012-11-10 14:57:21 UTC
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

Comment 2 Steve Tyler 2012-11-10 17:12:41 UTC
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):
...

Comment 3 Steve Tyler 2012-11-11 17:07:16 UTC
This bug is for the related problem on the DVD:
Bug 875422 - Anaconda fails with Could not run transaction if not enough disk space

Comment 4 Brian Lane 2012-11-12 16:22:06 UTC

*** This bug has been marked as a duplicate of bug 868755 ***


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