Bug 22849 - После обновления до 0.15.0-alt0.1.svn4196 перестаёт работать deluge
Summary: После обновления до 0.15.0-alt0.1.svn4196 перестаёт работать deluge
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: deluge (show other bugs)
Version: unstable
Hardware: all Linux
: P3 major
Assignee: Vladimir D. Seleznev
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-01-28 16:59 MSK by Eugene Vlasov
Modified: 2010-01-29 18:29 MSK (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Eugene Vlasov 2010-01-28 16:59:21 MSK
После последнего dist-upgrade до текущего Sisyphus перестал работать deluge - не может инициализировать core, ни в классическом режиме, ни при запуске с отдельным демоном. При запуске deluge из xterm выдаёт на консоль следующее:

Traceback (most recent call last):
  File "/usr/lib/python2.6/site-packages/twisted/internet/base.py", line 374, in fireEvent
    DeferredList(beforeResults).addCallback(self._continueFiring)
  File "/usr/lib/python2.6/site-packages/twisted/internet/defer.py", line 195, in addCallback
    callbackKeywords=kw)
  File "/usr/lib/python2.6/site-packages/twisted/internet/defer.py", line 186, in addCallbacks
    self._runCallbacks()
  File "/usr/lib/python2.6/site-packages/twisted/internet/defer.py", line 328, in _runCallbacks
    self.result = callback(self.result, *args, **kw)
--- <exception caught here> ---
  File "/usr/lib/python2.6/site-packages/twisted/internet/base.py", line 387, in _continueFiring
    callable(*args, **kwargs)
  File "/usr/lib/python2.6/site-packages/deluge/ui/gtkui/gtkui.py", line 299, in _on_reactor_start
    component.start()
  File "/usr/lib/python2.6/site-packages/deluge/component.py", line 210, in start
    _ComponentRegistry.start()
  File "/usr/lib/python2.6/site-packages/deluge/component.py", line 118, in start
    self.start_component(component)
  File "/usr/lib/python2.6/site-packages/deluge/component.py", line 125, in start_component
    self.start_component(depend)
  File "/usr/lib/python2.6/site-packages/deluge/component.py", line 131, in start_component
    self.components[name].start()
  File "/usr/lib/python2.6/site-packages/deluge/core/torrentmanager.py", line 203, in start
    self.load_state()
  File "/usr/lib/python2.6/site-packages/deluge/core/torrentmanager.py", line 585, in load_state
    resume_data=resume_data.get(torrent_state.torrent_id))
  File "/usr/lib/python2.6/site-packages/deluge/core/torrentmanager.py", line 440, in add
    torrent = Torrent(handle, options, state, filename, magnet)
  File "/usr/lib/python2.6/site-packages/deluge/core/torrent.py", line 132, in __init__
    self.set_trackers(state.trackers)
  File "/usr/lib/python2.6/site-packages/deluge/core/torrent.py", line 309, in set_trackers
    self.handle.replace_trackers(trackers)
exceptions.TypeError: No registered converter was able to extract a C++ reference to type libtorrent::announce_entry from this Python object of type dict

$ rpm -qa | grep libtorrent-rasterbar  
libtorrent-rasterbar0.15-0.15.0-alt0.1.svn4196
libtorrent-rasterbar0.14-0.14.6-alt1
python-module-libtorrent-rasterbar-0.15.0-alt0.1.svn4196

$ rpm -q deluge                                         
deluge-1.2.0-alt2

Пересборка deluge с новой libtorrent-rasterbar не помогает.
При downgrade libtorrent-rasterbar0.15 и python-module-libtorrent-rasterbar до версии 0.15.0-alt0.1.svn4022.1 работоспособность deluge восстанавливается.
Comment 1 swi 2010-01-28 18:22:06 MSK
А что в апстриме делюги про версии libtorrent-rasterbar0.15 говорят?
Понижать то врядли получится.. если только собрать compat какой
Comment 2 Vladimir Lettiev 2010-01-29 10:55:17 MSK
Апстрим deluge для сборки предпочитает использовать стабильный бранч RC_0_14 (это в случае если в с системе во время сборки нет питоньих байндингов к libtorrent). Но в коде присутствуют проверки на минорную версию библиотеки как правило такого вида:
   if lt.version_minor < 15:
Т.о. поддерживаются и 15 версия и 14.

Покопавшись в изменениях libtorrent увидел вот такой коммит: http://git.altlinux.org/people/swi/packages/?p=libtorrent-rasterbar.git;a=commitdiff;h=edd799592782fa6ce186fd1d41e18b0b5eefa6b3

В комментарии говорится "reverted bad python binding change". Судя по всему тут по какой-то причине произошёл откат процедуры replace_trackers() до того состояния, в котором она была в версии 14.

В коде deluge есть обёртка проверяющая какая версия библиотеки и в соответствии с этим меняется вызов replace_trackers(). Поскольку произошёл откат этой процедуры до состояния, в котором она была в версии 14, то эта обёртка приводит к ошибке.

Я уберу в deluge эту проверку для данной процедуры и попробую повесить баг в апстрим.
Comment 3 Repository Robot 2010-01-29 18:29:18 MSK
deluge-1.2.0-alt3 -> sisyphus:

* Fri Jan 29 2010 Vladimir Lettiev <crux@altlinux> 1.2.0-alt3

- Fixed deluged failure with new libtorrent-rasterbar0.15 (Closes: #22849)