Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

在 atime_ns 超过 int64 范围时,备份将出现 OverflowError #52

Open
TimmyFengcreater opened this issue Jan 17, 2025 · 3 comments
Labels
bug Something isn't working enhancement New feature or request

Comments

@TimmyFengcreater
Copy link

环境:系统Deepin(based on Debian)社区版
内核6.9.6 amd64 Desktop Rolling
具体复现步骤如下:
1 先用!!pb make备份一次
2 输stop关掉服务器
3 在服务器的文件夹里Ctrl A 选定所有,右键
4 点击“压缩到1.20.1-Forge-Mods-Cobblemon.zip”(自己手动压缩,最好用Deepin自带的压缩包管理器以图形界面操作压缩(不要设置任何参数,按它的傻瓜式图形界面直接压缩,我怀疑在这里把文件的某些元信息给丢失了,但我不知道是什么元信息,我个人猜测是文件的时间戳或者读写权限管理属性丢失了))
5 此时将1.20.1-Forge-Mods-Cobblemon文件夹(这个文件夹是我的服务器执行目录)重命名为"1.20.1-Forge-Mods-Cobblemon-1"(总之将其隔离,使之不再是执行目录)
6 从1.20.1-Forge-Mods-Cobblemon.zip里将所有文件解压到"1.20.1-Forge-Mods-Cobblemon"文件夹里(确保在执行文件夹下直接就是文件)
7 然后命令行执行mcdreforged init
mcdreforged
8 成功运行服务端后 !!pb make 至此即可复现错误

@Fallen-Breath
Copy link
Contributor

所描述的复现步骤是否可在全新安装的 deepin 系统 + 新安装的原版 mc 服务端上复现?若否,请提供环境配置步骤,包括但不限于系统配置、服务端配置、存档配置的步骤

@TimmyFengcreater
Copy link
Author

TimmyFengcreater commented Jan 18, 2025

并不确定能否在全新安装的Deepin系统和MC服务端+MCDR 2.14.2中复现
我把我当时安装MCDR步骤记录下来了
FTBC60@JFLS-Deepin:$ sudo apt install python3-venv
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
python3-pip-whl python3-setuptools-whl python3.12-venv
The following NEW packages will be installed:
python3-pip-whl python3-setuptools-whl python3-venv
python3.12-venv
0 upgraded, 4 newly installed, 0 to remove and 511 not upgraded.
Need to get 2,533 kB of archives.
After this operation, 2,730 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 https://community-packages.deepin.com/beige beige/main amd64 python3-pip-whl all 23.1.2+dfsg-2 [1,729 kB]
Get:2 https://cdn-community-packages.deepin.com/beige beige/main amd64 python3-setuptools-whl all 68.1.2-2 [797 kB]
Get:3 https://cdn-community-packages.deepin.com/beige beige/main amd64 python3.12-venv amd64 3.12.4-0deepin1 [5,824 B]
Get:4 https://cdn-community-packages.deepin.com/beige beige/main amd64 python3-venv amd64 3.12.1-1deepin1 [1,204 B]
Fetched 2,533 kB in 21s (122 kB/s)
Selecting previously unselected package python3-pip-whl.
(Reading database ... 402648 files and directories currently installed.)
Preparing to unpack .../python3-pip-whl_23.1.2+dfsg-2_all.deb ...
Unpacking python3-pip-whl (23.1.2+dfsg-2) ...
Selecting previously unselected package python3-setuptools-whl.
Preparing to unpack .../python3-setuptools-whl_68.1.2-2_all.deb ...
Unpacking python3-setuptools-whl (68.1.2-2) ...
Selecting previously unselected package python3.12-venv.
Preparing to unpack .../python3.12-venv_3.12.4-0deepin1_amd64.deb ...
Unpacking python3.12-venv (3.12.4-0deepin1) ...
Selecting previously unselected package python3-venv.
Preparing to unpack .../python3-venv_3.12.1-1deepin1_amd64.deb ...
Unpacking python3-venv (3.12.1-1deepin1) ...
Setting up python3-setuptools-whl (68.1.2-2) ...
Setting up python3-pip-whl (23.1.2+dfsg-2) ...
Setting up python3.12-venv (3.12.4-0deepin1) ...
Setting up python3-venv (3.12.1-1deepin1) ...
錯誤:已達逾時時間
FTBC60@JFLS-Deepin:
$ sudo apt install python3-venv
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
python3-venv is already the newest version (3.12.1-1deepin1).
0 upgraded, 0 newly installed, 0 to remove and 511 not upgraded.
FTBC60@JFLS-Deepin:$ python3 -m venv mcenv
FTBC60@JFLS-Deepin:
$ source mcenv/bin/activate
(mcenv) FTBC60@JFLS-Deepin:$ pip install mcdreforged
Collecting mcdreforged
Downloading mcdreforged-2.14.2-py3-none-any.whl (271 kB)
━━━━━━━━━━━━━━━━━━━━━━━━ 271.8/271.8 kB 502.8 kB/s eta 0:00:00
Collecting colorama>=0.4.4 (from mcdreforged)
Downloading colorama-0.4.6-py2.py3-none-any.whl (25 kB)
Collecting colorlog>=6.4 (from mcdreforged)
Downloading colorlog-6.9.0-py3-none-any.whl (11 kB)
Collecting packaging>=23.0 (from mcdreforged)
Downloading packaging-24.2-py3-none-any.whl (65 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 65.5/65.5 kB 2.6 MB/s eta 0:00:00
Collecting parse>=1.18.0 (from mcdreforged)
Downloading parse-1.20.2-py2.py3-none-any.whl (20 kB)
Collecting pathspec (from mcdreforged)
Downloading pathspec-0.12.1-py3-none-any.whl (31 kB)
Collecting prompt-toolkit
=3.0 (from mcdreforged)
Downloading prompt_toolkit-3.0.48-py3-none-any.whl (386 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━ 386.6/386.6 kB 2.0 MB/s eta 0:00:00
Collecting psutil>=5.8.0 (from mcdreforged)
Downloading psutil-6.1.1-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (287 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━ 287.5/287.5 kB 7.9 MB/s eta 0:00:00
Collecting requests>=2.26 (from mcdreforged)
Downloading requests-2.32.3-py3-none-any.whl (64 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 64.9/64.9 kB 8.2 MB/s eta 0:00:00
Collecting resolvelib (from mcdreforged)
Downloading resolvelib-1.1.0-py2.py3-none-any.whl (18 kB)
Collecting ruamel.yaml~=0.17 (from mcdreforged)
Downloading ruamel.yaml-0.18.7-py3-none-any.whl (116 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━ 116.9/116.9 kB 8.9 MB/s eta 0:00:00
Collecting typing-extensions>=4.6.0 (from mcdreforged)
Downloading typing_extensions-4.12.2-py3-none-any.whl (37 kB)
Collecting wcwidth (from mcdreforged)
Downloading wcwidth-0.2.13-py2.py3-none-any.whl (34 kB)
Collecting charset-normalizer<4,>=2 (from requests>=2.26->mcdreforged)
Downloading charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (145 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━ 145.3/145.3 kB 8.3 MB/s eta 0:00:00
Collecting idna<4,>=2.5 (from requests>=2.26->mcdreforged)
Downloading idna-3.10-py3-none-any.whl (70 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 70.4/70.4 kB 8.0 MB/s eta 0:00:00
Collecting urllib3<3,>=1.21.1 (from requests>=2.26->mcdreforged)
Downloading urllib3-2.3.0-py3-none-any.whl (128 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━ 128.4/128.4 kB 8.1 MB/s eta 0:00:00
Collecting certifi>=2017.4.17 (from requests>=2.26->mcdreforged)
Downloading certifi-2024.12.14-py3-none-any.whl (164 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━ 164.9/164.9 kB 8.0 MB/s eta 0:00:00
Collecting ruamel.yaml.clib>=0.2.7 (from ruamel.yaml~=0.17->mcdreforged)
Downloading ruamel.yaml.clib-0.2.12-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (754 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━ 754.1/754.1 kB 4.2 MB/s eta 0:00:00
Installing collected packages: wcwidth, parse, urllib3, typing-extensions, ruamel.yaml.clib, resolvelib, psutil, prompt-toolkit, pathspec, packaging, idna, colorlog, colorama, charset-normalizer, certifi, ruamel.yaml, requests, mcdreforged
Successfully installed certifi-2024.12.14 charset-normalizer-3.4.1 colorama-0.4.6 colorlog-6.9.0 idna-3.10 mcdreforged-2.14.2 packaging-24.2 parse-1.20.2 pathspec-0.12.1 prompt-toolkit-3.0.48 psutil-6.1.1 requests-2.32.3 resolvelib-1.1.0 ruamel.yaml-0.18.7 ruamel.yaml.clib-0.2.12 typing-extensions-4.12.2 urllib3-2.3.0 wcwidth-0.2.13
当时我为了安全起见,安装了Python虚拟环境,并在虚拟环境中安装并在~/home/FTBC60/下运行了mcdreforged init和mcdreforged (配置文件就是我在Q群里发的config.yml),
运行的是Forge服务器(即我发到群里的tar.gz包,这个是我用命令行归档,可以正常备份的,我另外发的zip包则是我之前手动用Deepin自带的压缩包管理器备份的,这是无法备份并报错的)

@Fallen-Breath
Copy link
Contributor

Fallen-Breath commented Jan 18, 2025

经过分析,用户的存档中存在少量 atime_ns 为 15032385535000000000 的文件 / 文件夹。这超过了 int64 的有效范围,触发了 OverflowError(日志:https://pastebin.com/cJ4Gcszu)

暂时的解决方法是,使用 touch 工具来刷新异常文件的 atime。操作后,问题得已解决

后续版本的 PrimeBackup 不再储存 ctime 和 atime,仅储存 mtime,因此不会有这个 atime 的问题。不过对于依然存在的 mtime 超范围的常见,仍需要一个更好的对策,如 warning 并修改其值至当前时间或 int64_max

@Fallen-Breath Fallen-Breath changed the title 我似乎找到了一种让PB的稳定报错的方法,将zip压缩的备份还原回来,就会直接报错 在 atime_ns 超过 int64 范围时,备份将出现 OverflowError Jan 18, 2025
@Fallen-Breath Fallen-Breath added bug Something isn't working enhancement New feature or request labels Jan 18, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants