Bug 23265

Summary: rpm thinks some directories are files, tries to unlink() them.
Product: [Retired] Red Hat Raw Hide Reporter: Bill Crawford <billc>
Component: rpmAssignee: Jeff Johnson <jbj>
Status: CLOSED DUPLICATE QA Contact: David Lawrence <dkl>
Severity: high Docs Contact:
Priority: high    
Version: 1.0   
Target Milestone: ---   
Target Release: ---   
Hardware: i386   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2001-01-05 00:03:01 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:

Description Bill Crawford 2001-01-04 01:19:36 UTC
On several occasions recently, rpm has tried to remove directories as
though they were files:

[root@localhost RPMS]# rpm -Fvh [T-Z]*
Preparing...                ###########################################
[100%]
   1:XFrisk                 can't unlink
/usr/X11R6/lib/X11/app-defaults/XFrisk-RPMDELETE: Is a directory
########################################### [100%]
error: removal of /usr/X11R6/lib/X11/app-defaults/XFrisk/XFrisk.ad failed:
Not a directory
error: removal of /usr/X11R6/lib/X11/app-defaults/XFrisk/XFrisk failed: Not
a directory

I had a similar problem a few days ago with one of blizzard's Mozilla RPMs.
In both cases, it appears that a directory is not recognised as being a
directory.

I'm marking this high priority/severity as although I can work around it,
sometimes, a great many folks out there will panic (or just swear about
it).

Comment 1 Jeff Johnson 2001-01-04 01:51:32 UTC
Can you provide the output from rpm -Fvv? Thanks.

Comment 2 Sammy 2001-01-04 19:26:00 UTC
Perhaps this is the problem we get when installing XFree86-4.0.2-0.1
with the xkb directory!

Comment 3 Bill Crawford 2001-01-04 21:04:39 UTC
re output of rpm -Fvv: no, as it's been cleaned up now. I had to remove the old
directory by hand. I'll try downgrading at some point and see what happens new
-> old and old -> new. Maybe later.

There have been one or two other occurrences of this problem; I think it was
indeed the same problem as with installing the XFree86 package.

In both cases a directory was being replaced by either a file or a symbolic
link, so it appears the bug is that rpm is relying on the file type associated
with that pathname in the new package, rather than the file type stored in the
database from the old package. Or something like that.

