Bug#629994: linux-image-2.6.39-1-amd64: sendfile returns early without user-visible reason
Package: linux-2.6
Version: 2.6.39-1+b1
Severity: normal
In 2.6.39 (and maybe some earlier versions= of Linux, sendfile supports
file->file copies.
Unfortunately, it doesn't handle files near 2GB size correctly and returns
early. For example, here is a call that tries to copy a >3GB file:
[pid 8171] sendfile(18, 17, [0], 3569424384) = 2147479552
Linux always seems to stop copying at 0x7FFFF000 bytes, without apparent
reason (such as disk full or another error). This happens with a 64 bit
kernel btw., so this is not a 32 bit issue either.
This causes many programs to report a "short write", as this is an error
condition with similar syscalls on files (such as write(2)).
I think sendfile should either not attempt to copy files, or copy the
requested number of bytes unless an error occurs (such as disk full or a
read error). Otherwise programs always need to retry with another syscall,
to see if sendfile returned "just so" or there was an actual problem.
-- Package-specific info:
** Version:
Linux version 2.6.39-1-amd64 (Debian 2.6.39-1) (buildd_amd64-brahms@buildd.debian.org) (gcc version 4.4.6 (Debian 4.4.6-3) ) #1 SMP Tue May 24 14:34:19 UTC 2011
** Tainted: PMO (4113)
* Proprietary module has been loaded.
* System experienced a machine check exception.
* Out-of-tree module has been loaded.
-- System Information:
Debian Release: 6.0.1
APT prefers stable
APT policy: (990, 'stable'), (500, 'unstable'), (500, 'testing'), (1, 'experimental')
Architecture: amd64 (x86_64)
Kernel: Linux 2.6.39-1-amd64 (SMP w/4 CPU cores)
Locale: LANG=C, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
Versions of packages linux-image-2.6.39-1-amd64 depends on:
ii debconf [debconf-2.0] 1.5.36.1 Debian configuration management sy
ii initramfs-tools [linux-initra 0.99 tools for generating an initramfs
ii linux-base 3 Linux image base package
ii module-init-tools 3.12-1 tools for managing Linux kernel mo
Versions of packages linux-image-2.6.39-1-amd64 recommends:
ii firmware-linux-free 3 Binary firmware for various driver
Versions of packages linux-image-2.6.39-1-amd64 suggests:
ii grub-pc 1.98+20100804-14 GRand Unified Bootloader, version
ii lilo 1:22.8-10 LInux LOader - The Classic OS load
pn linux-doc-2.6.39 <none> (no description available)
Versions of packages linux-image-2.6.39-1-amd64 is related to:
ii firmware-bnx2 0.28 Binary firmware for Broadcom NetXt
pn firmware-bnx2x <none> (no description available)
pn firmware-ipw2x00 <none> (no description available)
pn firmware-ivtv <none> (no description available)
pn firmware-iwlwifi <none> (no description available)
pn firmware-linux <none> (no description available)
pn firmware-linux-nonfree <none> (no description available)
pn firmware-qlogic <none> (no description available)
pn firmware-ralink <none> (no description available)
pn xen-hypervisor <none> (no description available)
-- debconf information:
linux-image-2.6.39-1-amd64/prerm/removing-running-kernel-2.6.39-1-amd64: true
* linux-image-2.6.39-1-amd64/postinst/missing-firmware-2.6.39-1-amd64:
linux-image-2.6.39-1-amd64/postinst/ignoring-ramdisk:
linux-image-2.6.39-1-amd64/postinst/depmod-error-initrd-2.6.39-1-amd64: false
Reply to: