Improper lock usage leads to inode overflow in LockLocalStorage implementation

未关闭
#1,975 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

还没有人认领这个 Issue。

  • #2172 来自 @Sanjays2402 —— 已关闭,未合并

评估

难度
2/5
预计耗时
1-3 小时
新手友好度
55/100
Issue 类型
缺陷
描述清晰度
描述清楚
活跃度
停滞
技术栈
python
领域
cloud

调研方向

从 libcloud/storage/drivers/local.py 中本地驱动的 exit 方法开始,检查 InterProcessLock 释放锁后如何处理锁文件名。使用有针对性的测试或复现来确认行为,然后验证已释放的锁文件不再遗留在 /tmp 中,同时不影响缺失文件的清理。

由索引模型根据 Issue 内容生成。

描述

Summary

Behaviour of fasteners.InterProcessLock is pretty weird: class creates a lockfile by provided path, if it doesn't exist, but not manage to remove it after lock is released.

It may lead to uncontrolled lockfiles spam in /tmp folder just because libcloud local driver is not removing this lockfile either.

Detailed Information

This issue encountered in cassandra-medusa v0.15 and lower, which was using apache-libcloud<3.4.0,>=3.3.0 as a dependency.

Please see https://github.com/thelastpickle/cassandra-medusa/issues/528 for more details.


Seems like the lightweight fix is to run

                with contextlib.suppress(FileNotFoundError):
                    os.remove(filename)

just right in the exit method.

主要语言
Python
星标
2.1k
派生
935
平均合并
5 天 3 小时
30 天内合并 PR
15

环境准备

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

apache/libcloud 的其他 Issue

查看 apache/libcloud 的全部 Issue

相似的 Issue

更多 Python Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。