Bug 2125444

Summary: Syncable exports across partitions causes ' Invalid cross-device link' error
Product: Red Hat Satellite Reporter: Partha Aji <paji>
Component: PulpAssignee: satellite6-bugs <satellite6-bugs>
Status: CLOSED ERRATA QA Contact: Vladimír Sedmík <vsedmik>
Severity: medium Docs Contact:
Priority: high    
Version: 6.11.2CC: dalley, dkliban, ggainey, jpasqual, pcreech, rchan
Target Milestone: 6.13.0Keywords: Triaged
Target Release: Unused   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: pulpcore-3.21.1-1, pulpcore-3.18.11-1, pulpcore-3.16.15-1 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of:
: 2150125 (view as bug list) Environment:
Last Closed: 2023-05-03 13:21:46 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Partha Aji 2022-09-09 04:11:56 UTC
Description of problem:
If the export destination is in a different partition than `/var/lib/pulp/media` then syncable exports raises an eroor along the lines of 
` Invalid cross-device link `/var/lib/pulp/media/artifact/7a/831f9f90bf4d21027572cb503d20b702de8e8785b02c0397445c2e481d81b3' -> '/exports/repo/Packages/b/bear-4.1-1.noarch.rpm'`

Version-Release number of selected component (if applicable):
Sat 6.11.2

How reproducible:
Always

Steps to Reproduce:
1. Administer -> Settings -> Content -> Set 'Pulp 3 export destination filepath' to a path that is in a different partition from /var/lib/pulp/exports
2. Add the partition path to `ALLOWED_EXPORT_PATHS` in  `/etc/pulp/settings.py` and restart services
3. Make sure pulp user has write access to that path
4. Sync a custom repo in your satellite
5. `hammer content-export complete repository --id=<repo id> --format=syncable` 

Actual results:
Error along


```
Error: [Errno 18] Invalid cross-device link: 

/var/lib/pulp/media/artifact/7a/831f9f90bf4d21027572cb503d20b702de8e8785b02c0397445c2e481d81b3' -> '/exports/Default_Organization/cv/2.0/2022-09-09T02-42-15-00-00/custom/custom/repo/Packages/b/bear-4.1-1.noarch.rpm'
```
Expected results:

It should be writing to a new partition instead of trying to symlink.

Additional info:

Comment 1 Daniel Alley 2022-09-23 18:17:52 UTC
https://github.com/pulp/pulpcore/pull/3188/

Comment 4 Joniel Pasqualetto 2023-04-11 16:09:18 UTC
*** Bug 2185931 has been marked as a duplicate of this bug. ***

Comment 7 errata-xmlrpc 2023-05-03 13:21:46 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (Important: Satellite 6.13 Release), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHSA-2023:2097