Bug 147111

Summary: rpm complains: cpio: write failed - No space left on device - but I have 3G
Product: [Fedora] Fedora Reporter: John Ellson <john.ellson>
Component: rpmAssignee: Paul Nasrat <nobody+pnasrat>
Status: CLOSED INSUFFICIENT_DATA QA Contact: Mike McLean <mikem>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhide   
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2006-05-05 20:53:37 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:
Attachments:
Description Flags
stderr output from: strace rpm -Uvh rpmdb-fedora-4-0.20050208.i386.rpm
none
/etc/selinux/config
none
output of "rpm --showrc" none

Description John Ellson 2005-02-04 14:16:39 UTC
Description of problem:
rpm fails to update rpmdb-fedora-4-0.20050204.i386.rpm
complains of insufficient disk space, even though I have about
3G available.

Version-Release number of selected component (if applicable):
rpmdb-fedora-4-0.20050204
rpm-4.3.3-8

How reproducible:
100%

Steps to Reproduce:
1. rpm -Uvh rpmdb-fedora-4-0.20050204.i386.rpm
2.
3.
  
Actual results:
root@penguin:fc-devel# df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda2              8207544   4870456   2920168  63% /
/dev/sda1                99134     11151     82864  12% /boot
none                    370364         0    370364   0% /dev/shm
/dev/sdb               8824512   4828660   3547588  58% /home
none                    370364         0    370364   0% /var/lib/jack/tmp
barrel:/usr/export   106617472  60125288  41076272  60%
/net/barrel/usr/export
root@penguin:fc-devel# rpm -Uvh rpmdb-fedora-4-0.20050204.i386.rpm
Preparing...               
########################################### [100%]
   1:rpmdb-fedora          
########################################### [100%]
error: unpacking of archive failed on file
/usr/lib/rpmdb/i386-redhat-linux/redhat/Packages;420382a4: cpio: write
failed - No space left on device
root@penguin:fc-devel#


Expected results:
3G of disk space under / should be enough, no?

Additional info:

Comment 1 Jeff Johnson 2005-02-21 09:19:30 UTC
rpm is displaying a ENOSPC return code from the kernel
while writing a file, nothing else. Sure 3Gb is more than
enough, but the more precise question is why ENOSPC is
being returned.

I see no way to reproduce this problem. Can you reproduce?

Comment 2 John Ellson 2005-02-21 13:38:33 UTC
Yes, I still get the error with the last available rpmdb package:

root@penguin:RPMS.old# rpm -Uvh rpmdb-fedora-4-0.20050208.i386.rpm
Preparing...               
########################################### [100%]
   1:rpmdb-fedora          
########################################### [100%]
error: unpacking of archive failed on file
/usr/lib/rpmdb/i386-redhat-linux/redhat/Packages;4219e34f: cpio: write
failed - No space left on device
root@penguin:RPMS.old#

