发现 Win10/7 一个资深 bug, 0day bug?

2021-04-16 08:14:08 +08:00
 x500

我有几个外置磁盘,有个目录,100 多 G,几万个文件,不论在 win10/win7 下删除都只是显示出删除框一阵子后,然后就自动消失了,根本不能删除一个文件。 分析:里面是递归调用,形成要操作列表缓存区,结果缓存区溢出,它就一脸蒙比的爬着走了。

3288 次点击
所在节点    程序员
23 条回复
bclerdx
2021-04-16 08:22:48 +08:00
那就向微软提交 bug 反馈。
kokutou
2021-04-16 08:25:38 +08:00
chkdsk 一下分区吧,盲猜有错误
crclz
2021-04-16 08:37:16 +08:00
你要看是什么层面的 0day bug 。如果是文件系统管理代码的 bug,那么就可能是核弹。如果只是资源管理器的,就只是影响体验的 bug 。
superrichman
2021-04-16 08:40:47 +08:00
确定不是你的硬盘坏了?
kuzhan
2021-04-16 08:47:56 +08:00
win10 往 OneDrive 目录解压了一份 switch 开发的项目的源码,删除的时候会剩下一堆占用为 0 的文件,再次删除系统就会重启,目前这个文件夹存在我电脑很久了每次一删点删除就重启,100%复现。
FlyingShark
2021-04-16 08:48:29 +08:00
MFT 坏了?修复下文件系统
jasonyang9
2021-04-16 08:49:44 +08:00
有意思。日志里没任何相关内容?
totoro625
2021-04-16 08:52:26 +08:00
遇到过一次移动硬盘的回收站爆炸,分享你一下:
用 DiskGenius 看一下硬盘分区的 recycle.bin 是否文件较多,可以手动清空一下
这里的回收站只有在对应删除时用的电脑上才能出现在 Windows 的回收站里
gitdoit
2021-04-16 08:56:06 +08:00
之前用 HBuilder 不知道怎么弄的,文件夹建了 n 多层,然后就删不掉了
x500
2021-04-16 08:57:19 +08:00
硬盘没坏,可以创建和删除文件夹,其它小目录也可以正常操作。
whileFalse
2021-04-16 09:05:55 +08:00
Windows 有个 BUG 是如果文件路径过深(我记得是路径超过 128 还是 256 个字符),会无法删除。可以尝试把深层文件夹移动到磁盘根目录,以减少路径深度。
domodomo
2021-04-16 09:28:45 +08:00
噢,这个问题我遇到过,跟你的很像,几万个文件吧,删除非常的缓慢,最后提示无法删除。怎么都删不掉,最后用命令行删除才解决掉。
所以应该是用户界面程序有 bug,怀疑是对要删除的文件数量进行统计用来计算进度条?结果缓存太小溢出了?要不就是哪里内存泄露后重复了几万次后把自己搞崩溃了?

不过也有可能是你的(机械)硬盘有坏道……
no1xsyzy
2021-04-16 09:44:38 +08:00
bug 一般是不称 0day 的…… 漏洞才会这么说
路径字符串长度超过 260 ( MAX_PATH ) 了?试下用 7z File Manager 去删,7zFM 对

https://stackoverflow.com/a/1880453/6202760
https://docs.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation

后来版本的 Windows 可以手动提升这个数值,但必须是程序自己的代码,以确保程序本身对此 aware (以防某些程序申请了恰好 260 内存来存储路径,会导致缓冲区溢出。)

@whileFalse MAX_PATH=260,据说多的 4 个是 盘符、':'、'\'、和最后的 NULL Terminator
admol
2021-04-16 09:45:35 +08:00
遇到过无法删除文件夹, 只要再重命名下文件夹就自己删除消失了
x500
2021-04-16 09:52:43 +08:00
刚才又检查磁盘,告诉我磁盘没问题,我让它强制检查一遍后,再删除,也是一样:先显示有多少文件空间要删除,过一会儿,界面上啥都没有,那文件夹还在。
no1xsyzy
2021-04-16 09:55:16 +08:00
不过试了下似乎在 explorer.exe 中删除操作并不受 260 影响,无论是彻底删除还是回收站
Mithril
2021-04-16 09:58:01 +08:00
Explorer 那个删除文件夹会提前遍历一次所有文件,这个过程相当的慢。
如果你的文件特别多,直接用命令行或者换个文件管理器删吧。
q197
2021-04-16 10:15:15 +08:00
@kuzhan onedrive 里放的文件如果名字太长还会造成无法同步那个文件的 bug 。你的情况网页端删了试试?
YouKnowIt
2021-04-16 10:25:02 +08:00
你的磁盘有坏道吧
jeeyong
2021-04-16 11:04:29 +08:00
win7 为止, 好像都有这个 BUG...
不确定多少个文件, 单个文件夹内文件数量超过多少就会出现异常
记得以前出过补丁..

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/770983

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX