Commit ea594a5
authored
Keep Unix lock files after release (#577)
## Problem
Since `03b0ab7` (`feat(unix): delete lock file on release`),
`UnixFileLock._release()` unlinks the path before unlocking and closing
the fd. That lets a process that already opened the old inode keep
waiting on that deleted file while another process recreates the
filename and locks a new inode, so both can believe they hold the same
lock.
Fixes #574.
## Solution
- stop unlinking the Unix lock file on release
- keep the Unix-specific expectations aligned with the persistent-path
behavior
- add a regression that proves a waiter fd cannot acquire a different
inode after another lock instance reacquires the same path
## Testing
- `.venv-ci/bin/python -m pytest tests/test_filelock.py
tests/test_unix_fallback.py tests/test_self_deadlock.py -q`
- `.venv-ci/bin/python -m ruff check src/filelock/_unix.py
tests/test_filelock.py tests/test_unix_fallback.py
tests/test_self_deadlock.py`
- `.venv-ci/bin/python -m ruff format --check src/filelock/_unix.py
tests/test_filelock.py tests/test_unix_fallback.py
tests/test_self_deadlock.py`1 parent 7595a7b commit ea594a5
2 files changed
Lines changed: 37 additions & 12 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
38 | 38 | | |
39 | 39 | | |
40 | 40 | | |
41 | | - | |
42 | | - | |
43 | | - | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
44 | 44 | | |
45 | 45 | | |
46 | 46 | | |
| |||
103 | 103 | | |
104 | 104 | | |
105 | 105 | | |
106 | | - | |
107 | | - | |
108 | 106 | | |
109 | | - | |
| 107 | + | |
110 | 108 | | |
111 | 109 | | |
112 | 110 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
945 | 945 | | |
946 | 946 | | |
947 | 947 | | |
948 | | - | |
| 948 | + | |
949 | 949 | | |
950 | 950 | | |
951 | 951 | | |
| |||
955 | 955 | | |
956 | 956 | | |
957 | 957 | | |
958 | | - | |
| 958 | + | |
959 | 959 | | |
960 | 960 | | |
961 | 961 | | |
| |||
974 | 974 | | |
975 | 975 | | |
976 | 976 | | |
977 | | - | |
| 977 | + | |
978 | 978 | | |
979 | 979 | | |
980 | 980 | | |
981 | | - | |
| 981 | + | |
982 | 982 | | |
983 | 983 | | |
984 | 984 | | |
985 | 985 | | |
986 | 986 | | |
987 | 987 | | |
988 | 988 | | |
989 | | - | |
| 989 | + | |
990 | 990 | | |
991 | 991 | | |
992 | 992 | | |
993 | 993 | | |
994 | | - | |
| 994 | + | |
| 995 | + | |
| 996 | + | |
| 997 | + | |
| 998 | + | |
| 999 | + | |
| 1000 | + | |
| 1001 | + | |
| 1002 | + | |
| 1003 | + | |
| 1004 | + | |
| 1005 | + | |
| 1006 | + | |
| 1007 | + | |
| 1008 | + | |
| 1009 | + | |
| 1010 | + | |
| 1011 | + | |
| 1012 | + | |
| 1013 | + | |
| 1014 | + | |
| 1015 | + | |
| 1016 | + | |
| 1017 | + | |
| 1018 | + | |
| 1019 | + | |
| 1020 | + | |
| 1021 | + | |
995 | 1022 | | |
996 | 1023 | | |
997 | 1024 | | |
| |||
0 commit comments