The object store needs hard links, which Android apps may not make issue #141
closed: completed andymccall opened this · 0 comments
andymccall
oxygenhub-android's phone runner (oxygenhub-android#8) cannot clone: every job fails with clone …: io: Permission denied (os error 13). SELinux on Android denies link to untrusted apps in their own data (avc: denied { link } … tclass=file app=io.oxygenhub.android), and LocalStore puts every object into place with fs::hard_link (create-only).
Fix: where a hard link is refused (EACCES/EPERM), put the file into place with renameat2(RENAME_NOREPLACE) on Linux and Android, which is as atomic and still create-only; elsewhere, rename after checking that the name is free.
oxygenhub-android's phone runner (oxygenhub-android#8) cannot clone: every job fails with
clone …: io: Permission denied (os error 13). SELinux on Android denieslinkto untrusted apps in their own data (avc: denied { link } … tclass=file app=io.oxygenhub.android), and LocalStore puts every object into place withfs::hard_link(create-only).Fix: where a hard link is refused (EACCES/EPERM), put the file into place with
renameat2(RENAME_NOREPLACE)on Linux and Android, which is as atomic and still create-only; elsewhere, rename after checking that the name is free.