Flexget / Flexget

The official FlexGet repository
http://www.flexget.com
MIT License
1.73k stars 471 forks source link

Error after upgrading from 2.10.43 to 2.10.107 #2154

Closed jmceara closed 5 years ago

jmceara commented 6 years ago

After upgrading from version 2.10.43 to 2.10.107, i'm getting error in decoder.py. After searching here in issue, I'm trying to reset simple_persistence plugin database, but without success.

[root@skynet .flexget]# flexget -L debug check
2018-06-13 15:52 DEBUG    manager                       Figuring out config load paths
2018-06-13 15:52 DEBUG    manager                       Found config: /home/jmaurin/.flexget/config.yml
2018-06-13 15:52 DEBUG    manager                       Config file /home/jmaurin/.flexget/config.yml selected
2018-06-13 15:52 DEBUG    manager                       sys.defaultencoding: ascii
2018-06-13 15:52 DEBUG    manager                       sys.getfilesystemencoding: UTF-8
2018-06-13 15:52 DEBUG    manager                       flexget detected io encoding: utf-8
2018-06-13 15:52 DEBUG    manager                       os.path.supports_unicode_filenames: False
2018-06-13 15:52 DEBUG    plugin                        Trying to load plugins from: [u'/home/jmaurin/.flexget/plugins', '/usr/lib64/python2.7/site-packages/flexget/plugins']
2018-06-13 15:52 DEBUG    plugin                        (u'Plugin `%s` requires `%s` to load.', u'memusage', u'ext lib `guppy`')
2018-06-13 15:52 DEBUG    plugin                        Plugins took 3.65 seconds to load. 290 plugins in registry.
2018-06-13 15:52 DEBUG    manager                       Connecting to: sqlite:////home/jmaurin/.flexget/db-config.sqlite
2018-06-13 15:52 WARNING  check                         Config line 65 is likely missing ':' at the end
2018-06-13 15:52 VERBOSE  check                         Pre-checked 67 configuration lines
2018-06-13 15:52 DEBUG    manager                       config_name: config
2018-06-13 15:52 DEBUG    manager                       config_base: /home/jmaurin/.flexget
2018-06-13 15:52 DEBUG    manager                       New config data loaded.
2018-06-13 15:52 DEBUG    schema                        current flexget version already exist in db 2.13.21
2018-06-13 15:52 DEBUG    manager                       Removed /home/jmaurin/.flexget/.config-lock
Traceback (most recent call last):
  File "/usr/bin/flexget", line 11, in <module>
    sys.exit(main())
  File "/usr/lib64/python2.7/site-packages/flexget/__init__.py", line 42, in main
    manager.start()
  File "/usr/lib64/python2.7/site-packages/flexget/manager.py", line 330, in start
    self.initialize()
  File "/usr/lib64/python2.7/site-packages/flexget/manager.py", line 217, in initialize
    fire_event('manager.startup', self)
  File "/usr/lib64/python2.7/site-packages/flexget/event.py", line 106, in fire_event
    result = event(*args, **kwargs)
  File "/usr/lib64/python2.7/site-packages/flexget/event.py", line 23, in __call__
    return self.func(*args, **kwargs)
  File "/usr/lib64/python2.7/site-packages/flexget/utils/simple_persistence.py", line 183, in load_taskless
    SimplePersistence.load()
  File "/usr/lib64/python2.7/site-packages/flexget/utils/simple_persistence.py", line 145, in load
    cls.class_store[task][skv.plugin][skv.key] = skv.value
  File "/usr/lib/python2.7/site-packages/sqlalchemy/orm/attributes.py", line 298, in __get__
    return self.descriptor.__get__(instance, owner)
  File "/usr/lib64/python2.7/site-packages/flexget/utils/database.py", line 141, in getter
    return json.loads(getattr(self, name), decode_datetime=True)
  File "/usr/lib64/python2.7/site-packages/flexget/utils/json.py", line 112, in loads
    return json.loads(*args, **kwargs)
  File "/usr/lib64/python2.7/json/__init__.py", line 351, in loads
    return cls(encoding=encoding, **kw).decode(s)
  File "/usr/lib64/python2.7/site-packages/flexget/utils/json.py", line 48, in decode
    return super(DTDecoder, self).decode(obj, **kwargs)
  File "/usr/lib64/python2.7/json/decoder.py", line 366, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
