Page MenuHomePhabricator

Wikisource Export: Export fails: "This font has no glyphs for the specified character set, subsetting it is pointless"
Closed, ResolvedPublic3 Estimated Story PointsBUG REPORT

Description

As a Wikisource user, I want the bug (as described below) that results in export errors to be fixed, so that I can continue to read and access books on Wikisource without issue.

What is the problem?

Exporting some ebooks fails with the error below.

This is currently only happening on https://ws-export-test.wmcloud.org. I notice prod and test have different a list of fonts, if that matters.

Message:  Uncaught PHP Exception Symfony\Component\Process\Exception\ProcessFailedException: "The command "'ebook-convert' '/var/www/tool/var/www-data/ws-c0_Pan_iang-139751013184292.epub' '/var/www/tool/var/www-data/ws-c0_Pan_iang-139751265352313.pdf' '--page-breaks-before' '/' '--paper-size' 'a4' '--pdf-page-margin-bottom' '48' '--pdf-page-margin-top' '60' '--pdf-page-margin-left' '36' '--pdf-page-margin-right' '36' '--pdf-page-numbers' '--preserve-cover-aspect-ratio'" failed.  
    
  Exit Code: 1(General error)  
    
  Working directory: /var/www/tool/public  
    
  Output:  
  ================  
  Conversion options changed from defaults:  
    pdf_page_margin_top: 60.0  
    pdf_page_margin_right: 36.0  
    pdf_page_margin_left: 36.0  
    pdf_page_numbers: True  
    pdf_page_margin_bottom: 48.0  
    preserve_cover_aspect_ratio: True  
    paper_size: 'a4'  
  1% Converting input to HTML...  
  InputFormatPlugin: EPUB Input running  
  on /var/www/tool/var/www-data/ws-c0_Pan_iang-139751013184292.epub  
  Parsing all content...  
  34% Running transforms on e-book...  
  Merging user specified metadata...  
  Detecting structure...  
  Flattening CSS and remapping font sizes...  
  Source base font size is 12.00000pt  
  Removing fake margins...  
  Cleaning up manifest...  
  Trimming unused files from manifest...  
  Trimming 'OPS/toc.ncx' from manifest  
  Trimming 'OPS/nav.xhtml' from manifest  
  Creating PDF Output...  
  67% Running PDF Output plugin  
  68% Parsed all content for markup transformation  
  70% Completed markup transformation  
  90% Rendered all HTML as PDF  
  91% Added links to PDF content  
  93% Adding headers and footers  
  96% Headers and footers added  
  Removed 1 unused fonts  
  Merged 4 instances of FreeSerifBold reducing size from 17.1 KB to 11.6 KB  
    
    
  Error Output:  
  ================  
  QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-www-data'  
  Traceback (most recent call last):  
    File "runpy.py", line 194, in _run_module_as_main  
    File "runpy.py", line 87, in _run_code  
    File "site.py", line 45, in <module>  
    File "site.py", line 41, in main  
    File "calibre/ebooks/conversion/cli.py", line 401, in main  
    File "calibre/ebooks/conversion/plumber.py", line 1274, in run  
    File "calibre/ebooks/conversion/plugins/pdf_output.py", line 188, in convert  
    File "calibre/ebooks/conversion/plugins/pdf_output.py", line 254, in convert_text  
    File "calibre/ebooks/pdf/html_writer.py", line 1087, in convert  
    File "calibre/ebooks/pdf/html_writer.py", line 778, in merge_fonts  
    File "calibre/ebooks/pdf/html_writer.py", line 745, in merge_font_files  
    File "calibre/utils/fonts/sfnt/subset.py", line 102, in pdf_subset  
    File "calibre/utils/fonts/sfnt/subset.py", line 54, in subset_truetype  
  calibre.utils.fonts.sfnt.errors.NoGlyphs: This font has no glyphs for the specified character set, subsetting it is pointless  
  " at /var/www/tool/vendor/symfony/process/Process.php line 262  
