Conversion from specific LRF books gives "RuntimeError: maximum recursion depth exceeded"

Bug #746043 reported by DaveO
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
calibre
Fix Released
Undecided
Unassigned

Bug Description

* The calibre version (get this by looking at the bottom of the main calibre screen)

calibre, version 0.7.52

* The operating system you are running calibre on (Windows, OS X, Linux)

Vista

* If you are reporting a conversion problem, attach the input file and the output file and describe exactly what the problem is.

Conversion of LRF, in two found instances, gives the following stack:

calibre, version 0.7.52
Resolved conversion options
calibre version: 0.7.52
{'asciiize': False,
 'author_sort': None,
 'authors': None,
 'base_font_size': 0.0,
 'book_producer': None,
 'change_justification': u'original',
 'chapter': u"//*[((name()='h1' or name()='h2') and re:test(., 'chapter|book|section|part|prologue|epilogue\\s+', 'i')) or @class = 'chapter']",
 'chapter_mark': u'pagebreak',
 'comments': None,
 'cover': None,
 'debug_pipeline': None,
 'dehyphenate': True,
 'delete_blank_paragraphs': True,
 'disable_font_rescaling': False,
 'dont_compress': False,
 'enable_heuristics': False,
 'extra_css': None,
 'fix_indents': True,
 'font_size_mapping': None,
 'format_scene_breaks': True,
 'html_unwrap_factor': 0.4,
 'input_encoding': None,
 'input_profile': <calibre.customize.profiles.InputProfile object at 0x05A3F610>,
 'insert_blank_line': False,
 'insert_metadata': False,
 'isbn': None,
 'italicize_common_cases': True,
 'keep_ligatures': False,
 'language': None,
 'level1_toc': None,
 'level2_toc': None,
 'level3_toc': None,
 'line_height': 0.0,
 'linearize_tables': False,
 'margin_bottom': 5.0,
 'margin_left': 5.0,
 'margin_right': 5.0,
 'margin_top': 5.0,
 'markup_chapter_headings': True,
 'max_toc_links': 50,
 'minimum_line_height': 120.0,
 'mobi_ignore_margins': False,
 'no_chapters_in_toc': False,
 'no_inline_navbars': True,
 'no_inline_toc': False,
 'output_profile': <calibre.customize.profiles.KindleOutput object at 0x05A3F930>,
 'page_breaks_before': u"//*[name()='h1' or name()='h2']",
 'personal_doc': u'[PDOC]',
 'prefer_author_sort': False,
 'prefer_metadata_cover': False,
 'pretty_print': False,
 'pubdate': None,
 'publisher': None,
 'rating': None,
 'read_metadata_from_opf': 'c:\\users\\dave\\appdata\\local\\temp\\calibre_0.7.52_tmp_btws5a\\calibre_0.7.52_molxv8.opf',
 'remove_fake_margins': True,
 'remove_first_image': False,
 'remove_paragraph_spacing': False,
 'remove_paragraph_spacing_indent_size': 1.5,
 'renumber_headings': True,
 'replace_scene_breaks': u'',
 'rescale_images': False,
 'series': None,
 'series_index': None,
 'smarten_punctuation': False,
 'sr1_replace': None,
 'sr1_search': None,
 'sr2_replace': None,
 'sr2_search': None,
 'sr3_replace': None,
 'sr3_search': None,
 'tags': None,
 'timestamp': None,
 'title': None,
 'title_sort': None,
 'toc_filter': None,
 'toc_threshold': 6,
 'toc_title': None,
 'unwrap_lines': True,
 'use_auto_toc': False,
 'verbose': 2}
InputFormatPlugin: LRF Input running
on C:\Users\Dave\Calibre Library\George Macdonald Fraser\Flashman 02 - Royal Flash (991)\Flashman 02 - Royal Flash - George Macdonald Fraser.lrf
Generating XML
Converting XML to HTML...
Python function terminated unexpectedly
  maximum recursion depth exceeded (Error Code: 1)
Traceback (most recent call last):
  File "site.py", line 103, in main
  File "site.py", line 85, in run_entry_point
  File "site-packages\calibre\utils\ipc\worker.py", line 110, in main
  File "site-packages\calibre\gui2\convert\gui_conversion.py", line 31, in gui_convert_override
  File "site-packages\calibre\gui2\convert\gui_conversion.py", line 25, in gui_convert
  File "site-packages\calibre\ebooks\conversion\plumber.py", line 915, in run
  File "site-packages\calibre\customize\conversion.py", line 204, in __call__
  File "site-packages\calibre\ebooks\lrf\input.py", line 416, in convert
  File "xslt.pxi", line 542, in lxml.etree.XSLT.__call__ (src/lxml/lxml.etree.c:109860)
  File "lxml.etree.pyx", line 230, in lxml.etree._ExceptionContext._raise_if_stored (src/lxml/lxml.etree.c:6821)
  File "xsltext.pxi", line 120, in lxml.etree._callExtensionElement (src/lxml/lxml.etree.c:113949)
  File "site-packages\calibre\ebooks\lrf\input.py", line 132, in execute
  File "site-packages\calibre\ebooks\lrf\input.py", line 153, in render_block
  File "site-packages\calibre\ebooks\lrf\input.py", line 193, in process_child
  File "site-packages\calibre\ebooks\lrf\input.py", line 172, in process_container

[[ Above 2 Line 193 & 172 errors repeated about 1000 times ]]

  File "site-packages\calibre\ebooks\lrf\input.py", line 163, in process_container
RuntimeError: maximum recursion depth exceeded

LRF files attached.

Related branches

Revision history for this message
Kovid Goyal (kovid) wrote : Fixed in lp:calibre

Fixed in branch lp:calibre. The fix will be in the next release. calibre is usually released every Friday.

 status fixreleased

Changed in calibre:
status: New → Fix Released
Revision history for this message
Kovid Goyal (kovid) wrote :

Note that although the next release of calibre will convert the LRF, you will likely find a lot of content missing from the result of the conversion. This is because of the internal structure of those LRF files, which is particularly messy. I'm afraid there is no solution to that, you will simply have to find those two books in another format.

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.