#3298: importing state of torrents from older deluge to newer deluge fails
----------------------------+-------------------
 Reporter:  human           |       Type:  bug
   Status:  new             |   Priority:  minor
Milestone:  needs verified  |  Component:  Core
  Version:  2.0.3           |   Keywords:
----------------------------+-------------------
 On migrating from the earlier 1.3.15* to 2.0.3 a problem crops up which is
 probably caused by non-English letters in torrent names

 log output exert

 {{{
 19:53:11 [INFO    ][deluge.core.torrentmanager        :806 ] Loading
 torrent state:
 /home/userWhateverthehell/.config/deluge/state/torrents.state
 19:53:11 [ERROR   ][deluge.component                  :132 ] [Failure
 instance: Traceback: <class 'UnicodeDecodeError'>: 'ascii' codec can't
 decode byte 0xe5 in position 12: ordinal not in range(128)
 /usr/lib/python3.7/site-
 packages/twisted/internet/_glibbase.py:333:_simulate
 /usr/lib/python3.7/site-
 packages/twisted/internet/base.py:902:runUntilCurrent
 /usr/lib/python3.7/site-packages/twisted/internet/defer.py:460:callback
 /usr/lib/python3.7/site-
 packages/twisted/internet/defer.py:568:_startRunCallbacks
 --- <exception caught here> ---
 /usr/lib/python3.7/site-
 packages/twisted/internet/defer.py:654:_runCallbacks
 /usr/lib/python3.7/site-packages/twisted/internet/task.py:865:<lambda>
 /usr/lib/python3.7/site-packages/deluge/core/torrentmanager.py:239:start
 /usr/lib/python3.7/site-
 packages/deluge/core/torrentmanager.py:832:load_state
 /usr/lib/python3.7/site-
 packages/deluge/core/torrentmanager.py:812:open_state
 ]
 19:53:11 [CRITICAL][twisted                           :154 ] Unhandled
 error in Deferred:
 19:53:11 [CRITICAL][twisted                           :154 ] Unhandled
 error in Deferred:
 19:53:11 [CRITICAL][deluge.log                        :93  ]
 twisted.internet.defer
 [Failure instance: Traceback: <class 'UnicodeDecodeError'>: 'ascii' codec
 can't decode byte 0xe5 in position 12: ordinal not in range(128)
 /usr/lib/python3.7/site-
 packages/twisted/internet/_glibbase.py:333:_simulate
 /usr/lib/python3.7/site-
 packages/twisted/internet/base.py:902:runUntilCurrent
 /usr/lib/python3.7/site-packages/twisted/internet/defer.py:460:callback
 /usr/lib/python3.7/site-
 packages/twisted/internet/defer.py:568:_startRunCallbacks
 --- <exception caught here> ---
 /usr/lib/python3.7/site-
 packages/twisted/internet/defer.py:654:_runCallbacks
 /usr/lib/python3.7/site-packages/twisted/internet/task.py:865:<lambda>
 /usr/lib/python3.7/site-packages/deluge/core/torrentmanager.py:239:start
 /usr/lib/python3.7/site-
 packages/deluge/core/torrentmanager.py:832:load_state
 /usr/lib/python3.7/site-
 packages/deluge/core/torrentmanager.py:812:open_state
 ]
 }}}

 seems to be caused by pickle.load having  encoding="ASCII" as default

 [https://docs.python.org/3/library/pickle.html#pickle.load]




 ----


 /usr/lib/python3.7/site-packages/deluge/core/torrentmanager.py:812

 {{{
                     state = pickle.load(_file)
 }}}

 should be changed something like the below (although the encoding probably
 need to be something else to cover all cases)

 {{{
 state = pickle.load(_file, encoding="utf-8")
 }}}

 then importing to 2.0.3 works  just fine

--
Ticket URL: <https://dev.deluge-torrent.org/ticket/3298>
Deluge <https://deluge-torrent.org/>
Deluge Project

-- 
You received this message because you are subscribed to the Google Groups 
"Deluge Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/deluge-dev/044.d213b0e595bd38257d49fdb0a4f4c345%40deluge-torrent.org.

Reply via email to