进度条说复制完了 U盘其实还在写!这个15年bug终于修了
  • 红茶
  • 2026年10月28日 11:23
  • 0

快科技10月28日消息,KDE开发者梅文·卡尔在KDE官方博客披露,一个存在15年、被其称为KIO最严重缺陷的bug已正式修复,将随2026年11月13日发布的KDE Frameworks 6.32推送。

问题最早于2011年9月提交,编号281270。KDE向USB闪存盘复制文件时,进度条与完成通知反映的只是数据写入本地缓存的速度,而非真正写入可移动存储的时刻。

进度条说复制完了 U盘其实还在写!这个15年bug终于修了

报告者当时发现,向理论极限12Mbit/s的USB 1.1设备复制文件,通知竟显示约50MB/s。

进度条说复制完了 U盘其实还在写!这个15年bug终于修了

后果比数字错误更严重。在一个写入速度约2.3MB/s的USB 2.0盘上复制128MiB文件,Dolphin会提前一分多钟判定复制完成;若用户在这个窗口内拔出U盘,数据直接丢失。

技术根源在于KIO的文件worker通过write()调用写入数据,只要数据进入内存页缓存,write()就会返回,内核随后择机写入设备。

本地SSD上这个延迟几乎不可感知,但在慢速USB盘或网络文件系统上,进度条严重超前于真实写入进度。

修复并非一蹴而就。早在2011年9月,就有开发者提出使用sync_file_range()获知真实写入时刻,但后续实现多次出错。

2021年该bug被提升至最高优先级,2024年开发者两次尝试仍未正确调用。最终通过四个KIO合并请求,引入自适应回写窗口,才让完成对话框如实反映数据落盘状态。

进度条说复制完了 U盘其实还在写!这个15年bug终于修了

文章纠错

  • 好文点赞
  • 水文反对

此文章为快科技原创文章,快科技网站保留文章图片及文字内容版权,如需转载此文章请注明出处:快科技

观点发布 网站评论、账号管理说明
热门评论
查看全部评论
相关报道

最热文章排行查看排行详情

邮件订阅

评论0 | 点赞0| 分享0 | 收藏0