Dev log #20:删掉 18 万行代码,追查 socket 泄漏的一周
来源:dev.to — 2026-09-06
📋 概述
作者记录了他的一周开源「净负」进展:横跨十几个仓库推了 102 次提交,但头条数字不是新增而是删掉的约 18.8 万行代码——他用「焦土」方式清理由 Obsidian 内部 UI 状态与插件噪音污染版本历史的笔记库,砍掉约 17.9 万行后同步干净了。技术硬核部分在 py-libp2p:他开了两个关于 socket 泄漏的 issue(Swarm 关停时没清理 dialed 连接 socket、muxer 连接测试固件里的残留泄漏),并提 PR 确保连接在关停时被显式关闭把 socket 还给 OS,还推进 WebRTC-Direct 的 Go/Python 互操作测试。
🔑 核心要点
- 本周的净负清洗很有疗愈感:102 次提交里头条是删掉的 18.8 万行——砍掉对 Obsidian 内部 UI 状态与插件噪音的版本追踪后,笔记库同步干净、git 历史清爽
- py-libp2p 的硬核调试:Issue #1485 发现 Swarm 关停路径没清理导致 dialed 连接 socket 泄漏,Issue #1487 定位 muxer 连接测试固件的残留泄漏,并提 PR 显式关闭连接把 socket 还给 OS
- WebRTC-Direct 的 Python/Go 互操作是一段旅程:出现过 ICE 握手成功却连接被立刻拆掉的诡异边界情形——这正是 p2p 工作既折磨人又深有回报的原因
- breakscale 里抓到一个危险盲区:节点丢掉 25% 请求(超时)却仍报 0% 失败率,PR #57 修正超时计数让失败率反映现实;另修掉一个校验拒绝保存设计会连原数据一起抹掉的数据丢失 bug
- 还给 Rust 编译器提了 PR(#162123,让 -Znext-solver 下报告不满足的 opaque 上界而非笼统类型不匹配)——给编译器贡献总是屏息时刻,却是学魔法如何发生的最佳途径
💡 金句
「能版本控制某样东西」不代表「你该版本控制它」——你并不需要把所有编辑器窗口位置都交给 git 去管。
👍 0
👎 0
← 返回 dev.to 首页