ImageMagick not found

Bonjour, j’ai mis à jour sur un serveur debian la derniere version de scenari 6.3 et imagemagik est bien installé et à jour (imagemagick is already the newest version (8:6.9.11.60+dfsg-1.6+deb12u2). Les images ne s’affichent pas en mode previsualisation ou publication.
Dans le ficher ext.properties j’ai bien la ligne app.ext.imageMagick.dir=/usr/bin/ et le chemin est correct
ls -l /usr/bin/convert*
lrwxrwxrwx 1 root root 25 Feb 5 2021 /usr/bin/convert → /etc/alternatives/convert
lrwxrwxrwx 1 root root 29 Feb 5 2021 /usr/bin/convert-im6 → /etc/alternatives/convert-im6
-rwxr-xr-x 1 jetty jetty 14544 Jul 11 2024 /usr/bin/convert-im6.q16
-rwxr-xr-x 1 root root 14544 Jul 11 2024 /usr/bin/convert-im6.q16hdri

Dans les logs voici l’erreur :
6770 ImageMagick not found.
6771
6772 4— Exception : Tue Feb 04 16:54:34 CET 2025[188] - chain/xxxx (qtp1072601481-475) —
6773 Cannot run program « /usr/bin/convert-im6.q16 »: error=0, Failed to exec spawn helper: pid: 669009, exit value: 1
6774 java.io.IOException: Cannot run program « /usr/bin/convert-im6.q16 »: error=0, Failed to exec spawn helper: pid: 669009, exit value: 1
6775 at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1143)
6776 at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1073)
6777 at java.base/java.lang.Runtime.exec(Runtime.java:594)
6778 at eu.scenari.transform.img.TfmImgScale.xConvertTransform(TfmImgScale.java:234)
6779 at eu.scenari.transform.img.TfmImgScale.transform(TfmImgScale.java:172)
6780 at com.scenari.m.bdp.item.fs.XItemCacheData.transformAsStream(XItemCacheData.java:478)
6781 at com.scenari.m.bdp.item.fs.XItemCacheData.transformAsNode(XItemCacheData.java:514)
6782 at com.scenari.m.bdp.item.fs.WspSrcNodeItem.transformAsNode(WspSrcNodeItem.java:945)
6783 at com.scenari.src.feature.transform.SrcFeatureTransform.transformAsNode(SrcFeatureTransform.java:122)
6784 at com.scenari.m.ge.generator.dyn.DynGenerator.getXxxPath(DynGenerator.java:360)
6785 at com.scenari.m.ge.generator.dyn.DynGenerator.execute(DynGenerator.java:155)
6786 at eu.scenari.wsp.service.itemdyngen.SvcItemDynGenDialog.xExecuteDialog(SvcItemDynGenDialog.java:371)
6787 at eu.scenari.core.dialog.DialogBase.executeDialog(DialogBase.java:93)
6788 at eu.scenari.core.execframe.httpservlet.HttpRequestConnectorBase.handleRequest(HttpRequestConnectorBase.java:94)
6789 at eu.scenari.core.execframe.httpservlet.servlets.ServiceServlet.service(ServiceServlet.java:163)
6790 at javax.servlet.http.HttpServlet.service(HttpServlet.java:750)
6791 at org.eclipse.jetty.servlet.ServletHolder$NotAsync.service(ServletHolder.java:1450)
6792 at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:799)

Sauriez vous me dire ce qui cloche?
Merci

Vous utilisez quel OS exactement et quelle mode de déploiement de quelle application serveur SCENARI ?

c’est un serveur sous debian 12.9, avec openjdk version 17.0.14. scenarichain-server6.3 est installé avec les packages du dépôt Deb SCENARI (version Jetty)

1— Error : Thu Feb 06 09:59:47 CET 2025[744] - chain/xxxxxxx (qtp1072601481-489) —
Echec à la transformation ‹ transform=img2img&outType=AUTO&sizeRules=Px(ScSCS()ScDpi(targetDpi’96 ›)Sc(ratio’0.35’)Bounds(maxW’630’maxH’630’))’ sur l’item

2— Error : Thu Feb 06 09:59:47 CET 2025[744] - chain/xxxxxxx (qtp1072601481-489) —
Scaling image failed.

3— Warning : Thu Feb 06 09:59:47 CET 2025[743] - chain/xxxxxxxxxxxxx (qtp1072601481-489) —
ImageMagick not found.

4— Exception : Thu Feb 06 09:59:47 CET 2025[743] - chain/xxxxxxxxx (qtp1072601481-489) —
Cannot run program « /usr/bin/convert-im6.q16 »: error=0, Failed to exec spawn helper: pid: 1814526, exit value: 1
java.io.IOException: Cannot run program « /usr/bin/convert-im6.q16 »: error=0, Failed to exec spawn helper: pid: 1814526, exit value: 1
at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1143)
at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1073)
at java.base/java.lang.Runtime.exec(Runtime.java:594)
at eu.scenari.transform.img.TfmImgScale.xConvertTransform(TfmImgScale.java:234)
at eu.scenari.transform.img.TfmImgScale.transform(TfmImgScale.java:172)
at com.scenari.m.bdp.item.fs.XItemCacheData.transformAsStream(XItemCacheData.java:478)
at com.scenari.m.bdp.item.fs.XItemCacheData.transformAsNode(XItemCacheData.java:514)
at com.scenari.m.bdp.item.fs.WspSrcNodeItem.transformAsNode(WspSrcNodeItem.java:945)
at com.scenari.src.feature.transform.SrcFeatureTransform.transformAsNode(SrcFeatureTransform.java:122)
at com.scenari.m.ge.generator.dyn.DynGenerator.getXxxPath(DynGenerator.java:360)
at com.scenari.m.ge.generator.dyn.DynGenerator.execute(DynGenerator.java:155)
at eu.scenari.wsp.service.itemdyngen.SvcItemDynGenDialog.xExecuteDialog(SvcItemDynGenDialog.java:371)
at eu.scenari.core.dialog.DialogBase.executeDialog(DialogBase.java:93)
at eu.scenari.core.execframe.httpservlet.HttpRequestConnectorBase.handleRequest(HttpRequestConnectorBase.java:94)
at eu.scenari.core.execframe.httpservlet.servlets.ServiceServlet.service(ServiceServlet.java:163)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:750)
at org.eclipse.jetty.servlet.ServletHolder$NotAsync.service(ServletHolder.java:1450)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:799)
at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1656)
at org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:292)
at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1626)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:552)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:600)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1624)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1440)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:505)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1594)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1355)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:234)
at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:146)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
at org.eclipse.jetty.server.Server.handle(Server.java:516)
at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:487)
at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:732)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:479)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:277)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:338)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:315)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:173)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131)
at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:409)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883)
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034)
at java.base/java.lang.Thread.run(Thread.java:840)
Caused by: java.io.IOException: error=0, Failed to exec spawn helper: pid: 1814526, exit value: 1
at java.base/java.lang.ProcessImpl.forkAndExec(Native Method)
at java.base/java.lang.ProcessImpl.(ProcessImpl.java:314)
at java.base/java.lang.ProcessImpl.start(ProcessImpl.java:244)
at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1110)
… 54 more

c’est résolu, j’ai mis jetty comme propriétaire de /usr/bin/convert-im6.q16 et relancé le service jetty.
cela fonctionne
Bonne journée

Ce n’est pas normal de devoir faire ça.

Je viens d’installer une VM Debian 12.9 totalement vierge, puis scserver 6.3 deb avec UNIQUEMENT les commandes :

echo "deb [arch=amd64 signed-by=/usr/share/keyrings/scenari-software-keyring.gpg] https://deb.scenari.software stable main" | sudo tee /etc/apt/sources.list.d/scenari.list
apt-get -y install curl gpg; curl -fsSL 'https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x0b77ecb798bedf66' | gpg --dearmor -o /usr/share/keyrings/scenari-software-keyring.gpg
apt update
apt install scenarichain-server6.3.fr-fr-jetty9

et j’ai aucun problème de conversion d’images avec ImageMagick.

Chez vous /usr/lib/jvm/java-17-openjdk-amd64/lib/jspawnhelper existe bien et il est bien exécutable ?

oui il est présent et exécutable
ll /usr/lib/jvm/java-17-openjdk-amd64/lib/jspawnhelper
-rwxr-xr-x 1 root root 18560 Jan 31 00:01 /usr/lib/jvm/java-17-openjdk-amd64/lib/jspawnhelper

On dirait que votre installation interdit à Jetty de spawn des exécutables tierces. Dans ce cas vous allez avoir d’autres problèmes, par exemple pour lancer un publication PDF.

ho, je vais investiguer. Merci