网易首页 > 网易号 > 正文 申请入驻

“CEO一登录,网站就崩了”,工程师紧急排查:AI写的Bug,差点甩锅给老板!

0
分享至

  

  编译 | 苏宓

  出品 | CSDN(ID:CSDNnews)

  “两次 CPU 飙升的背后有个巧合,那就是——‘我们 CEO 登录了账号。’于是,我们把 CEO 的账号给封了,继续排查原因......”

  听起来像段子,但这真是 Sketch.dev 的工程师亲口写下的“事故总结”。而这一切的起因,只是因为一段由 AI 生成的代码。

  Sketch.dev 是一家用 AI 辅助程序员写代码的开发平台,他们甚至用自己的工具开发自家产品。但在 7 月中旬,他们「栽」在了自己信任的 AI 手里。

  系统突然卡顿、服务变慢、CPU 飙升,接连几次“迷你宕机”之后,团队发现:每次崩溃的起点,都是 CEO 登录系统。他们当机立断地封了 CEO 的账号,问题果然暂时消失了。

  但后来经过排查,问题不在 CEO,而在代码。

  对此,7 月 31 日,Sketch.dev工程师 Josh Bleecher Snyder 和 Sean McCullough 发布了一篇博客——《我们第一次因 LLM 生成代码而宕机》,对整个事件进行了回顾总结。这不是模型瞎写代码的问题,而是看起来没问题的 AI 重构,把一个逻辑错误埋进了系统底层。

  这次事故,成了团队第一次真正感受到:AI 编码代理,也会带来隐形的生产风险——不是“不会写”,而是“写得像对的”。


  起因

  时间回到 7 月 15 日,Sketch.dev 的工程团队发现自家网站开始出现一连串的小范围宕机。

  一开始的部署看起来很正常,但没过多久,CPU 占用飙升,系统响应开始严重卡顿。

  后台的性能分析工具显示,是一些极其复杂的 SQL 查询在疯狂执行全表扫描,系统已经被拖到快撑不住的临界点

  为了解决这种情况,彼时Sketch.dev 的工程师觉得,无论如何,这些查询都必须进行优化或彻底重写。于是,团队修改了查询逻辑并重新部署。没想到同样的情况再次发生:最初一切正常,之后又逐步滑向性能崩溃,陷入了恶性循环。

  进一步分析后,他们惊讶地发现,两次 CPU 飙升背后的“触发器”竟然是:“我们 CEO 登录了。”

  于是他们决定再次重启部署清理状态,顺手永久封了 CEO 的账号,继续追查问题。

  虽然性能分析工具依然显示是数据库资源争用的问题,但工程师们觉得,这个解释已经站不住脚了。

  他们继续往上追查调用栈,结果发现有一段平时几乎不会执行的代码路径,正是引发这些“数据库过载查询”的根源。而这段代码——最近才刚被重构过

  于是,他们果断撤回了那次重构,重新部署了代码,也把被封号的 CEO 解封,然后开始深入分析到底哪里出了问题。

  

  直接原因初解析

  根据Sketch.dev工程团队的介绍,其日常会使用自家 AI 平台来开发 Sketch 这款产品,而此次问题的根源在于一段由 LLM 生成、随后经人工审核的大规模代码重构。

  这段代码被从一个文件移动到另一个文件中,而 Bug 就悄然藏在这个过程中。

  详细来看,重构前的代码如下:

  for{ repos, repoResp, err := ghClient.Apps.ListUserRepos(ctx, *installation.ID, repoOpt) iferr !=nil{ // Log error but continue with other installations log.Printf("Error fetching repositories for installation %d: %v", *installation.ID, err) break } // ... }

  重构后的代码:

  for{ repos, repoResp, err := ghClient.ListUserRepos(ctx, *installation.ID, repoOpt) iferr !=nil{ // Log error but continue with other installations log.Printf("Error fetching repositories for installation %d: %v", *installation.ID, err) continue } // ... }

  原本的break被改成了continue,错误被“静默”处理,直接导致死循环。


根本原因

  说白了,这次宕机事故,其实源于一次代码迁移时的一个细微变更。但因为整段代码整体都在迁移,这个小变动就被“淹没”在大量修改里,开发团队在代码审核时没能察觉。

  该团队指出,这暴露出整个行业在“识别代码小幅变更”这方面工具的不足。像 Git 这样的主流工具,确实可以识别一个文件整体的“迁移+改动”,但要是在同一个文件中某段代码被改动了位置又稍作修改,它就很难看出——技术上实现起来也确实不简单。

  在实际开发中,这种情况并不少见:一大片红绿 diff(即“新增/删改”的代码差异)中看起来大同小异,很容易漏掉真正重要的改动。而这种错误,并不是因为用了 AI 才出现,哪怕是人类开发者也可能踩坑。

  但问题在于:AI 更容易犯这种错

  人类开发者做重构时,往往是直接剪切原来的代码,再粘贴到新位置,然后做有意识的修改。这个过程相对“闭环”,出错概率比较低。

  然而,AI 编码助手的逻辑则不同——它不会“剪切粘贴”,而是“先删掉一段代码,再重新写一段”。本质上,它是在尝试“转录”旧的逻辑到新位置,稍有偏差就可能抄错。

  而这次的 Bug,就属于这种“转录错误”的典型案例。

  对此,Sketch.dev 团队也列举了一个典型例子来说明这种转录错误是如何发生的:

  iferr != nil { //Log error butcontinuewith other installations log.Printf("Error fetching repositories for installation %d: %v", *installation.ID, err) break }

  可以看到,上面代码的注释写的是“but continue”,但实际的程序逻辑却写成了“中断执行”(break)。也就是说,注释和代码本身“打架”了

  这种错误,是怎么发生的?该团队工程师分析后发现,这是 AI 在生成代码时两种“判断信号”发生了冲突:

  一种是“转录信号”,也就是它试图照搬旧代码中的逻辑(这一层面它想用break);

  另一种是“局部预测”,也就是它根据上下文猜测此时该写什么(这一层面它认为应该用continue)。

  很不幸,这次 AI 更相信自己的“直觉”——结果它选择了continue,也就是错误的那个选项,从而引发了 Bug。

  

  预防措施

  为避免类似问题再次发生,Sketch.dev 研发团队对平台的代理执行环境进行了改进,新增了剪贴板支持功能。现在,AI 代理在修改文件时可以将代码复制到剪贴板,并从中读取内容。

  为了避免类似的错误再次发生,Sketch.dev 研发团队给他们的 AI 编码环境增加了“剪贴板”功能。现在,AI 在修改代码时,可以像人一样复制粘贴代码,这样可以尽量保持原样不出错。

  不过问题也来了——比如在像 Python 这样非常依赖缩进的语言里,粘贴过去的代码缩进可能不对,所以他们还加了一个“自动调整缩进”的机制,确保粘贴后的代码格式不会乱。未来他们还打算接入更智能的代码格式工具(LSP),让粘贴缩进这件事更自动化。

  虽然这个新功能刚上线不久,但在一些更强大的 AI 模型上,初步效果还不错。

  此外,该团队也呼吁:Git 能支持更智能的“跨区域改动检测”功能。这个技术本来就有用,但在现在这个“越来越多代码由 AI 生成”的时代,如果 Git 能识别某段代码从 A 文件移动到 B 文件,还能看出其中有没有被悄悄改动,将会极大提升发现错误的能力。

  AI 编程失误引发问题不止一次两次了

  时下,Sketch.dev 的经历,也引发了广泛关注。因为 AI 生成的代码导致网站宕机,工程师却在第一时间将“矛头”首先对准自家 CEO,还直接封禁了他的账户。虽然事后澄清是误会,但仍引发大量网友吐槽:

  “CEO 何其的冤枉,他就只是登录时间碰巧和故障撞上了,然后你们居然把他封号了?”

  但这场“乌龙”只是当下 AI 编程困境的缩影,类似的情况早已不是孤例。

  像不久前我们报道的——SaaStr 创始人 Jason Lemkin 就曾因使用:AI 不仅多次无视指令、篡改测试数据,甚至在他反复强调“不要动线上数据库”的情况下,仍然一键删库。气得他发文吐槽:

  “我提醒了它整整 11 次,但没用……我现在真的开始担心 AI 失控了。”

  

  无独有偶,Google 的 Gemini CLI 工具也出过同样的事故。一位产品经理尝试用它整理文件夹,结果 AI 误把文件移到了一个根本不存在的目录,数据直接清空。出事之后,Gemini CLI 工具还自动“认错”道:

“我彻底而灾难性地失败了。命令审查显示我严重不称职。”

  同样就在两天前,更有开发者在 Reddit 论坛中发帖警告称:“Gemini CLI 删除了我的整个 Windows 系统”,让人觉得 AI 现在在帮助人类处理技术问题时逐渐离谱。

  这名开发者写道:

  我分享这个经历,是想提醒所有使用 Gemini CLI 或类似工具、涉及文件系统操作的用户:一定要小心。

  当时我在 Windows 上使用 Gemini CLI(从 Git Bash 启动,在项目根目录),我让它把我的项目用另一种技术重写,并新建一个分支。本来它应该只删除当前分支下的文件,但结果却执行了一个破坏性的 rm -rf 命令

  尽管有些删除操作因为权限问题(比如C:\等系统文件夹)失败了,但它仍然把我整个 C 盘的大量内容都删掉了

  任务结束后,我的系统几乎彻底崩了:

  程序无法启动

  资源管理器打不开

  很多关键文件和应用全都不见了

  幸运的是,我通过系统还原(rstrui)挽回了大约 90% 的系统数据,但依然有不少程序丢失或损坏。

  补充说明:我还贴出了日志证据,包括:

  

  向 Gemini CLI 发出的提示内容,其中有确认是否可以删除当前分支文件(但我没法找回 Gemini 返回的确认消息,因为我是用 Gmail 登录的,不是 API key)

  

  Git 日志:确认我在新建分支上操作,随后文件被删除

  

  renderer.log:记录了删除文件的操作

  

  filewatcher.log:进一步确认文件被删除

  

  系统还原日志

  

  使用 Wise Data Recovery 工具识别出的丢失文件

  这些问题背后,其实都是同一种现象在作祟:AI 模型有时候并不真正“理解”代码,这种方式往往会产生听起来“像是真的”但实际上完全错误的结果。

  在中,66% 的开发者就表示,他们经常遇到 AI 输出“差一点就对”的答案,而调试这些“似是而非”的代码反而更花时间,45% 的人对此深有同感。

  

  相比之下,真正对 AI 工具“完全放心”的人寥寥无几——只有 3% 的受访者表示“高度信任”,而明确“不信”的人更多,高达 46%。

  

  经验越丰富的程序员,态度往往也越谨慎:只有 2.5% 的资深开发者“高度信任”AI,反倒有 20.7% 明确表示“高度不信任”。

  

  正如有网友所说:“写代码变成了喂提示词 + 修烂摊子,AI 编程的未来也许值得期待,但现在还远没到可以闭眼上产线的阶段。”

  对此,你怎么看?

  参考:

  https://sketch.dev/blog/our-first-outage-from-llm-written-code

  https://www.reddit.com/r/GeminiAI/comments/1md2quz/warning_gemini_cli_deleted_my_entire_windows/

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
海南封关运作后,就相当于中国版的新加坡正式上线了。

海南封关运作后,就相当于中国版的新加坡正式上线了。

流苏晚晴
2025-12-21 16:05:12
史上降价最狠iPhone来了,三个月狂跌2900元

史上降价最狠iPhone来了,三个月狂跌2900元

3C毒物
2026-01-25 00:08:30
张宗逊明明战功高、资历老,却没能评上大将,这事儿和惹恼两大元帅毫无关系,真正原因另有他处

张宗逊明明战功高、资历老,却没能评上大将,这事儿和惹恼两大元帅毫无关系,真正原因另有他处

清风鉴史
2025-12-24 13:59:10
全体注意,最新预测来了!明天1月26日A股大概率会这样走!

全体注意,最新预测来了!明天1月26日A股大概率会这样走!

一担金
2026-01-25 21:29:54
回旋镖扎自己身上是啥体验?网友:有仇当天就报,心情爽极了

回旋镖扎自己身上是啥体验?网友:有仇当天就报,心情爽极了

带你感受人间冷暖
2026-01-26 00:05:20
美军舰护航对台军售船闯台海,百架F35撑腰,中方亮杀招硬刚到底

美军舰护航对台军售船闯台海,百架F35撑腰,中方亮杀招硬刚到底

达文西看世界
2026-01-22 09:28:01
英超积分榜:切尔西3-1反超利物浦进前四,维拉2-0追平曼城

英超积分榜:切尔西3-1反超利物浦进前四,维拉2-0追平曼城

小犙拍客在北漂
2026-01-26 00:17:49
又赢了!王欣瑜爆冷诺斯科娃创三项纪录,网友:霉地终变福地

又赢了!王欣瑜爆冷诺斯科娃创三项纪录,网友:霉地终变福地

网球之家
2026-01-24 22:49:49
先导智能:2025年净利同比预增424%-529%

先导智能:2025年净利同比预增424%-529%

财联社
2026-01-25 16:21:12
台军女飞行员郭文静:只要长官敢下令,我会毫不犹豫的击落歼20!

台军女飞行员郭文静:只要长官敢下令,我会毫不犹豫的击落歼20!

顾史
2026-01-21 21:04:39
4冠王单节4分遭遇4连败,杨鸣递交辞呈,下一轮打四川队乌戈带队

4冠王单节4分遭遇4连败,杨鸣递交辞呈,下一轮打四川队乌戈带队

邹维体育
2026-01-25 22:56:44
徐云龙:0-4还不让日本下去一个?球员压力太大 就像韩日世界杯一样

徐云龙:0-4还不让日本下去一个?球员压力太大 就像韩日世界杯一样

寒律
2026-01-25 09:49:27
美俄乌谈崩了,普京新增一要求,扎哈罗娃点名中国:稳住国际局势

美俄乌谈崩了,普京新增一要求,扎哈罗娃点名中国:稳住国际局势

兰妮搞笑分享
2026-01-26 00:04:53
中国最后一位太监孙耀庭自述:晚上伺候娘娘时,鞋底必须藏苍耳

中国最后一位太监孙耀庭自述:晚上伺候娘娘时,鞋底必须藏苍耳

妙知
2025-08-28 10:19:43
医院检验科原主任,狂买30多处房产,遍布海南、浙江、四川等地,被查时反问“抓我做什么?”

医院检验科原主任,狂买30多处房产,遍布海南、浙江、四川等地,被查时反问“抓我做什么?”

南方都市报
2026-01-23 09:19:58
6场23分钟!枪手7000万先生踢世界杯有点悬 若无改观将成3输交易

6场23分钟!枪手7000万先生踢世界杯有点悬 若无改观将成3输交易

雪狼侃体育
2026-01-25 22:44:35
打破纪录!苹果突然宣布大降价

打破纪录!苹果突然宣布大降价

鲁中晨报
2026-01-25 11:07:12
盆满钵满!拜仁成绩出色财政收入优,豪门底气底蕴正是由此而来

盆满钵满!拜仁成绩出色财政收入优,豪门底气底蕴正是由此而来

里芃芃体育
2026-01-26 00:10:06
身边毁三观的八卦,太炸裂了!不准备两斤瓜子出不来!

身边毁三观的八卦,太炸裂了!不准备两斤瓜子出不来!

另子维爱读史
2026-01-24 20:54:02
腾讯元宝宣布:春节发10亿现金

腾讯元宝宣布:春节发10亿现金

每日经济新闻
2026-01-25 19:42:31
2026-01-26 01:24:49
CSDN incentive-icons
CSDN
成就一亿技术人
26279文章数 242221关注度
往期回顾 全部

科技要闻

黄仁勋在上海逛菜市场,可能惦记着三件事

头条要闻

男孩打碎电视屏为"还债"在小区创业 不到2个月赚了6千

头条要闻

男孩打碎电视屏为"还债"在小区创业 不到2个月赚了6千

体育要闻

中国足球不会一夜变强,但他们已经创造历史

娱乐要闻

央八开播 杨紫胡歌主演的40集大剧来了

财经要闻

隋广义等80人被公诉 千亿骗局进入末路

汽车要闻

别克至境E7内饰图曝光 新车将于一季度正式发布

态度原创

亲子
教育
时尚
本地
公开课

亲子要闻

女子腹痛送医才知道自己怀孕,23分钟后......生了一个男孩

教育要闻

留学生的父母,有些话一直没说!

看了鲁豫对章小蕙的采访,最大感触是这一点

本地新闻

云游中国|格尔木的四季朋友圈,张张值得你点赞

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版