Bug 989538 - [abrt] calibre-0.9.34-1.fc19: input.py:251:filter_load:AttributeError: Extract instance has no attribute '_walknode'
Summary: [abrt] calibre-0.9.34-1.fc19: input.py:251:filter_load:AttributeError: Extrac...
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: calibre
Version: 19
Hardware: x86_64
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Kevin Fenzi
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard: abrt_hash:1f8fe6a2ba24dde39c1b6f5b2bf...
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2013-07-29 13:32 UTC by Bernd Gloss
Modified: 2014-05-03 19:54 UTC (History)
10 users (show)

Fixed In Version: odfpy-0.9.6-1.fc19
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2014-05-03 19:53:54 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)
File: backtrace (1.48 KB, text/plain)
2013-07-29 13:32 UTC, Bernd Gloss
no flags Details
File: core_backtrace (979 bytes, text/plain)
2013-07-29 13:32 UTC, Bernd Gloss
no flags Details
File: environ (2.25 KB, text/plain)
2013-07-29 13:32 UTC, Bernd Gloss
no flags Details

Description Bernd Gloss 2013-07-29 13:32:22 UTC
Description of problem:
This error is simple to reproduce.

(1) create a simple odt file using LibreOffice from F19 (4.1.0.3)
(2) Open calibre
(3) Add books - simple.od
(4) click to convert, convert it to ePub (or any other format)
-> the error occurs

Version-Release number of selected component:
calibre-0.9.34-1.fc19

Additional info:
reporter:       libreport-2.1.5
cmdline:        python2 /usr/bin/calibre-parallel
executable:     /usr/bin/calibre-parallel
kernel:         3.10.3-300.fc19.x86_64
runlevel:       N 5
uid:            1056

Truncated backtrace:
input.py:251:filter_load:AttributeError: Extract instance has no attribute '_walknode'

Traceback (most recent call last):
  File "/usr/bin/calibre-parallel", line 20, in <module>
    sys.exit(main())
  File "/usr/lib64/calibre/calibre/utils/ipc/worker.py", line 188, in main
    result = func(*args, **kwargs)
  File "/usr/lib64/calibre/calibre/gui2/convert/gui_conversion.py", line 31, in gui_convert_override
    override_input_metadata=True)
  File "/usr/lib64/calibre/calibre/gui2/convert/gui_conversion.py", line 25, in gui_convert
    plumber.run()
  File "/usr/lib64/calibre/calibre/ebooks/conversion/plumber.py", line 1010, in run
    accelerators, tdir)
  File "/usr/lib64/calibre/calibre/customize/conversion.py", line 239, in __call__
    log, accelerators)
  File "/usr/lib64/calibre/calibre/ebooks/conversion/plugins/odt_input.py", line 23, in convert
    return Extract()(stream, '.', log)
  File "/usr/lib64/calibre/calibre/ebooks/odt/input.py", line 268, in __call__
    self.filter_load(stream, mi, log)
  File "/usr/lib64/calibre/calibre/ebooks/odt/input.py", line 251, in filter_load
    self._walknode(self.document.topnode)
AttributeError: Extract instance has no attribute '_walknode'

Local variables in innermost frame:
odffile: <open file u'/tmp/calibre_0.9.34_tmp_lGpF0V/FsgKpX.odt', mode 'rb' at 0x30fc150>
self: <calibre.ebooks.odt.input.Extract instance at 0x3189ea8>
mi: <calibre.ebooks.metadata.book.base.Metadata object at 0x3493890>
log: <calibre.utils.logging.Log object at 0x2d91110>

Comment 1 Bernd Gloss 2013-07-29 13:32:27 UTC
Created attachment 779892 [details]
File: backtrace

Comment 2 Bernd Gloss 2013-07-29 13:32:31 UTC
Created attachment 779893 [details]
File: core_backtrace

Comment 3 Bernd Gloss 2013-07-29 13:32:38 UTC
Created attachment 779894 [details]
File: environ

Comment 4 Kevin Fenzi 2013-08-02 21:40:12 UTC
Can you see if the problem persists with the 0.9.42 version from my side repo? 

