FRP运行过程中发现的安全漏洞,没有办法修复

本文揭示了在使用frp搭建中遇到的CPU占用问题,源于600k空闲goroutines陷入死锁,由于未正确处理导致的无限等待。作者强调了考虑通道大小和避免死锁的重要性。

 最近经常发送frp搭建外网访问内网不稳定,经过多次排查发现一个可怕的漏洞:这些 goroutines 结束之前正在等待一个 channel 关闭,而这个 channel 永远不会关闭(一个常见的死锁问题)。这个进程毫无任何理由吃掉了 90 % 的 CPU ,而检查 expvars 显示有 600 k 空闲的 goroutines! 我猜测 goroutine 调度程序占用了 CPU。channels 没有仔细考虑,因为错误大小的 channels (默认情况下没有缓冲) 会导致死锁。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值