Skip to content

Consistent crash when configured series is present in feed #1833

@rollor

Description

@rollor

Expected behaviour:

No crash

Actual behaviour:

Always crashes if a particular series is in rss feed

Steps to reproduce:

flexget execute --verbose --debug --task xstv --now --no-cache --dump eval

This appears to be related to #1789, but the series in question is identified by ep as confirmed by:

$ flexget series show black.mirror
...
Series uses `ep` mode to identify episode numbering (identified_by).
Begin episode for this series set to `S03E01`.

Config:

tasks:
  xstv:
    rss:
      url: file:///tmp/xstv.rss
    series:
      settings:
        tv:
          quality: <=720p hdtv+
      tv:
        - Black Mirror

and the minimal rss file is:

<rss version="2.0"><channel>
<item>
     <title>Black.Mirror.S02E03.1080p.BluRay.x264-FilmHD</title>
     <link>https://www</link>
</item>
</channel></rss>

Log:

2017-05-20 04:48 ERROR    series        xstv            cannot compare None with ep

... 48 duplicate lines removed

2017-05-20 04:48 CRITICAL task          xstv            BUG: Unhandled error in plugin series: maximum recursion depth exceeded while getting the str of an object
Traceback (most recent call last):
File "/tmp/flexget/flexget/task.py", line 483, in __run_plugin
    return method(*args, **kwargs)
File "/tmp/flexget/flexget/event.py", line 23, in __call__
    return self.func(*args, **kwargs)
File "/tmp/flexget/flexget/plugins/filter/series.py", line 1544, in on_task_filter
    self.process_series(task, series_entries, series_config)
File "/tmp/flexget/flexget/plugins/filter/series.py", line 1652, in process_series
    if entity < entity.series.begin:
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/functools.py", line 56, in <lambda>
    '__lt__': [('__gt__', lambda self, other: not (self < other or self == other)),

... 480 duplicate lines removed

File "/tmp/flexget/flexget/plugins/filter/series.py", line 518, in __lt__
    log.error('cannot compare %s with %s', self.identified_by, other.identified_by)
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/logging/__init__.py", line 1193, in error
    self._log(ERROR, msg, args, **kwargs)
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/logging/__init__.py", line 1285, in _log
    record = self.makeRecord(self.name, level, fn, lno, msg, args, exc_info, func, extra)
File "/tmp/flexget/flexget/logger.py", line 121, in makeRecord
    return logging.Logger.makeRecord(self, name, level, fn, lno, msg, args, exc_info, func, extra, *exargs)
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/logging/__init__.py", line 1259, in makeRecord
    rv = LogRecord(name, level, fn, lno, msg, args, exc_info, func)
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/logging/__init__.py", line 267, in __init__
    self.levelname = getLevelName(level)
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/logging/__init__.py", line 162, in getLevelName
    return _levelNames.get(level, ("Level %s" % level))
RuntimeError: maximum recursion depth exceeded while getting the str of an object

Additional information:

  • FlexGet version: 2.10.48
  • Python version: 2.7.13
  • Installation method: git master
  • Using daemon (yes/no): no
  • OS and version: OSX 10.11.6

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