Time:  2021-02-12T15:04:15.903332+00:00  
Channel:  request  
Context:   exception:  {    
         "class": "Symfony\\Component\\Process\\Exception\\ProcessFailedException",    
         "message": "The command \"'ebook-convert' '/var/www/tool/var/www-data/ws-c0_Pan_iang-139751013184292.epub' '/var/www/tool/var/www-data/ws-c0_Pan_iang-139751265352313.pdf' '--page-breaks-before' '/' '--paper-size' 'a4' '--pdf-page-margin-bottom' '48' '--pdf-page-margin-top' '60' '--pdf-page-margin-left' '36' '--pdf-page-margin-right' '36' '--pdf-page-numbers' '--preserve-cover-aspect-ratio'\" failed.\n\nExit Code: 1(General error)\n\nWorking directory: /var/www/tool/public\n\nOutput:\n================\nConversion options changed from defaults:\n  pdf_page_margin_top: 60.0\n  pdf_page_margin_right: 36.0\n  pdf_page_margin_left: 36.0\n  pdf_page_numbers: True\n  pdf_page_margin_bottom: 48.0\n  preserve_cover_aspect_ratio: True\n  paper_size: 'a4'\n1% Converting input to HTML...\nInputFormatPlugin: EPUB Input running\non /var/www/tool/var/www-data/ws-c0_Pan_iang-139751013184292.epub\nParsing all content...\n34% Running transforms on e-book...\nMerging user specified metadata...\nDetecting structure...\nFlattening CSS and remapping font sizes...\nSource base font size is 12.00000pt\nRemoving fake margins...\nCleaning up manifest...\nTrimming unused files from manifest...\nTrimming 'OPS/toc.ncx' from manifest\nTrimming 'OPS/nav.xhtml' from manifest\nCreating PDF Output...\n67% Running PDF Output plugin\n68% Parsed all content for markup transformation\n70% Completed markup transformation\n90% Rendered all HTML as PDF\n91% Added links to PDF content\n93% Adding headers and footers\n96% Headers and footers added\nRemoved 1 unused fonts\nMerged 4 instances of FreeSerifBold reducing size from 17.1 KB to 11.6 KB\n\n\nError Output:\n================\nQStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-www-data'\nTraceback (most recent call last):\n  File \"runpy.py\", line 194, in _run_module_as_main\n  File \"runpy.py\", line 87, in _run_code\n  File \"site.py\", line 45, in <module>\n  File \"site.py\", line 41, in main\n  File \"calibre/ebooks/conversion/cli.py\", line 401, in main\n  File \"calibre/ebooks/conversion/plumber.py\", line 1274, in run\n  File \"calibre/ebooks/conversion/plugins/pdf_output.py\", line 188, in convert\n  File \"calibre/ebooks/conversion/plugins/pdf_output.py\", line 254, in convert_text\n  File \"calibre/ebooks/pdf/html_writer.py\", line 1087, in convert\n  File \"calibre/ebooks/pdf/html_writer.py\", line 778, in merge_fonts\n  File \"calibre/ebooks/pdf/html_writer.py\", line 745, in merge_font_files\n  File \"calibre/utils/fonts/sfnt/subset.py\", line 102, in pdf_subset\n  File \"calibre/utils/fonts/sfnt/subset.py\", line 54, in subset_truetype\ncalibre.utils.fonts.sfnt.errors.NoGlyphs: This font has no glyphs for the specified character set, subsetting it is pointless\n",    
         "code": 0,    
         "file": "/var/www/tool/vendor/symfony/process/Process.php:262",    
         "trace": [    
             "/var/www/tool/src/Generator/ConvertGenerator.php:153",    
             "/var/www/tool/src/Generator/ConvertGenerator.php:129",    
             "/var/www/tool/src/BookCreator.php:43",    
             "/var/www/tool/src/Controller/ExportController.php:135",    
             "/var/www/tool/src/Controller/ExportController.php:96",    
             "/var/www/tool/vendor/symfony/http-kernel/HttpKernel.php:157",    
             "/var/www/tool/vendor/symfony/http-kernel/HttpKernel.php:79",    
             "/var/www/tool/vendor/symfony/http-kernel/Kernel.php:196",    
             "/var/www/tool/public/index.php:35"    
         ]    
     }    
Extra:   host:  ws-export-test.wmcloud.org    
   uri:  http://ws-export-test.wmcloud.org/?format=pdf-a4&lang=nan&page=Pan-i%C3%A2ng
Ebooks to reproduce problem
Environment

WS Export: https://ws-export-test.wmcloud.org/ version 2.3.0-2-g6a9f9d8.

Acceptance Criteria
  • Since we suspect this is only found in the version of Calibre on test, change the version on test to match the version on production to see if issue goes away

Event Timeline

ARamirez_WMF set the point value for this task to 3.Feb 19 2021, 12:48 AM
ARamirez_WMF moved this task from Needs Discussion to Up Next (June 3-21) on the Community-Tech board.

@dom_walden I'm unable to reproduce this anymore. I've downgraded Calibre to 4.13.0 anyway 'cause that's what we have in production but those examples in the description are downloading fine now.

We've installed more CJK fonts (for T274997) since this was reported, so that possibly fixed it?

ifried subscribed.

I can no longer reproduce the bugs as described in the ticket. I'm marking this as Done.