Skip to content

rtorrent plugin crashed when adding torrent with special utf-8 characters #1692

@xiayyu

Description

@xiayyu

Expected behaviour:

Adding entry to rtorrent without crash

Actual behaviour:

Adding entry to rtorrent but flexget crashed.
As a consequence, all the accepted entry with this run won't write to the database marked seen, and they will be downloaded again and again. However all the accepted torrent will be sent to the rtorrent, but the crash reports are bothersome.

Steps to reproduce:

When an entry with special utf-8 characters in name or path accepted and sent to rtorrent plugin.
Such as the example from the log, "Al final del túnel AKA At the End of the Tunnel 2016 1080p BluRay TrueHD 5.1 x264-PbK", "ú" is a special utf-8 characters.
The details of this torrent

 'info': {'files': [{'length': 14152687941,
                     'path': ['Al.final.del.t\xc3\xbanel.AKA.At.the.End.of.the.Tunnel.2016.1080p.BluRay.TrueHD.5.1.x264-PbK.mkv']},
                    {'length': 1281,
                     'path': ['Al.final.del.t\xc3\xbanel.AKA.At.the.End.of.the.Tunnel.2016.1080p.BluRay.TrueHD.5.1.x264-PbK.nfo']}],
          'name': 'Al.final.del.t\xc3\xbanel.AKA.At.the.End.of.the.Tunnel.2016.1080p.BluRay.TrueHD.5.1.x264-PbK',
          'piece length': 4194304,
          'pieces': '<3375 piece hashes>',
          'private': 1,
          'source': '[www.hdpter.net] HDPter'},

Config:

  hdp:
    rss: **********
    accept_all: yes
    rtorrent:
      uri: scgi://127.0.0.1:5000
      path: /mnt/V3T/_Movies/_HD
      custom1: HD

Log:

2017-02-17 10:37 VERBOSE  task          hdp             REJECTED: `Hacksaw Ridge 2016 1080p BluRay TrueHD Atmos 7.1 x264-PbK` by seen plugin because entry with url `http://www.hdpter.net/download.php?id=10438&passkey=ab0ee1ba02ec1f4cd892219cab827967` is already marked seen in the task hdp at 2017-02-12 22:03
2017-02-17 10:37 VERBOSE  task          hdp             ACCEPTED: `Al final del túnel AKA At the End of the Tunnel 2016 1080p BluRay TrueHD 5.1 x264-PbK` by accept_all plugin
2017-02-17 10:37 INFO     download      hdp             Downloading: Al final del túnel AKA At the End of the Tunnel 2016 1080p BluRay TrueHD 5.1 x264-PbK
2017-02-17 10:37 VERBOSE  details       hdp             Summary - Accepted: 1 (Rejected: 9 Undecided: 0 Failed: 0)
2017-02-17 10:37 CRITICAL task          hdp             BUG: Unhandled error in plugin rtorrent: 'ascii' codec can't decode byte 0xc3 in position 333: ordinal not in range(128)
Traceback (most recent call last):
  File "/home/xiayu/CODE/PYTHON/flexget/lib/python2.7/site-packages/flexget/task.py", line 483, in __run_plugin
    return method(*args, **kwargs)
  File "/home/xiayu/CODE/PYTHON/flexget/lib/python2.7/site-packages/flexget/event.py", line 23, in __call__
    return self.func(*args, **kwargs)
  File "/home/xiayu/CODE/PYTHON/flexget/lib/python2.7/site-packages/flexget/plugins/clients/rtorrent.py", line 531, in on_task_output
    self.add_entry(client, entry, options, start=config['start'], mkdir=config['mkdir'])
  File "/home/xiayu/CODE/PYTHON/flexget/lib/python2.7/site-packages/flexget/plugins/clients/rtorrent.py", line 639, in add_entry
    if client.torrent(entry['torrent_info_hash']):
  File "/home/xiayu/CODE/PYTHON/flexget/lib/python2.7/site-packages/flexget/plugins/clients/rtorrent.py", line 356, in torrent
    resp = multi_call()
  File "/usr/lib64/python2.7/xmlrpclib.py", line 1006, in __call__
    return MultiCallIterator(self.__server.system.multicall(marshalled_list))
  File "/home/xiayu/CODE/PYTHON/flexget/lib/python2.7/site-packages/flexget/plugins/clients/rtorrent.py", line 38, in __call__
    return self.__send(self.__name, args)
  File "/home/xiayu/CODE/PYTHON/flexget/lib/python2.7/site-packages/flexget/plugins/clients/rtorrent.py", line 192, in __request
    verbose=self.__verbose
  File "/home/xiayu/CODE/PYTHON/flexget/lib/python2.7/site-packages/flexget/plugins/clients/rtorrent.py", line 106, in request
    return self.single_request(host, handler, request_body, verbose)
  File "/home/xiayu/CODE/PYTHON/flexget/lib/python2.7/site-packages/flexget/plugins/clients/rtorrent.py", line 134, in single_request
    return self.parse_response(sock.makefile())
  File "/home/xiayu/CODE/PYTHON/flexget/lib/python2.7/site-packages/flexget/plugins/clients/rtorrent.py", line 148, in parse_response
    response_body += data
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 333: ordinal not in range(128)

Additional information:

  • Flexget Version: 2.9.23
  • Python Version: 2.7.13
  • Installation method: virtualenv pip install
  • OS and version: ArchLinux
  • Link to crash log:

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions