Ok voici ce que ça donne :
J’ai lancé plusieurs fois la commande, ne me demandes pas pourquoi. Ce qui est étrange c’est que j’ai eu deux fois le résultat suivant :
sudo -u tomcat8 /opt/postscriptum/bin/postscriptum https://css4.pub/2018/toc/index.html -o /tmp/test.pdf
{ Error: Protocol error (Target.setDiscoverTargets): Target closed.
at Promise (/opt/postscriptum/cli/node_modules/puppeteer/lib/Connection.js:74:56)
at new Promise (<anonymous>)
at Connection.send (/opt/postscriptum/cli/node_modules/puppeteer/lib/Connection.js:73:12)
at Function.create (/opt/postscriptum/cli/node_modules/puppeteer/lib/Browser.js:34:22)
at Launcher.launch (/opt/postscriptum/cli/node_modules/puppeteer/lib/Launcher.js:177:37)
at <anonymous>
message: 'Protocol error (Target.setDiscoverTargets): Target closed.' }
Si je lance la commande /opt/postscriptum/chromium/chrome --headless --remote-debugging-port=9222
sur un compte standard j’obtiens l’erreur fatale suivante au lancement de la commande
[0210/091844.241145:FATAL:zygote_host_impl_linux.cc(116)] No usable sandbox! Update your kernel or see https://chromium.googlesource.com/chromium/src/+/master/docs/linux_suid_sandbox_development.md for more information on developing with the SUID sandbox. If you want to live dangerously and need an immediate workaround, you can try using --no-sandbox.
#0 0x559d4d02af29 base::debug::CollectStackTrace()
#1 0x559d4cf90593 base::debug::StackTrace::StackTrace()
#2 0x559d4cfa4d1e logging::LogMessage::~LogMessage()
#3 0x559d4e60d90e service_manager::ZygoteHostImpl::Init()
#4 0x559d4cbe61b7 content::ContentMainRunnerImpl::Initialize()
#5 0x559d4cc18fca service_manager::Main()
#6 0x559d4cbe4791 content::ContentMain()
#7 0x559d51280178 headless::(anonymous namespace)::RunContentMain()
#8 0x559d51280205 headless::HeadlessBrowserMain()
#9 0x559d4cc17ca3 headless::HeadlessShellMain()
#10 0x559d4ab4f1ac ChromeMain
#11 0x7fecb50222e1 __libc_start_main
#12 0x559d4ab4f02a _start
Received signal 6
#0 0x559d4d02af29 base::debug::CollectStackTrace()
#1 0x559d4cf90593 base::debug::StackTrace::StackTrace()
#2 0x559d4d02aab1 base::debug::(anonymous namespace)::StackDumpSignalHandler()
#3 0x7fecbb1b10e0 <unknown>
#4 0x7fecb5034fff gsignal
#5 0x7fecb503642a abort
#6 0x559d4d0298e5 base::debug::BreakDebugger()
#7 0x559d4cfa4f61 logging::LogMessage::~LogMessage()
#8 0x559d4e60d90e service_manager::ZygoteHostImpl::Init()
#9 0x559d4cbe61b7 content::ContentMainRunnerImpl::Initialize()
#10 0x559d4cc18fca service_manager::Main()
#11 0x559d4cbe4791 content::ContentMain()
#12 0x559d51280178 headless::(anonymous namespace)::RunContentMain()
#13 0x559d51280205 headless::HeadlessBrowserMain()
#14 0x559d4cc17ca3 headless::HeadlessShellMain()
#15 0x559d4ab4f1ac ChromeMain
#16 0x7fecb50222e1 __libc_start_main
#17 0x559d4ab4f02a _start
r8: 0000000000000000 r9: 00007ffeabb6ed50 r10: 0000000000000008 r11: 0000000000000246
r12: 00007ffeabb6efe8 r13: 0000000000000161 r14: 00007ffeabb6f950 r15: 00007ffeabb6f948
di: 0000000000000002 si: 00007ffeabb6ed50 bp: 00007ffeabb6ef90 bx: 0000000000000006
dx: 0000000000000000 ax: 0000000000000000 cx: 00007fecb5034fff sp: 00007ffeabb6edc8
ip: 00007fecb5034fff efl: 0000000000000246 cgf: 002b000000000033 erf: 0000000000000000
trp: 0000000000000000 msk: 0000000000000000 cr2: 0000000000000000
[end of stack trace]
Calling _exit(1). Core file will not be generated.
Si je la lance en root :
[0210/092723.550580:ERROR:zygote_host_impl_linux.cc(89)] Running as root without --no-sandbox is not supported. See https://crbug.com/638180.
Nous avons déjà rencontré ce type de problème avec Docker. Le serveur est-il lancé dans un container ? Sinon, peux-tu nous donner des détails sur la machine ?
Le paramètre --no-sandbox devrait être accepté si tu lances chromium avec l’utilisateur tomcat :
PS accepte une variable d’environnement PS_NO_CHROMIUM_SANDBOX pour lancer chromium de cette manière sudo -u tomcat8 PS_NO_CHROMIUM_SANDBOX="true" /opt/postscriptum/bin/postscriptum https://css4.pub/2018/toc/index.html -o /tmp/test.pdf
La VM est une Debian 9.x avec install SC42 par paquet deb (dépot scenari) donc sans utiliser docker
Au lancement de la commande sudo -u tomcat8 /opt/postscriptum/chromium/chrome --headless --remote-debugging-port=9222 --no-sandbox
J’ai le message suivant :
Fontconfig warning: "/etc/fonts/fonts.conf", line 100: unknown element "blank"
Home directory not accessible: Permission non accordée
DevTools listening on ws://127.0.0.1:9222/devtools/browser/adf21a19-d06e-4be7-9f18-71b64e792907
[0210/100829.522777:WARNING:ipc_message_attachment_set.cc(49)] MessageAttachmentSet destroyed with unconsumed attachments: 0/1
[0210/100829.521569:WARNING:ipc_message_attachment_set.cc(49)] MessageAttachmentSet destroyed with unconsumed attachments: 0/1
[0210/100829.521586:ERROR:command_buffer_proxy_impl.cc(125)] ContextResult::kTransientFailure: Failed to send GpuChannelMsg_CreateCommandBuffer.
Postscriptum devrait fonctionner ensuite.
Nous avons complété la documentation d’installation et je vais essayer de produire un message d’erreur plus pertinent.
Je viens de lancer la commande et effectivement ça fonctionne. Même si je n’ai pas tout pigé à tout ça, il semble que niveau sécurité ce paramétrage assez moyen. Je me trompe ?
Merci Xavier pour tes investigations.
Heu ! petit point d’infrmation qui pourrait peut-être être utile. L’accès via HTTPS sur la VM se fait via un reverse proxy qui se trouve dans l’infra de mon université et pas directement sur le serveur lui même. Est-ce qu’il ne peut pas y avoir un souci d’ouverture de port ?
Le fait de pouvoir désactiver cette fonctionnalité est en effet une spécificité de Debian : ce patch a été refusé par le kernel Linux. Il faut donc relativiser le risque au niveau sécurité : cette fonctionnalité, dont le but est justement d’améliorer la sécurité pour des applications tel que Chrome, est active et non désactivable sur les distributions non Debian.
Bonjour
J’ai une collègue qui travaille sur Mac et qui a aussi un souci pour générer un PDF avec Postscriptum
Elle a bien installé le darwin comme j’ai vu dans un message du forum. Mais à la génération il semble qu’Opale ne trouve pas le chemin pour l’application.
Dans un autre poste, on parle du dossier /opt/ mais il n’existe pas sur Mac.
Merci de nous dire ce qu’il faut faire pour indiquer le bon chemin de postscriptum à Opale.
Environnement de travail : scenari 4.2 + Opale 3.7 sous MacOS
Merci pour votre réactivité
Atika
Voici le message d’erreur.
— User details —
Générateur: gen_printPs - Publication PDF (Postscriptum)
Non, quand je fais, dans le Finder, Menu « Aller > Au dossier… » puis taper /opt, j’ai comme réponse « Dossier introuvable ».
Désolée,’
N’ayant pas de mac pour tester, pourriez vous me dire quel chemin fournir à opale pour retrouver postscriptum ou alors où déposer l’application pour que opale la retrouve ?
Merci d’avance
Sur Pc aucun problème.
Atika
Bonjour
Merci Sam pour ta réponse mais ma collègue qui travailler sur Mac ne parvient toujours pas à générer avec Postscriptum
Voici son message
« Non, pas moyen de trouver le dossier /opt ! Je ne suis pas sûre qu’il existe vraiment sur MacOS Mojave (version 10.14.6). »
SI quelqu’un sur Mac a réussi, serait-il possible de m’indiquer la procédure pour indiquer le chemin de l’application à Opale3.7
Merci d’avance
Atika
Bonjour,
Le packaging de Postscriptum sous mac est encore succinct, il faut absolument que Postscriptum soit dans le dossier /opt/postscriptum.
Si /opt n’existe pas il faut le créer dans l’application Terminal avec la commande : sudo mkdir /opt
puis en entrant votre mot de passe quand demandé.
Une fois créé vous pouvez ouvrir le dossier avec Finder avec le « Aller > Au dossier… »
Bonjour Atika,
pou info, j’ai bien cette configuration et cela fonctionne. Demande aussi à ta collègue si elle affiche les fichiers et dossiers cachés, car c’est le cas du dossier opt.
A bientôt,
Katia
Merci Katia,
Je vais lui demander de bien chercher. Sam avait aussi indiqué que c’est dans les fichiers cachés.
Merci pour vos réactivités sans faille
Atika
Merci à Sam et à Katia, problème résolu. Voici la réaction de ma collègue :
« Excellente nouvelle ! Tout fonctionne ! J’ai créé le dossier /opt comme indiqué dans ton message ci-dessous, puis y ait déposé le dossier postcriptum… et il n’y a plus aucun problème. »
Bravo aux développeurs
Atika