Redis 7.2 Issue 分析:流数据读写导致的“死锁”问题
互联网资源分享 · 互联网资源分享 · 于 08-17 07:11发布 · 111 次阅读
Redis 项目中,一个名为 “[BUG] Deadlock with streams on redis 7.2” 的 issue 12290 吸引了我的注意。这个 bug 中,redis 服务器在处理特定的客户端请求时陷入了死循环,这个现象在 redis 这样的高性能、高可靠性的数据库系统中是极为罕见的。 直接从 Github Release 7.2-rc2 下载 Reids 7.2 的源码,然后编译二进制。这里编译指令带上这两个 Flag make REDIS_CFLAGS="-Og -fno-omit-frame-pointer",方便后续分析工具能够拿到堆栈信息。复现步骤很简单,启动 Redis server ,接着运行 feeder.py 和 subscriber.py 这两个脚本。我们会看到订阅者在处理部分流之后会阻塞住,不再有输出。同时 Redis 进程的 CPU 直接飙到了 100%,新的 redis client 也连不上去服务器了,如下图。 完整讨论在: Redis Issue 分析:流数据读写导致的“死锁”问题(1) Redis Issue 分析:流数据读写导致的“死锁”问题(2) 第 2 篇其实还有待继续深挖
qun
共收到 0 条回复:
回复
.NET Core 大润晟泽实验室
.NET Core 开发
VS Code 或者 VS 2019

系统介绍:

系统开发:
ASP.NET Core + EF Core Mysql + Bootstrap
运行环境:
Ubuntu 16.04 + Kestrel

博客介绍: Sufangxu's Blog
Lab: 大润晟泽实验室
服务器时间:2024-05-24 23:59:39
统计信息
  • 社区会员: 344 人
  • 帖子数: 11 个
  • 回帖数: 1022 条