The tail end of a strace looks like this:
unlink("/usr/lib/rpmdb/i386-redhat-linux/redhat/Basenames;4219e3cc") = 0
close(8)                                = 0
munmap(0xb7bcf000, 8192)                = 0
munmap(0xb7bcd000, 8192)                = 0
ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo
...}) = 0
ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo
...}) = 0
ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo
...}) = 0
ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo
...}) = 0
ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo
...}) = 0
ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo
...}) = 0
ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo
...}) = 0
ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo
...}) = 0
ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo
...}) = 0
ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo
...}) = 0
ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo
...}) = 0
ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo
...}) = 0
write(1, "###                             "..., 1024### #############
          ) = 1024            (100%)
ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo
...}) = 0
ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo
...}) = 0
ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo
...}) = 0
ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo
...}) = 0
ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo
...}) = 0
ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo
...}) = 0
ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo
...}) = 0
ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo
...}) = 0
ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo
...}) = 0
ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo
...}) = 0
write(1, "                    (100%)\10\10\10\10\10\10"..., 1024
#######################                     (100) = 1024
ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo
...}) = 0
ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo
...}) = 0
ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo
...}) = 0
ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo
...}) = 0
ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo
...}) = 0
ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo
...}) = 0
ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo
...}) = 0
ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo
...}) = 0
ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo
...}) = 0
ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo
...}) = 0
write(1, "%)\10\10\10\10\10\############################) = 1024     
  (100%)
ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo
...}) = 0
ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo
...}) = 0
ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo
...}) = 0
ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo
...}) = 0
ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo
...}) = 0
ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo
...}) = 0
ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo
...}) = 0
ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo
...}) = 0
ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo
...}) = 0
ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo
...}) = 0
write(1,
"\10\10\10\10\10\10\10\10\10\10\10\10##################################
####) = 1024############################### (100%)
write(1, "\10\10\10\10)             = 4
ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo
...}) = 0
write(1, "################################"...,
51############################## ############# [100%]
) = 51
open("/usr/share/locale/en_US.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) =
-1 ENOENT (No such file or directory)
open("/usr/share/locale/en_US.utf8/LC_MESSAGES/libc.mo", O_RDONLY) =
-1 ENOENT ( No such file or directory)
open("/usr/share/locale/en_US/LC_MESSAGES/libc.mo", O_RDONLY) = -1
ENOENT (No su ch file or directory)
open("/usr/share/locale/en.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1
ENOENT (No  such file or directory)
open("/usr/share/locale/en.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1
ENOENT (No such file or directory)
open("/usr/share/locale/en/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT
(No such file or directory)
write(2, "error: ", 7error: )                  = 7
write(2, "unpacking of archive failed on f"..., 141unpacking of
archive failed o n file
/usr/lib/rpmdb/i386-redhat-linux/redhat/Basenames;4219e3cc: cpio:
write f ailed - No space left on device
) = 141
close(7)                                = 0
open("rpmdb-fedora-4-0.20050208.i386.rpm", O_RDONLY|O_LARGEFILE) = 7
fcntl64(7, F_SETFD, FD_CLOEXEC)         = 0
poll([{fd=7, events=POLLIN, revents=POLLIN}], 1, 1000) = 1
read(7, "\355\253\356\333\3\0\0\0\0\1rpmdb-fedora-4-0.20050"..., 96) = 96
poll([{fd=7, events=POLLIN, revents=POLLIN}], 1, 1000) = 1
read(7, "\216\255\350\1\0\0\0\0\0\0\0\5\0\0\0T", 16) = 16
poll([{fd=7, events=POLLIN, revents=POLLIN}], 1, 1000) = 1
read(7, "\0\0\0>\0\0\0\7\0\0\0D\0\0\0\20\0\0\1\r\0\0\0\6\0\0\0\0"...,
164) = 164
poll([{fd=7, events=POLLIN, revents=POLLIN}], 1, 1000) = 1
read(7, "\0\0\0\0", 4)                  = 4
fstat64(7, {st_mode=S_IFREG|0664, st_size=42549850, ...}) = 0
poll([{fd=7, events=POLLIN, revents=POLLIN}], 1, 1000) = 1
read(7, "\216\255\350\1\0\0\0\0\0\0\0?\0\0\f$", 16) = 16
poll([{fd=7, events=POLLIN, revents=POLLIN}], 1, 1000) = 1
read(7, "\0\0\0?\0\0\0\7\0\0\f\24\0\0\0\20\0\0\0d\0\0\0\10\0\0\0"...,
4116) = 41 16
close(7)                                = 0
fcntl64(6, F_SETLK64, {type=F_UNLCK, whence=SEEK_SET, start=0, len=0},
0xbffa083 0) = 0
close(6)                                = 0
close(5)                                = 0
close(4)                                = 0
close(3)                                = 0
munmap(0xb7bd2000, 450560)              = 0
munmap(0xb7c40000, 1318912)             = 0
munmap(0xb7d82000, 24576)               = 0
rt_sigaction(SIGHUP, {SIG_DFL}, NULL, 8) = 0
rt_sigaction(SIGINT, {SIG_DFL}, NULL, 8) = 0
rt_sigaction(SIGTERM, {SIG_DFL}, NULL, 8) = 0
rt_sigaction(SIGQUIT, {SIG_DFL}, NULL, 8) = 0
rt_sigaction(SIGPIPE, {SIG_DFL}, NULL, 8) = 0
munmap(0xb7bd1000, 4096)                = 0
exit_group(1)                           = ?
root@penguin:RPMS.old#




Comment 3 John Ellson 2005-02-21 13:58:33 UTC
I don't think I included enough of the strace for you to see the start
of the problem.   I'll attatch the full strace stderr output.

Comment 4 John Ellson 2005-02-21 14:00:16 UTC
Created attachment 111255 [details]
stderr output from: strace rpm -Uvh rpmdb-fedora-4-0.20050208.i386.rpm

Comment 5 Jeff Johnson 2005-02-22 20:55:55 UTC
Hmmm, your selinux configuration seems to have gone
awry:

open("(null)/context", O_RDWR|O_LARGEFILE) = -1 ENOENT (No such file
or directory)

Can you attach the output of "rpm --showrc" as well
as the contents of /etc/selinux/config please?

Lemme see if I can find the ENOSPC too ...

Comment 6 John Ellson 2005-02-22 21:17:18 UTC
Created attachment 111306 [details]
/etc/selinux/config

Comment 7 John Ellson 2005-02-22 21:18:42 UTC
Created attachment 111307 [details]
output of "rpm --showrc"

Comment 8 Paul Nasrat 2005-09-26 22:03:13 UTC
rpmdb fedora no longer exists as part of rawhide.  Is this still reproducible on
FC3 with current updates or FC 4?

Comment 9 John Thacker 2006-05-05 20:53:37 UTC
Closing due to lack of response.