V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
x500
V2EX  ›  程序员

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

  •  
  •   x500 · 2021-04-16 08:14:08 +08:00 · 3407 次点击
    这是一个创建于 1308 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    不过也有可能是你的(机械)硬盘有坏道……
    no1xsyzy
        13
    no1xsyzy  
       2021-04-16 09:44:38 +08:00   ❤️ 2
    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
        14
    admol  
       2021-04-16 09:45:35 +08:00
    遇到过无法删除文件夹, 只要再重命名下文件夹就自己删除消失了
    x500
        15
    x500  
    OP
       2021-04-16 09:52:43 +08:00
    刚才又检查磁盘,告诉我磁盘没问题,我让它强制检查一遍后,再删除,也是一样:先显示有多少文件空间要删除,过一会儿,界面上啥都没有,那文件夹还在。
    no1xsyzy
        16
    no1xsyzy  
       2021-04-16 09:55:16 +08:00
    不过试了下似乎在 explorer.exe 中删除操作并不受 260 影响,无论是彻底删除还是回收站
    Mithril
        17
    Mithril  
       2021-04-16 09:58:01 +08:00
    Explorer 那个删除文件夹会提前遍历一次所有文件,这个过程相当的慢。
    如果你的文件特别多,直接用命令行或者换个文件管理器删吧。
    q197
        18
    q197  
       2021-04-16 10:15:15 +08:00
    @kuzhan onedrive 里放的文件如果名字太长还会造成无法同步那个文件的 bug 。你的情况网页端删了试试?
    YouKnowIt
        19
    YouKnowIt  
       2021-04-16 10:25:02 +08:00
    你的磁盘有坏道吧
    jeeyong
        20
    jeeyong  
       2021-04-16 11:04:29 +08:00
    win7 为止, 好像都有这个 BUG...
    不确定多少个文件, 单个文件夹内文件数量超过多少就会出现异常
    记得以前出过补丁..
    faceair
        21
    faceair  
       2021-04-16 11:15:00 +08:00   ❤️ 1
    wusheng0
        22
    wusheng0  
       2021-04-16 17:34:42 +08:00 via Android
    0day 的话可以换奖金了
    kuzhan
        23
    kuzhan  
       2021-04-16 19:55:01 +08:00
    @q197 没用 我的网页端已经删除不存在这个文件夹了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5456 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 41ms · UTC 06:47 · PVG 14:47 · LAX 22:47 · JFK 01:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.