Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Close fd when acquire fails. #39

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

terrifiedquack
Copy link

I ran into an interesting corner case the other day: The lockfile's fd is opened when attempting to acquire the lock, and remains open until the lock is released. This means that in cases where the lock is not successfully acquired before the objects go away, a ResourceWarning of an unclosed fd is printed. This can also cause unclosed fds to accumulate, or even cause a process to run out of fds.

This came up for me when attempting to clean up an old tmp/lockdir, when attempting to acquire many locks but immediately give up when unsuccessful, and then remove them when successful.

This closes the file when acquire fails to acquire the lock for any reason.

Currently, the lockfile's fd is opened when attempting to acquire the
lock, and remains open until the lock is released. This means that in
cases where the lock is not successfully acquired before the objects go
away, a ResourceWarning of an unclosed fd is printed. This can also
cause unclosed fds to accumulate, or even cause a process to run out of
fds.

This came up for me when attempting to clean up an old tmp/lockdir, when
attempting to acquire many locks but immediately give up when
unsuccessful, and then remove them when successful.

This closes the lockfile fd when acquire fails to actually acquire the
lock.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant