HEIC preview fails with 512 MiB Imagick limit despite policy.xml override (fixed by newer ImageMagick/libheif)
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 48/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Tranquilla
- Stack tecnologico
- docker, php
- Ambito
- devops, infrastructure
Direzione di ricerca
Inizia riproducendo il problema con il test diretto di PHP Imagick e analizza la configurazione di ImageMagick dell’immagine Docker ufficiale di Nextcloud, incluso /etc/ImageMagick-7/policy.xml. Confronta i pacchetti ImageMagick/libheif forniti con le versioni più recenti che sono state testate. Il lavoro è completato quando l’immagine aggiornata genera anteprime per il file HEIC interessato senza l’errore di 512 MiB.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
TL;DR
Current included Imagick can't decode many larger heic due to bug, package update fixes bug.
Description
HEIC images fail to generate previews in the stock Nextcloud Docker image due to an Imagick memory/security limit at exactly 512 MiB. Increasing ImageMagick policy limits and Nextcloud preview limits does not resolve the issue. Upgrading the ImageMagick/libheif stack inside the container immediately fixes the problem.
Steps to reproduce
- Deploy official Nextcloud Docker image
- Upload HEIC image (modern phone photo, high resolution)
- Trigger preview generation (web UI or background jobs)
Actual behavior
Preview generation fails with:
ImagickException:` Memory allocation error:
Security limit exceeded: Allocating 599270415 bytes exceeds the security limit of 536870912 bytes
@ error/heic.c/IsHEIFSuccess/141
Expected behavior
- ImageMagick should respect configured policy.xml limits
- HEIC previews should succeed when sufficient memory limits are configured
What was tested
1. Nextcloud config
php 'preview_max_memory' => 1024,
→ No effect
2. ImageMagick policy override
/etc/ImageMagick-7/policy.xml modified:
<policy domain="resource" name="memory" value="1GiB"/>
<policy domain="resource" name="map" value="2GiB"/>
<policy domain="resource" name="disk" value="8GiB"/>
<policy domain="system" name="max-memory-request" value="1GiB"/>
→ Confirmed present inside running container
→ No effect (error still at exactly 536870912 bytes)
3. Direct PHP test (outside Nextcloud)
php -r 'try{
$im=new Imagick();
$im->readImage("/path/to/file.heic");
echo "OK\n";
}catch(Throwable $e){
echo $e->getMessage(),"\n";
}'
Result: Same 536870912-byte security limit error
→ Confirms issue is not Nextcloud-specific
4. Temporary upgrade inside container
Added newer packages (Debian sid):
apt-get update
apt-get install -y -t sid libheif1 libmagickcore-7.q16-10 libmagickwand-7.q16-10
Then reran same PHP test:
OK
→ Same HEIC file loads successfully
Conclusion
- The failure is tied to the ImageMagick/libheif version shipped in the container
- The HEIC decode path appears to ignore or be constrained by a fixed 512 MiB limit in that build
- Policy changes (
max-memory-request, etc.) do not affect this behavior - Upgrading the stack resolves the issue immediately
Environment
Nextcloud Docker image (official)
PHP imagick 3.8.1
ImageMagick 7.1.1-43 (container default)
libheif 1.19.8
Debian-based container
After manual upgrade:
- HEIC decoding works (with minor ABI warning)
Request
- Update ImageMagick/libheif packages in the base image
Notes
This is reproducible via direct PHP Imagick usage (not specific to Nextcloud)
The error is deterministic and always occurs at 512 MiB allocation threshold
Behavior changes immediately with newer ImageMagick/libheif
- Lingua principale
- Shell
- Stelle
- 7.4k
- Fork
- 1.9k
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di nextcloud/docker
-
1. To develop bug feature: cron image
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
-
Drop paragarph about anonymous (unnamed) volumes under Persistent Storage section fo the docsApertabug docs
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 72/100
-
0. Needs triage bug
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
-
Imagick architecture mismatch (x86_64 vs aarch64) on official arm64 image causes Apache segfaultsAperta0. Needs triage bug
Difficoltà 4/5 3-5 giorni Idoneità per principianti 50/100
Tutte le issue di nextcloud/docker
Issue simili
-
area:install bug needs-triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
I maintainer di solito rispondono entro 2 giorni
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
Netcracker/qubership-test-pipelines#307 ·
I maintainer di solito rispondono entro 2 giorni
-
Webcam overlay freezes during voxtype dictation while screen recording (pause_media pauses the overlay mpv)Forse già presa Una pull request collegata a questa issue è aperta o già unita. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
TYPO3BestPractices/tea#2409 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
msys2/MSYS2-packages#6825 ·
I maintainer di solito rispondono entro 1 giorno