Skip to content

Commit

Permalink
util: close lockfile after opening successfully
Browse files Browse the repository at this point in the history
Otherwise, this will leak file handles and can be a problem in Windows.
Also, `closefd=true` is the default here, so need to pass it explicitly.

Regression from gitpython-developers#1619.

I noticed after [our tests started raising `ResourceWarning`][1].

```python
Traceback (most recent call last):
  File "/opt/hostedtoolcache/Python/3.8.17/x64/lib/python3.8/site-packages/git/util.py", line 938, in _obtain_lock_or_raise
    open(lock_file, mode='w', closefd=True)
ResourceWarning: unclosed file <_io.TextIOWrapper name='/tmp/pytest-of-runner/pytest-0/popen-gw0/external0/project.git/.git/config.lock' mode='w' encoding='UTF-8'>
```

[1]: https://github.com/iterative/dvc/actions/runs/6055520480/job/16434544764#step:6:869
  • Loading branch information
skshetry committed Sep 2, 2023
1 parent f882cd8 commit 3e829eb
Showing 1 changed file with 2 additions and 1 deletion.
3 changes: 2 additions & 1 deletion git/util.py
Expand Up @@ -935,7 +935,8 @@ def _obtain_lock_or_raise(self) -> None:
)

try:
open(lock_file, mode='w', closefd=True)
with open(lock_file, mode='w'):
pass
except OSError as e:
raise IOError(str(e)) from e

Expand Down

0 comments on commit 3e829eb

Please sign in to comment.