su
cd /etc/yum.repos.d/
wget http://repos.fedorapeople.org/repos/kevin/calibre/fedora-calibre.repo
yum clean all
yum update calibre

Comment 5 Bernd Gloss 2013-08-03 06:52:46 UTC
in a first test: no difference

will check it next with a fresh installation of my configuration in a virtual machine.

Comment 6 Bernd Gloss 2013-08-03 08:00:43 UTC
okay... tested it with your side repository a second time in a fresh F19 installation (KDE) ... same error occurs.

Then, I removed calibre in this machine and installed one from the original project page http://calibre-ebook.com/download_linux. There, the conversion was successful.

Comment 7 Kevin Fenzi 2013-08-04 17:54:19 UTC
ok. I will try and track this down, thanks for the info...

Comment 8 Samuel Sieb 2013-11-04 06:40:02 UTC
Description of problem:
Trying to convert any odt file gets this error.

Version-Release number of selected component:
calibre-1.7.0-1.fc19

Additional info:
reporter:       libreport-2.1.9
cmdline:        python2 /usr/bin/calibre-parallel
executable:     /usr/bin/calibre-parallel
kernel:         3.11.6-200.fc19.x86_64
runlevel:       N 5
type:           Python
uid:            1000

Truncated backtrace:
input.py:251:filter_load:AttributeError: Extract instance has no attribute '_walknode'

Traceback (most recent call last):
  File "/usr/bin/calibre-parallel", line 20, in <module>
    sys.exit(main())
  File "/usr/lib64/calibre/calibre/utils/ipc/worker.py", line 188, in main
    result = func(*args, **kwargs)
  File "/usr/lib64/calibre/calibre/gui2/convert/gui_conversion.py", line 31, in gui_convert_override
    override_input_metadata=True)
  File "/usr/lib64/calibre/calibre/gui2/convert/gui_conversion.py", line 25, in gui_convert
    plumber.run()
  File "/usr/lib64/calibre/calibre/ebooks/conversion/plumber.py", line 1035, in run
    accelerators, tdir)
  File "/usr/lib64/calibre/calibre/customize/conversion.py", line 241, in __call__
    log, accelerators)
  File "/usr/lib64/calibre/calibre/ebooks/conversion/plugins/odt_input.py", line 23, in convert
    return Extract()(stream, '.', log)
  File "/usr/lib64/calibre/calibre/ebooks/odt/input.py", line 268, in __call__
    self.filter_load(stream, mi, log)
  File "/usr/lib64/calibre/calibre/ebooks/odt/input.py", line 251, in filter_load
    self._walknode(self.document.topnode)
AttributeError: Extract instance has no attribute '_walknode'

Local variables in innermost frame:
odffile: <open file u'/tmp/calibre_1.7.0_tmp_NaQihY/v6fem4.odt', mode 'rb' at 0x1fd1810>
self: <calibre.ebooks.odt.input.Extract instance at 0x1ffb6c8>
mi: <calibre.ebooks.metadata.book.base.Metadata object at 0x2378290>
log: <calibre.utils.logging.Log object at 0x1c9fad0>

Comment 9 Jacek Wielemborek 2013-11-04 10:22:08 UTC
Description of problem:
was trying to convert an odt file generated by google docs, with user comments inside.

Version-Release number of selected component:
calibre-0.9.42-1.fc19

Additional info:
reporter:       libreport-2.1.7
cmdline:        python2 /usr/bin/calibre-parallel
executable:     /usr/bin/calibre-parallel
kernel:         3.9.6-200.fc18.x86_64
runlevel:       N 5
type:           Python
uid:            1000

Truncated backtrace:
input.py:251:filter_load:AttributeError: Extract instance has no attribute '_walknode'

