Name the scan lock file from the database's resolved path (closes #101)
check / check (push) Canceled after 0s
check / check (push) Canceled after 0s
The lock file was the configured database path with .lock appended, so a scan reaching the database through a symlink to it locked a different file and ran alongside a scan holding the lock through the real path. The lock file is now named from the database's path with symlinks resolved. Before the database exists, its directory is resolved and the file name joined to it, so the error names the same lock file either way. testDBPath resolves its temp dir, so lock errors name the expected path where the temp dir is itself reached through a symlink. Model: opus-5-5
This commit is contained in:
@@ -29,6 +29,10 @@
|
||||
|
||||
# Completed Steps
|
||||
|
||||
- the scan lock file is named from the database's path with symlinks resolved,
|
||||
so a scan through a symlink to the database fails while another scan holds the
|
||||
lock (2026-10-14, https://git.eeqj.de/sneak/sfdupes/issues/101)
|
||||
|
||||
- `scan` records mtime to the nanosecond, as whole seconds in `mtime` plus
|
||||
`mtime_nsec`, and compares it at that resolution, so a same-size rewrite
|
||||
within the same second is re-hashed (2026-10-07,
|
||||
|
||||
Reference in New Issue
Block a user