Incidentally the problem with the xkb directory and symlinks that I had
upgrtading to the new XFree86 package is going to be fairly widespread :(  Is
there any easy way around this? I suspect not ...



Comment 4 Bill Crawford 2001-01-05 00:02:58 UTC
I downgraded to the Guinness version again (went without a hitch it appeared).
Then I upgraded again, same problem as before.

OK, output of rpm -Fvv
/mnt/big/rawhide/powertools/i386/RedHat/RPMS/XFrisk-1.2-1.i386.rpm

D: counting packages to install
D: found 1 packages
D: looking for packages to download
D: retrieved 0 packages
D: Expected size:       119317 = lead(96)+sigs(68)+pad(4)+data(119149)
D:   Actual size:       119317
D: opening db index       /var/lib/rpm/Packages create mode=0x42
D: locked  db index       /var/lib/rpm/Packages
D: opening db index       /var/lib/rpm/Name create mode=0x42
D: found 0 source and 1 binary packages
D: opening db index       /var/lib/rpm/Depends create mode=0x42
D:   NO     A rpmlib(PayloadFilesHavePrefix) <= 4.0-1   B
rpmlib(VersionedDependencies) = 3.0.3-
1
D:   NO     A rpmlib(PayloadFilesHavePrefix) <= 4.0-1   B
rpmlib(CompressedFileNames) = 3.0.4-1
D:   NO     A rpmlib(PayloadFilesHavePrefix) <= 4.0-1   B rpmlib(PayloadIsBzip2)
= 3.0.5-1
D:   YES    A rpmlib(PayloadFilesHavePrefix) <= 4.0-1   B
rpmlib(PayloadFilesHavePrefix) = 4.0-1
D:  Requires: rpmlib(PayloadFilesHavePrefix) <= 4.0-1       YES (rpmlib
provides)
D: opening db index       /var/lib/rpm/Providename create mode=0x42
D:  Requires: ld-linux.so.2                                 YES (db provides)
D:  Requires: libICE.so.6                                   YES (db provides)
D:  Requires: libSM.so.6                                    YES (db provides)
D:  Requires: libX11.so.6                                   YES (db provides)
D:  Requires: libXaw3d.so.7                                 YES (db provides)
D:  Requires: libXext.so.6                                  YES (db provides)
D:  Requires: libXmu.so.6                                   YES (db provides)
D:  Requires: libXpm.so.4                                   YES (db provides)
D:  Requires: libXt.so.6                                    YES (db provides)
D:  Requires: libc.so.6                                     YES (db provides)
D: opening db index       /var/lib/rpm/Basenames create mode=0x42
D:  Requires: /bin/sh                                       YES (db files)
D:  Requires: libc.so.6(GLIBC_2.0)                          YES (db provides)
D:  Requires: libc.so.6(GLIBC_2.1)                          YES (db provides)
D:  Requires: libc.so.6(GLIBC_2.1.3)                        YES (db provides)
D:   NO     A rpmlib(CompressedFileNames) <= 3.0.4-1    B
rpmlib(VersionedDependencies) = 3.0.3-
1
D:   YES    A rpmlib(CompressedFileNames) <= 3.0.4-1    B
rpmlib(CompressedFileNames) = 3.0.4-1
D:  Requires: rpmlib(CompressedFileNames) <= 3.0.4-1        YES (rpmlib
provides)
D: opening db index       /var/lib/rpm/Conflictname create mode=0x42
D: opening db index       /var/lib/rpm/Requirename create mode=0x42
D: ========== recording tsort relations
D: ========== tsorting packages
D:     0 XFrisk-1.2-1
D: installing binary packages
D: getting list of mounted filesystems
D: opening db index       /var/lib/rpm/Group create mode=0x42
D: opening db index       /var/lib/rpm/Triggername create mode=0x42
Preparing packages for installation...
D: Expected size:       119317 = lead(96)+sigs(68)+pad(4)+data(119149)
D:   Actual size:       119317
D: package: XFrisk-1.2-1 files test = 0
D:    file: /usr/X11R6/lib/X11/app-defaults/XFrisk action: create
D:    file: /usr/games/friskserver action: create
D:    file: /usr/games/lib/Countries.risk action: create
D:    file: /usr/games/lib/Help.risk action: create
D:    file: /usr/games/lib/World.risk action: create
D:    file: /usr/games/risk action: create
D:    file: /usr/games/xfrisk action: create
D:    file: /usr/share/doc/XFrisk-1.2 action: create
D:    file: /usr/share/doc/XFrisk-1.2/Aide.risk action: create
D:    file: /usr/share/doc/XFrisk-1.2/BUGS action: create
D:    file: /usr/share/doc/XFrisk-1.2/ChangeLog action: create
D:    file: /usr/share/doc/XFrisk-1.2/FAQ action: create
D:    file: /usr/share/doc/XFrisk-1.2/Help.risk action: create
D:    file: /usr/share/doc/XFrisk-1.2/INSTALL action: create
D:    file: /usr/share/doc/XFrisk-1.2/README.NEW action: create
D:    file: /usr/share/doc/XFrisk-1.2/TODO action: create
D: running preinstall script (if any)
XFrisk-1.2-1
can't unlink /usr/X11R6/lib/X11/app-defaults/XFrisk-RPMDELETE: Is a directory
GZDIO:      35 reads,   283952 total bytes in 0.011 secs
D:   +++        941 XFrisk-1.2-1
D: adding "XFrisk" to Name index.
D: adding 16 entries to Basenames index.
D: adding "Amusements/Games" to Group index.
D: adding 16 entries to Requirename index.
D:      0 rpmlib(PayloadFilesHavePrefix) (install prerequisite) skipped
D:     15 rpmlib(CompressedFileNames) (install prerequisite) skipped
D: adding 1 entries to Providename index.
D: running postinstall scripts (if any)
D: will remove files test = 0
D:    file: /usr/share/doc/XFrisk-1.00/TODO action: remove
D:    file: /usr/share/doc/XFrisk-1.00/README.NEW action: remove
D:    file: /usr/share/doc/XFrisk-1.00/INSTALL action: remove
D:    file: /usr/share/doc/XFrisk-1.00/Help.risk action: remove
D:    file: /usr/share/doc/XFrisk-1.00/FAQ action: remove
D:    file: /usr/share/doc/XFrisk-1.00/ChangeLog action: remove
D:    file: /usr/share/doc/XFrisk-1.00/BUGS action: remove
D:    file: /usr/share/doc/XFrisk-1.00/Aide.risk action: remove
D:    file: /usr/share/doc/XFrisk-1.00 action: remove
D:    file: /usr/games/xfrisk action: skip
D:    file: /usr/games/risk action: skip
D:    file: /usr/games/lib/World.risk action: skip
D:    file: /usr/games/lib/Help.risk action: skip
D:    file: /usr/games/lib/Countries.risk action: skip
D:    file: /usr/games/friskserver action: skip
D:    file: /usr/X11R6/lib/X11/app-defaults/XFrisk/XFrisk.ad action: remove
error: removal of /usr/X11R6/lib/X11/app-defaults/XFrisk/XFrisk.ad failed: Not a
directory
D:    file: /usr/X11R6/lib/X11/app-defaults/XFrisk/XFrisk action: remove
error: removal of /usr/X11R6/lib/X11/app-defaults/XFrisk/XFrisk failed: Not a
directory
D:    file: /usr/X11R6/lib/X11/app-defaults/XFrisk action: skip
D: running postuninstall script (if any)
D:   ---        940 XFrisk-1.00-7
D: removing "XFrisk" from Name index.
D: removing 18 entries from Basenames index.
D: removing "Amusements/Games" from Group index.
D: removing 16 entries from Requirename index.
D: removing 1 entries from Providename index.
D: closed  db index       /var/lib/rpm/Depends
D: closed  db index       /var/lib/rpm/Triggername
D: closed  db index       /var/lib/rpm/Conflictname
D: closed  db index       /var/lib/rpm/Providename
D: closed  db index       /var/lib/rpm/Requirename
D: closed  db index       /var/lib/rpm/Group
D: closed  db index       /var/lib/rpm/Basenames
D: closed  db index       /var/lib/rpm/Name
D: closed  db index       /var/lib/rpm/Packages


Comment 5 Jeff Johnson 2001-01-09 15:42:14 UTC

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