TypeError: expected string or buffer
[root@skynet .flexget]#
[root@skynet .flexget]# flexget -L debug database reset-plugin simple_persistence
2018-06-13 15:50 DEBUG    manager                       Figuring out config load paths
2018-06-13 15:50 DEBUG    manager                       Found config: /home/jmaurin/.flexget/config.yml
2018-06-13 15:50 DEBUG    manager                       Config file /home/jmaurin/.flexget/config.yml selected
2018-06-13 15:50 DEBUG    manager                       sys.defaultencoding: ascii
2018-06-13 15:50 DEBUG    manager                       sys.getfilesystemencoding: UTF-8
2018-06-13 15:50 DEBUG    manager                       flexget detected io encoding: utf-8
2018-06-13 15:50 DEBUG    manager                       os.path.supports_unicode_filenames: False
2018-06-13 15:50 DEBUG    plugin                        Trying to load plugins from: [u'/home/jmaurin/.flexget/plugins', '/usr/lib64/python2.7/site-packages/flexget/plugins']
2018-06-13 15:50 DEBUG    plugin                        (u'Plugin `%s` requires `%s` to load.', u'memusage', u'ext lib `guppy`')
2018-06-13 15:50 DEBUG    plugin                        Plugins took 5.77 seconds to load. 290 plugins in registry.
2018-06-13 15:50 DEBUG    manager                       Connecting to: sqlite:////home/jmaurin/.flexget/db-config.sqlite
2018-06-13 15:50 DEBUG    manager                       config_name: config
2018-06-13 15:50 DEBUG    manager                       config_base: /home/jmaurin/.flexget
2018-06-13 15:50 DEBUG    manager                       New config data loaded.
2018-06-13 15:50 DEBUG    schema                        current flexget version already exist in db 2.13.21
2018-06-13 15:50 DEBUG    manager                       Removed /home/jmaurin/.flexget/.config-lock
Traceback (most recent call last):
  File "/usr/bin/flexget", line 11, in <module>
    sys.exit(main())
  File "/usr/lib64/python2.7/site-packages/flexget/__init__.py", line 42, in main
    manager.start()
  File "/usr/lib64/python2.7/site-packages/flexget/manager.py", line 330, in start
    self.initialize()
  File "/usr/lib64/python2.7/site-packages/flexget/manager.py", line 217, in initialize
    fire_event('manager.startup', self)
  File "/usr/lib64/python2.7/site-packages/flexget/event.py", line 106, in fire_event
    result = event(*args, **kwargs)
  File "/usr/lib64/python2.7/site-packages/flexget/event.py", line 23, in __call__
    return self.func(*args, **kwargs)
  File "/usr/lib64/python2.7/site-packages/flexget/utils/simple_persistence.py", line 183, in load_taskless
    SimplePersistence.load()
  File "/usr/lib64/python2.7/site-packages/flexget/utils/simple_persistence.py", line 145, in load
    cls.class_store[task][skv.plugin][skv.key] = skv.value
  File "/usr/lib/python2.7/site-packages/sqlalchemy/orm/attributes.py", line 298, in __get__
    return self.descriptor.__get__(instance, owner)
  File "/usr/lib64/python2.7/site-packages/flexget/utils/database.py", line 141, in getter
    return json.loads(getattr(self, name), decode_datetime=True)
  File "/usr/lib64/python2.7/site-packages/flexget/utils/json.py", line 112, in loads
    return json.loads(*args, **kwargs)
  File "/usr/lib64/python2.7/json/__init__.py", line 351, in loads
    return cls(encoding=encoding, **kw).decode(s)
  File "/usr/lib64/python2.7/site-packages/flexget/utils/json.py", line 48, in decode
    return super(DTDecoder, self).decode(obj, **kwargs)
  File "/usr/lib64/python2.7/json/decoder.py", line 366, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
TypeError: expected string or buffer
[root@skynet .flexget]# cat /etc/centos-release
CentOS Linux release 7.5.1804 (Core)
[root@skynet .flexget]# uname -a
Linux www.domain.com 3.10.0-862.3.2.el7.x86_64 #1 SMP Mon May 21 23:36:36 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
[root@skynet .flexget]# python -V
Python 2.7.5
jmceara commented 6 years ago

Just to inform that I'm running 2.13.21:

 [root@skynet .flexget]# flexget -V
2.13.21
You are on the latest release.
paranoidi commented 6 years ago

As a quick fix, which does require some expertise. You could open the database with sqlite3 and delete all rows from simple_persistence table.