Skip to content

Per 10423 make archivematica efs compatible - #22

Merged
liam-lloyd merged 2 commits into
mainfrom
per-10423_make_archivematica_efs_compatible
Aug 31, 2026
Merged

liam-lloyd merged 2 commits into
mainfrom
per-10423_make_archivematica_efs_compatible

Conversation

@liam-lloyd

Copy link
Copy Markdown
Member

No description provided.

@liam-lloyd
liam-lloyd marked this pull request as draft August 27, 2026 17:57
@liam-lloyd
liam-lloyd force-pushed the per-10423_make_archivematica_efs_compatible branch from 783c069 to e3c107b Compare August 27, 2026 18:15
Currently, the greater latency of EFS operations can cause
race-condition-driven errors in Archivematica's watch_dirs.py logic,
which in the worst case can cause the watch_dirs process to fail
silently, leading processing to hang. This commit updates watch_dirs to
avoid that. It also makes watch_dirs fail explicitly if it attempts to
use inotify mode against an NFS-based filesystem, because this will not
work.
@liam-lloyd
liam-lloyd force-pushed the per-10423_make_archivematica_efs_compatible branch from e3c107b to 350b20b Compare August 27, 2026 18:29
@liam-lloyd
liam-lloyd marked this pull request as ready for review August 27, 2026 18:29
When running against EFS, Archivematica can run into an issue in the NFS
client where a move operation fails because as it looks up the directory
to be moved, it realizes that another client has moved it from the place
where this client last saw it to another place. This triggers an effort
to update where that directory lives in the client's internal state,
which fails because it needs a lock that the original move operation is
holding. This commit updates Archivematica to retry failed move
operations once, which will deterministicly fix this particular bug,
because mv's error handling reads the directory it failed to move, which
successful triggers the client to update where that directory lives in
its internal representation.
@liam-lloyd
liam-lloyd force-pushed the per-10423_make_archivematica_efs_compatible branch from 350b20b to a0ce171 Compare August 27, 2026 22:51

@cecilia-donnelly cecilia-donnelly left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This makes sense to me! I don't think I can meaningfully test it, though (and I know you have done so).

I will also note that my Python is extremely rusty.

@liam-lloyd
liam-lloyd merged commit b395218 into main Aug 31, 2026
12 checks passed
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.

2 participants