PDF export not generated under Ubuntu 20.04

Bug #1906123 reported by Kristina Hoeppner
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Mahara
Triaged
Medium
Unassigned

Bug Description

From https://mahara.org/interaction/forum/topic.php?id=8653 and https://mahara.org/interaction/forum/topic.php?id=8652

 enabled PDF export plugin in my site, System didn't report any errors.

When I export my pages , in "Export your portfolio" page, system stopped at "Please wait while your export is being generated..." and "Copying extra files" for long long time, but system do not report any errros also.

In server "dataroot" directory, "HTML" directory have some generated files ,but "PDF" directory is empty.

If I disabled PDF export plugin in my site, then exporting pages can be finished normally.

dpkg: warning: failed to open configuration file '/root/.dpkg.cfg' for reading: Permission denied
[Tue Jul 14 06:57:29.232825 2020] [php7:notice] [pid 109769] [client 172.18.40.239:60056] [WAR] 7d (lib/errors.php:536) [RuntimeException]: Chrome process stopped before startup completed. Additional info: /usr/bin/chromium-browser: 12: xdg-settings: not found, referer: http://172.18.39.185/export/index.php
[Tue Jul 14 06:57:29.232899 2020] [php7:notice] [pid 109769] [client 172.18.40.239:60056] [WAR] 7d (lib/errors.php:536) cmd_run.go:918: WARNING: cannot create user data directory: cannot create "/usr/sbin/snap/chromium/1213": mkdir /usr/sbin/snap: permission denied, referer: http://172.18.39.185/export/index.php
[Tue Jul 14 06:57:29.232920 2020] [php7:notice] [pid 109769] [client 172.18.40.239:60056] [WAR] 7d (lib/errors.php:536) cannot create user data directory: /usr/sbin/snap/chromium/1213: Permission denied at /apps/mahara/htdocs/lib/chrome-php/headless-chromium-php-master/src/Browser/BrowserProcess.php:379, referer: http://172.18.39.185/export/index.php
[Tue Jul 14 06:57:29.232946 2020] [php7:notice] [pid 109769] [client 172.18.40.239:60056] Call stack (most recent first):, referer: http://172.18.39.185/export/index.php
[Tue Jul 14 06:57:29.232982 2020] [php7:notice] [pid 109769] [client 172.18.40.239:60056] * exception(object(RuntimeException)) at Unknown:0, referer: http://172.18.39.185/export/index.php
[Tue Jul 14 06:57:29.232999 2020] [php7:notice] [pid 109769] [client 172.18.40.239:60056] , referer: http://172.18.39.185/export/index.php

In my Ubuntu Server 20.04, I installed chromium-browser, It was installed as a "snap" package, How to config it fot Mahara system?

This could be related to the new structure where snap wants to save files. First try: install with the '--classic' flag, but that's not a long-term solution.

Tags: export
description: updated
Revision history for this message
Donald Barrett (donaldbarrett) wrote :

Not a direct fix, but I have added some code to use the Server var CHROME_PATH if it is set

Revision history for this message
Donald Barrett (donaldbarrett) wrote :
Revision history for this message
Richard van Iwaarden (richardvi) wrote (last edit ):

We have a problem with this. It's trying to run chromium pdf under system or exec privileges. This is not allowed on our system.

Is there a fix for this?

Revision history for this message
Richard van Iwaarden (richardvi) wrote (last edit ):
Download full text (8.3 KiB)

