Bug 1220632 - Package update of virtiofsd fails with 'File from package already exists as a directory'
Summary: Package update of virtiofsd fails with 'File from package already exists as a...
Status: RESOLVED DUPLICATE of bug 1220592
Alias: None
Product: openSUSE Tumbleweed
Classification: openSUSE
Component: Virtualization:Other (show other bugs)
Version: Current
Hardware: Other Other
: P5 - None : Normal (vote)
Target Milestone: ---
Assignee: virt-bugs list
QA Contact: E-mail List
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-02-29 09:39 UTC by Stefan Hundhammer
Modified: 2024-03-03 21:55 UTC (History)
6 users (show)

See Also:
Found By: ---
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---


Attachments
Screenshot: Directories of the old virtiofs package (147.70 KB, image/png)
2024-02-29 09:45 UTC, Stefan Hundhammer
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Stefan Hundhammer 2024-02-29 09:39:44 UTC
A 'sudo zypper dup' in the current Tumbleweed fails with

> error: unpacking of archive failed on file /usr/libexec/virtiofsd;
>  65e04e65: cpio: File from package already exists as a directory in system


Old version on the system:

  virtiofsd-1.10.1-2.1.x86_64


New version to update to:

  virtiofsd-1.10.1-3.1.x86_64


Notice that I just recently had a catastrophic failure of the zypper update stack because of a very similar problem, at that time caused by an openssh update: That error, together with a 'sudo zypper dup -y', caused the whole 'zypper dup' to be aborted with libzypp and its dependent libs only half-installed. See also bug #1219562.

I could recover from that problem with a lot of expert knowledge and manual work, but a lot of community users could not.
Comment 1 Stefan Hundhammer 2024-02-29 09:45:00 UTC
Created attachment 873110 [details]
Screenshot: Directories of the old virtiofs package
Comment 2 Stefan Hundhammer 2024-02-29 09:51:38 UTC
New package unrpm'ed:

tree .
.
└── usr
    ├── libexec
    │   └── virtiofsd
    └── share
        ├── doc
        │   └── packages
        │       └── virtiofsd
        │           └── README.md
        └── qemu
            └── vhost-user
                └── 50-virtiofsd.json


So it looks like it's /usr/libexec/virtiofsd:

ls -ld usr/libexec/virtiofsd 
-rwxr-xr-x 1 root root 2788952 Feb 27 22:55 usr/libexec/virtiofsd

ls -ld /usr/libexec/virtiofsd 
drwxr-xr-x 2 root root 4096 Feb 27 16:16 /usr/libexec/virtiofsd
Comment 3 Stefan Hundhammer 2024-02-29 09:56:40 UTC
So this apears to be another case to handle in a post-uninstall or a pre-install script.
Comment 4 Stefan Hundhammer 2024-02-29 10:16:01 UTC
Manual workaround to get the new package on the system:

cd /tmp
sudo zypper download virtiofsd
  (notice the downlod path)

sudo rm -f /usr/libexec/virtiofsd/virtiofsd
sudo rmdir /usr/libexec/virtiofsd

sudo rpm -Uhv /var/cache/zypp/packages/download.opensuse.org-oss/x86_64/virtiofsd*.rpm

  (use the download path from above)
Comment 5 Marcus Rückert 2024-02-29 11:30:29 UTC
or we could just revert the path change
Comment 6 Benjamin Greiner 2024-02-29 12:25:02 UTC
Duplicate

*** This bug has been marked as a duplicate of bug 1220592 ***
Comment 7 James Fehlig 2024-02-29 14:38:10 UTC
(In reply to Marcus Rückert from comment #5)
> or we could just revert the path change

Let's please not deviate from the rest of the world for no good reason. The path should be /usr/libexec/.
Comment 8 Jecho Jekov 2024-03-01 19:44:36 UTC
My solution to allow other packages to be updated was to set the `viriofsd` package to "Protected -- Do not modify" in the YaST Package Manager until this is resolved.