Skip to content

Make ClearShare/Metadata thread-safe (BL-16479)#1529

Merged
hatton merged 2 commits into
masterfrom
lockMetaData
Jul 10, 2026
Merged

Make ClearShare/Metadata thread-safe (BL-16479)#1529
hatton merged 2 commits into
masterfrom
lockMetaData

Conversation

@JohnThomson

@JohnThomson JohnThomson commented Jul 10, 2026

Copy link
Copy Markdown
Member

Concurrent access can leave internal collections in a corrupt state that causes all future functions to fail for the life of the process.


This change is Reviewable

Concurrent access can leave internal collections in a corrupt state that causes all future functions to fail for the life of the process.
@JohnThomson JohnThomson marked this pull request as draft July 10, 2026 19:46
@github-actions

github-actions Bot commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

Palaso Tests

     4 files  ±0       4 suites  ±0   10m 45s ⏱️ +47s
 5 103 tests ±0   4 869 ✅  - 1  234 💤 +1  0 ❌ ±0 
16 621 runs  ±0  15 900 ✅  - 2  721 💤 +2  0 ❌ ±0 

Results for commit c10af50. ± Comparison against base commit 4840de8.

This pull request skips 1 test.
SIL.Tests.IO.FileLocationUtilitiesTests ‑ LocateInProgramFiles_SendValidProgramDeepSearch_ReturnsProgramPath

♻️ This comment has been updated with latest results.

…semver:minor

- Add CHANGELOG entries for the thread-safety fix and the new
  RunUnderTagLibLock public API.
- Document why LoadProperties(ImageTag) and NormalizeOrientation
  deliberately do not take TagLibLock (they touch only instance-local
  data, not XmpTag's shared static NameTable/NamespacePrefixes).
- Note the deliberate choice to hold TagLibLock across RetryUtility
  back-offs (keeps each operation obviously atomic).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@JohnThomson

Copy link
Copy Markdown
Member Author

(Claude Opus 4.8) Consulted Devin on 2026-07-10 15:35 CDT up to commit c10af50. Re-review is clean: 0 Bugs, 0 Flags. The earlier changelog Bug and the "asymmetric locking" Investigate flag are now marked Resolved; remaining items are Informational only (each a deliberate, documented design decision or pre-existing). No findings require action before human review.

@JohnThomson JohnThomson marked this pull request as ready for review July 10, 2026 20:59

@hatton hatton 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.

@hatton reviewed 3 files and all commit messages.
Reviewable status: :shipit: complete! all files reviewed, all discussions resolved (waiting on JohnThomson).

@hatton hatton merged commit ba68a4a into master Jul 10, 2026
10 of 11 checks passed
@hatton hatton deleted the lockMetaData branch July 10, 2026 21:10
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