OpenListTeam / OpenListTeam/OpenList

[BUG] 在pve 非特权lxc、ext4文件系统中, local驱动复制文件失败

Open
#2,168 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug
Dominant language
Go
Stars
24.7k
Forks
2.3k
Avg merge
1d 20h
Merged PRs (30d)
36

Description

请确认以下事项
  • 我已确认阅读并同意 AGPL-3.0 第15条
    本程序不提供任何明示或暗示的担保,使用风险由您自行承担。

  • 我已确认阅读并同意 AGPL-3.0 第16条
    无论何种情况,版权持有人或其他分发者均不对使用本程序所造成的任何损失承担责任。

  • 我确认我的描述清晰,语法礼貌,能帮助开发者快速定位问题,并符合社区规则。

  • 我已确认阅读了OpenList文档

  • 我已确认没有重复的问题或讨论。

  • 我已确认是OpenList的问题,而不是其他原因(例如 网络依赖操作)。

  • 我认为此问题必须由OpenList处理,而非第三方。

  • 我已确认这个问题在最新版本中没有被修复。

  • 我没有阅读这个清单,只是闭眼选中了所有的复选框,请关闭这个 Issue 。

OpenList 版本(必填)

v4.1.10

使用的存储驱动(必填)

local

问题描述(必填)

openlist中的复制默认使用的reflink, 检测到不支持reflink会回退到普通复制. 但是在非特权lxc下检测似乎有问题, 导致直接失败了, 没有回退, 直接报错:Operation not permitted

怀疑与报错类型不同有关:

在其他环境下(ext4):

$ cp --reflink=always test test2
cp: failed to clone 'test2' from 'test': Operation not supported

这是在lxc下使用cp命令reflink:

ubuntu@pt-data:~/op/dir$ touch test
ubuntu@pt-data:~/op/dir$ ls
source  test
ubuntu@pt-data:~/op/dir$ cp --reflink=always test test2
cp: failed to clone 'test2' from 'test': Operation not permitted
ubuntu@pt-data:~/op/dir$ cp --reflink=never test test2
ubuntu@pt-data:~/op/dir$ ls
source  test  test2
ubuntu@pt-data:~/op/dir$ 

一个报错是Operation not permitted, 一个报错是Operation not supported, 怀疑是这里的识别问题.

也许这里应该reflink有报错就直接回退到普通复制?

可能相关的pr:
#1669

日志(必填)

在openlist对应的目录随便新建一个文件testfile, 然后复制到别的地方:
Image

移动文件是成功的:

Image
配置文件内容(必填)

{"id":1,"mount_path":"/test","order":0,"driver":"Local","cache_expiration":0,"custom_cache_policies":"","status":"work","addition":"{"root_folder_path":"/home/ubuntu/op/dir","directory_size":true,"thumbnail":false,"thumb_cache_folder":"","thumb_concurrency":"16","video_thumb_pos":"20%","show_hidden":true,"mkdir_perm":"777","recycle_bin_path":""}","remark":"","modified":"2026-02-26T09:35:14.090071608Z","disabled":false,"disable_index":false,"enable_sign":false,"order_by":"","order_direction":"","extract_folder":"","web_proxy":false,"webdav_policy":"native_proxy","proxy_range":false,"down_proxy_url":"","disable_proxy_sign":false}

复现链接(可选)

No response

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the local storage driver's copy path and review the behavior described for reflink failures in non-privileged LXC on ext4. Read related PR #1669, then reproduce the distinction between “Operation not permitted” and “Operation not supported”; done means copying falls back successfully when reflink is unavailable.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
backend
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.