[01-Nov-2021 11:48:21 Europe/Amsterdam] [WAR] 18 (export/pdf/lib.php:176) system() has been disabled for security reasons
[01-Nov-2021 11:48:21 Europe/Amsterdam] Call stack (most recent first):
[01-Nov-2021 11:48:21 Europe/Amsterdam] * log_message(string(size 47), integer, true, true, string(size 46), integer) at /home/portfolio/public_html/lib/errors.php:515
[01-Nov-2021 11:48:21 Europe/Amsterdam] * error(integer, string(size 47), string(size 46), integer, array(size 5)) at Unknown:0
[01-Nov-2021 11:48:21 Europe/Amsterdam] * system(string(size 15)) at /home/portfolio/public_html/export/pdf/lib.php:176
[01-Nov-2021 11:48:21 Europe/Amsterdam] * PluginExportPdf->pdf_view_export_data() at /home/portfolio/public_html/export/pdf/lib.php:142
[01-Nov-2021 11:48:21 Europe/Amsterdam] * PluginExportPdf->export() at /home/portfolio/public_html/export/lib.php:1047
[01-Nov-2021 11:48:21 Europe/Amsterdam] * PluginExportAll->export() at /home/portfolio/public_html/export/download.php:104
[01-Nov-2021 11:48:21 Europe/Amsterdam]
[01-Nov-2021 11:48:21 Europe/Amsterdam] [WAR] 18 (export/pdf/lib.php:188) Undefined variable: error
[01-Nov-2021 11:48:21 Europe/Amsterdam] Call stack (most recent first):
[01-Nov-2021 11:48:21 Europe/Amsterdam] * log_message(string(size 25), integer, true, true, string(size 46), integer) at /home/portfolio/public_html/lib/errors.php:515
[01-Nov-2021 11:48:21 Europe/Amsterdam] * error(integer, string(size 25), string(size 46), integer, array(size 7)) at /home/portfolio/public_html/export/pdf/lib.php:188
[01-Nov-2021 11:48:21 Europe/Amsterdam] * PluginExportPdf->pdf_view_export_data() at /home/portfolio/public_html/export/pdf/lib.php:142
[01-Nov-2021 11:48:21 Europe/Amsterdam] * PluginExportPdf->export() at /home/portfolio/public_html/export/lib.php:1047
[01-Nov-2021 11:48:21 Europe/Amsterdam] * PluginExportAll->export() at /home/portfolio/public_html/export/download.php:104
[01-Nov-2021 11:48:21 Europe/Amsterdam]
[01-Nov-2021 11:48:21 Europe/Amsterdam] [WAR] 18 (export/pdf/lib.php:188) system() has been disabled for security reasons
[01-Nov-2021 11:48:21 Europe/Amsterdam] Call stack (most recent first):
[01-Nov-2021 11:48:21 Europe/Amsterdam] * log_message(string(size 47), integer, true, true, string(size 46), integer) at /home/portfolio/public_html/lib/errors.php:515
[01-Nov-2021 11:48:21 Europe/Amsterdam] * error(integer, string(size 47), string(size 46), integer, array(size 7)) at Unknown:0
[01-Nov-2021 11:48:21 Europe/Amsterdam] * system(string(size 31), null) at /home/portfolio/public_html/export/pdf/lib.php:188
[01-Nov-2021 11:48:21 Europe/Amsterdam] * PluginExportPdf->pdf_view_export_data() at /home/portfolio/public_html/export/pdf/lib.php:142
[01-Nov-2021 11:48:21 Europe/Amsterdam] * PluginExportPdf->export() at /home/portfolio/public_html/export/lib.php:1047
[01-Nov-2021 11:48:21 Europe/Amsterdam] * PluginExportAll->export() at /home/portfolio/public_html/export/download.php:104
[01-Nov-2021 11:48:21 Europe/Amsterdam]
[01-Nov-2021 11:48:21 Europe/Amsterdam] [WAR] 18 (export/pdf/lib.php:189) Undefined variable: error
[01-Nov-2021 11:48:21 Europe/Amsterdam] Call stack (most recent first):
[01-Nov-2021 11:48:21 Europe/Amsterdam]...

Read more...

Revision history for this message
Robert Lyon (robertl-9) wrote :

There is FPDF / FPDI as that looks like it can build a combined pdf - but it looks like it combines them as images of original rather than what content type they were so things like text wouldn't be select-able etc

Revision history for this message
Donald Barrett (donaldbarrett) wrote :

When running cron, the CHROME_PATH needs to be passed

CHROME_PATH=google-chrome-stable php cron.php

Revision history for this message
Alexander Del Ponte (delponte) wrote :

Here a little dirty hack which we temporarily implemented on our Ubuntu 20.10 LTS system, to make PDF export work.

In file htdocs/export/pdf/lib.php insert following code before line 194 (before command "$browserFactory = new BrowserFactory($browsertype);")

$browsertype = '/snap/chromium/current/usr/lib/chromium-browser/chrome';

See also https://askubuntu.com/questions/1286660/how-to-get-the-snap-based-chromium-to-access-a-separately-mounted-filesystem for more informations.

Cheers
Alex

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.