mirror of https://github.com/pixelfed/pixelfed
staging
l10n_crowdin_translations
dev
feature/configurable-min-registration-age
configcache-clean-rebased
dockerfile-compile-ffmpeg-x264-x265
fix/media-storage-optimized-charge
fix/dm-remote-delete-media-leak
feat/emoji-cloud-storage-v2
feat/story-cloud-storage-v2
fix/hashtags-outside-bmp
copilot/review-old-issues
groups
vue3
v0.1.9
v0.10.0
v0.10.1
v0.10.10
v0.10.2
v0.10.3
v0.10.4
v0.10.5
v0.10.6
v0.10.7
v0.10.8
v0.10.9
v0.11.0
v0.11.1
v0.11.10
v0.11.11
v0.11.12
v0.11.13
v0.11.2
v0.11.3
v0.11.4
v0.11.5
v0.11.6
v0.11.7
v0.11.8
v0.11.9
v0.12.0
v0.12.1
v0.12.10
v0.12.11
v0.12.12
v0.12.2
v0.12.3
v0.12.4
v0.12.5
v0.12.6
v0.12.7
v0.12.8
v0.12.9
v0.13.0
v0.14.0
v0.14.1
v0.14.2
v0.14.3
v0.5.9
v0.6.0
v0.6.1
v0.7.6
v0.8.0
v0.8.5
v0.8.6
v0.9.0
v0.9.4
v0.9.5
v0.9.6
${ noResults }
1 Commits (dev)
| Author | SHA1 | Message | Date |
|---|---|---|---|
|
|
0d01d5a963 |
Fix duplicate-key violation when importing remote media attachments
Helpers::importNoteAttachment unconditionally inserted a new Media row per attachment, so re-importing a remote status (an Announce racing another inbox job, a re-fetch, or a duplicate url within one activity) hit the media_status_id_media_path_unique constraint and crashed the queue job with a 1062 UniqueConstraintViolationException, dropping the boost/import. Make createMediaAttachment idempotent on (status_id, media_path): skip when a row already exists, and catch the unique-constraint violation as a lost-race no-op, returning null so the caller skips re-dispatching storage. Adds regression tests (re-import no-op, distinct urls still stored, concurrent-insert returns null). |
4 weeks ago |