Traceback (most recent call last):
  File "/usr/bin/calibre-parallel", line 20, in <module>
    sys.exit(main())
  File "/usr/lib64/calibre/calibre/utils/ipc/worker.py", line 188, in main
    result = func(*args, **kwargs)
  File "/usr/lib64/calibre/calibre/gui2/convert/gui_conversion.py", line 31, in gui_convert_override
    override_input_metadata=True)
  File "/usr/lib64/calibre/calibre/gui2/convert/gui_conversion.py", line 25, in gui_convert
    plumber.run()
  File "/usr/lib64/calibre/calibre/ebooks/conversion/plumber.py", line 1023, in run
    accelerators, tdir)
  File "/usr/lib64/calibre/calibre/customize/conversion.py", line 241, in __call__
    log, accelerators)
  File "/usr/lib64/calibre/calibre/ebooks/conversion/plugins/odt_input.py", line 23, in convert
    return Extract()(stream, '.', log)
  File "/usr/lib64/calibre/calibre/ebooks/odt/input.py", line 268, in __call__
    self.filter_load(stream, mi, log)
  File "/usr/lib64/calibre/calibre/ebooks/odt/input.py", line 251, in filter_load
    self._walknode(self.document.topnode)
AttributeError: Extract instance has no attribute '_walknode'

Local variables in innermost frame:
odffile: <open file u'/tmp/calibre_0.9.42_tmp_4zLLAC/EdIm5h.odt', mode 'rb' at 0x1db7810>
self: <calibre.ebooks.odt.input.Extract instance at 0x1e26128>
mi: <calibre.ebooks.metadata.book.base.Metadata object at 0x2155ad0>
log: <calibre.utils.logging.Log object at 0x1a95250>

Comment 10 Samuel Sieb 2013-11-08 18:06:05 UTC
I recompiled the latest version for F19 and it still has the same problem.  What's happening is that the ODT converter is using an internal function call from pyodf that has been removed.  So the converter needs to be fixed.

Comment 11 Doncho Gunchev 2013-11-11 14:16:37 UTC
Looks like this is the upstream report: https://bugs.launchpad.net/calibre/+bug/1154780 , but "I do not provide support for people using distro provided packages." :-)

Comment 12 Doncho Gunchev 2013-11-11 15:33:14 UTC
The latest upstream binary distribution 1.10.0 works, but recompiling locally does not. After having some debug fun it turns out it requires odfpy 0.9.6 or something like that, Fedora ships 0.9.2, which does not work (no _walk* method in odf2xhtml.py). I recompiled locally calibre 1.10.0 and odfpy 0.9.6 and it works fine.

In short: odfpy-0.9.6 is the fix.

Comment 13 Kevin Fenzi 2013-11-11 16:10:30 UTC
Excellent detective work Doncho. ;) 

I'm adding the odfpy maintainer to cc here for comment. Hopefully they can do an update or are willing to let me do one.

Comment 14 Richard Schwarting 2014-04-21 19:02:46 UTC
Months later, calibre in Fedora 20 still fails to convert to epub due to this.

Comment 15 Fedora Update System 2014-04-25 14:35:26 UTC
odfpy-0.9.6-1.fc20 has been submitted as an update for Fedora 20.
https://admin.fedoraproject.org/updates/odfpy-0.9.6-1.fc20

Comment 16 Fedora Update System 2014-04-25 14:35:54 UTC
odfpy-0.9.6-1.fc19 has been submitted as an update for Fedora 19.
https://admin.fedoraproject.org/updates/odfpy-0.9.6-1.fc19

Comment 17 Fedora Update System 2014-04-26 09:14:17 UTC
Package odfpy-0.9.6-1.fc20:
* should fix your issue,
* was pushed to the Fedora 20 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=updates-testing odfpy-0.9.6-1.fc20'
as soon as you are able to.
Please go to the following url:
https://admin.fedoraproject.org/updates/FEDORA-2014-5598/odfpy-0.9.6-1.fc20
then log in and leave karma (feedback).

Comment 18 Fedora Update System 2014-05-03 19:53:54 UTC
odfpy-0.9.6-1.fc20 has been pushed to the Fedora 20 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 19 Fedora Update System 2014-05-03 19:54:04 UTC
odfpy-0.9.6-1.fc19 has been pushed to the Fedora 19 stable repository.  If problems still persist, please make note of it in this bug report.


Note You need to log in before you can comment on or make changes to this bug.