trakt / Plex-Trakt-Scrobbler

Add what you are watching on Plex to trakt.tv
1.45k stars 167 forks source link

Getting wrong elf-class for playhouse.apsw_ext #386

Closed eloo closed 7 years ago

eloo commented 7 years ago

Hi, i'm currently installed your Plex plugin but i'm unable to start it. I'm getting the following error: Critical Error: Unable to import the playhouse.apsw_ext library (Falsche elf-klasse: elfclass64)

System: Odroid C2 OS: Debian Jessie Plex Server: 1.3.3.3148

Thanks for help Eloo

fuzeman commented 7 years ago

Looks like we need to update the system detection rules so that the correct native libraries are loaded.

Could you post the latest plugin log file (see this page for details) and the output of the cat /proc/cpuinfo command.

breneser commented 6 years ago

Hi, having the exact same issue. /proc/cpuinfo is as below:

processor   : 0
BogoMIPS    : 2.00
Features    : fp asimd crc32
CPU implementer : 0x41
CPU architecture: 8
CPU variant : 0x0
CPU part    : 0xd03
CPU revision    : 4

processor   : 1
BogoMIPS    : 2.00
Features    : fp asimd crc32
CPU implementer : 0x41
CPU architecture: 8
CPU variant : 0x0
CPU part    : 0xd03
CPU revision    : 4

processor   : 2
BogoMIPS    : 2.00
Features    : fp asimd crc32
CPU implementer : 0x41
CPU architecture: 8
CPU variant : 0x0
CPU part    : 0xd03
CPU revision    : 4

processor   : 3
BogoMIPS    : 2.00
Features    : fp asimd crc32
CPU implementer : 0x41
CPU architecture: 8
CPU variant : 0x0
CPU part    : 0xd03
CPU revision    : 4

Hardware    : ODROID-C2
Revision    : 020c
breneser commented 6 years ago

Also the relevant bits of the log I believe are these, hope this is helpful. Thanks


Traceback (most recent call last):
  File "/var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Plug-ins/Trakttv.bundle/Contents/Libraries/Shared/exception_wrappers/libraries/apsw.py", line 16, in <module>
    from apsw import *
ImportError: /var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Plug-in Support/Data/com.plexapp.plugins.trakttv/Libraries/Linux/aarch64/ucs4/apsw.so: wrong ELF class: ELFCLASS64
2018-03-08 01:00:55,689 - pyemitter                        (-8e05000) :  DEBUG (pyemitter:45) - [exception_wrappers.manager.Manager]:emit(event: 'exception', args: ('peewee', 'Unable to import the playhouse.apsw_ext library (Wrong elf class: elfclass64)', (<type 'exceptions.ImportError'>, ImportError('/var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Plug-in Support/Data/com.plexapp.plugins.trakttv/Libraries/Linux/aarch64/ucs4/apsw.so: wrong ELF class: ELFCLASS64',), <traceback object at 0xef7f7148>)), kwargs: {})
2018-03-08 01:00:55,690 - plugin.core.message              (-8e05000) :  CRITICAL (plugin.core.message:77) - Unable to import the playhouse.apsw_ext library (Wrong elf class: elfclass64)
Traceback (most recent call last):
  File "/var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Plug-ins/Trakttv.bundle/Contents/Libraries/Shared/exception_wrappers/libraries/playhouse/apsw_ext.py", line 24, in <module>
    from playhouse.apsw_ext import *
  File "/var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Plug-ins/Trakttv.bundle/Contents/Libraries/Shared/playhouse/apsw_ext.py", line 19, in <module>
    import apsw
ImportError: /var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Plug-in Support/Data/com.plexapp.plugins.trakttv/Libraries/Linux/aarch64/ucs4/apsw.so: wrong ELF class: ELFCLASS64
2018-03-08 01:00:55,702 - plugin.core.database.connection  (-8e05000) :  DEBUG (plugin.core.database.connection:34) - Connected to database at '/var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Plug-in Support/Databases/com.plexapp.plugins.trakttv.db'
2018-03-08 01:00:56,296 - pyemitter                        (-8e05000) :  DEBUG (pyemitter:45) - [plex_activity.activity.Activity   ]:on(events: ['websocket.timeline.created'], func: <bound method Metadata.timeline_created of <plex_metadata.metadata.Metadata object at 0xef3da930>>)
2018-03-08 01:00:56,297 - pyemitter                        (-8e05000) :  DEBUG (pyemitter:45) - [plex_activity.activity.Activity   ]:on(events: ['websocket.timeline.deleted'], func: <bound method Metadata.timeline_deleted of <plex_metadata.metadata.Metadata object at 0xef3da930>>)
2018-03-08 01:00:56,297 - pyemitter                        (-8e05000) :  DEBUG (pyemitter:45) - [plex_activity.activity.Activity   ]:on(events: ['websocket.timeline.finished'], func: <bound method Metadata.timeline_finished of <plex_metadata.metadata.Metadata object at 0xef3da930>>)
2018-03-08 01:00:56,440 - plex_database.core.database      (-8e05000) :  ERROR (plex_database.core.database:10) - Unable to import "apsw": /var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Plug-in Support/Data/com.plexapp.plugins.trakttv/Libraries/Linux/aarch64/ucs4/apsw.so: wrong ELF class: ELFCLASS64
Traceback (most recent call last):
  File "/var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Plug-ins/Trakttv.bundle/Contents/Libraries/Shared/plex_database/core/database.py", line 8, in <module>
    import apsw
ImportError: /var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Plug-in Support/Data/com.plexapp.plugins.trakttv/Libraries/Linux/aarch64/ucs4/apsw.so: wrong ELF class: ELFCLASS64
2018-03-08 01:00:56,447 - plex_database.core.database      (-8e05000) :  ERROR (plex_database.core.database:17) - Unable to import "playhouse.apsw_ext": /var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Plug-in Support/Data/com.plexapp.plugins.trakttv/Libraries/Linux/aarch64/ucs4/apsw.so: wrong ELF class: ELFCLASS64
Traceback (most recent call last):
  File "/var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Plug-ins/Trakttv.bundle/Contents/Libraries/Shared/plex_database/core/database.py", line 15, in <module>
    from playhouse.apsw_ext import APSWDatabase
  File "/var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Plug-ins/Trakttv.bundle/Contents/Libraries/Shared/playhouse/apsw_ext.py", line 19, in <module>
    import apsw
ImportError: /var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Plug-in Support/Data/com.plexapp.plugins.trakttv/Libraries/Linux/aarch64/ucs4/apsw.so: wrong ELF class: ELFCLASS64

2018-03-08 01:00:59,454 - plugin.modules.migrations.main   (-fdc0ba0) :  WARNING (plugin.modules.migrations.main:31) - Database connection failed: 'APSWDatabaseWrapper' object has no attribute 'timeout'
Traceback (most recent call last):
  File "/var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Plug-ins/Trakttv.bundle/Contents/Libraries/Shared/plugin/modules/migrations/main.py", line 26, in start
    db.connect()
  File "/var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Plug-ins/Trakttv.bundle/Contents/Libraries/Shared/peewee.py", line 3089, in connect
    **self.connect_kwargs)
  File "/var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Plug-ins/Trakttv.bundle/Contents/Libraries/Shared/exception_wrappers/database/apsw/peewee.py", line 19, in _connect
    if self.timeout is not None:

AttributeError: 'APSWDatabaseWrapper' object has no attribute 'timeout'
2018-03-08 01:00:59,502 - plugin.core.method_manager       (-fdc0ba0) :  INFO (plugin.core.method_manager:44) - Started 1 method(s): WebSocket
2018-03-08 01:00:59,504 - plugin                           (-fdc0ba0) :  INFO (plugin:19) - Started 0 modules: 
2018-03-08 01:00:59,505 - plugin.modules.core.manager      (-fdc0ba0) :  INFO (plugin.modules.core.manager:74) - Module startup has been cancelled due to a critical plugin error
2018-03-08 01:00:59,508 - plugin.preferences.main          (-fdc0ba0) :  WARNING (plugin.preferences.main:43) - Unable to retrieve option 'activity.mode': 'APSWDatabaseWrapper' object has no attribute 'timeout'
Traceback (most recent call last):
  File "/var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Plug-ins/Trakttv.bundle/Contents/Libraries/Shared/plugin/preferences/main.py", line 39, in get
    option = option_cls.get(account)
  File "/var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Plug-ins/Trakttv.bundle/Contents/Libraries/Shared/plugin/preferences/options/core/base/simple.py", line 48, in get
    'value': self._pack(self.default),
  File "/var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Plug-ins/Trakttv.bundle/Contents/Libraries/Shared/peewee.py", line 4106, in get_or_create
    return sq.get(), False
  File "/var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Plug-ins/Trakttv.bundle/Contents/Libraries/Shared/peewee.py", line 2725, in get
    return clone.execute().next()
  File "/var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Plug-ins/Trakttv.bundle/Contents/Libraries/Shared/peewee.py", line 2769, in execute
    self._qr = ResultWrapper(model_class, self._execute(), query_meta)
  File "/var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Plug-ins/Trakttv.bundle/Contents/Libraries/Shared/peewee.py", line 2455, in _execute
    return self.database.execute_sql(sql, params, self.require_commit)
  File "/var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Plug-ins/Trakttv.bundle/Contents/Libraries/Shared/peewee.py", line 3150, in execute_sql
    cursor = self.get_cursor()
  File "/var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Plug-ins/Trakttv.bundle/Contents/Libraries/Shared/peewee.py", line 3116, in get_cursor
    return self.get_conn().cursor()
  File "/var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Plug-ins/Trakttv.bundle/Contents/Libraries/Shared/peewee.py", line 3109, in get_conn
    self.connect()
  File "/var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Plug-ins/Trakttv.bundle/Contents/Libraries/Shared/peewee.py", line 3089, in connect
    **self.connect_kwargs)
  File "/var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Plug-ins/Trakttv.bundle/Contents/Libraries/Shared/exception_wrappers/database/apsw/peewee.py", line 19, in _connect
    if self.timeout is not None:
AttributeError: 'APSWDatabaseWrapper' object has no attribute 'timeout'
raver2046 commented 6 years ago

Same problem with S905W amlogic

`Processor : AArch64 Processor rev 4 (aarch64) processor : 0 processor : 1 processor : 2 processor : 3 Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 CPU implementer : 0x41 CPU architecture: AArch64 CPU variant : 0x0 CPU part : 0xd03 CPU revision : 4

Hardware : Amlogic Serial : 210ba2007b2bebf63e18cbd98405206e Revision : 020b `

marine1988 commented 5 years ago

i have the same problem with my allwinner h5 cpu

simonc56 commented 4 years ago

I used version 1.3.3 linux_aarch64 on Odroid C2 (Amlogic s905), same problem :

$ cat /proc/cpuinfo
Processor       : AArch64 Processor rev 4 (aarch64)
processor       : 0
processor       : 1
processor       : 2
processor       : 3
Features        : fp asimd evtstrm crc32 wp half thumb fastmult vfp edsp neon vfpv3 tlsi vfpv4 idiva idivt
CPU implementer : 0x41
CPU architecture: 8
CPU variant     : 0x0
CPU part        : 0xd03
CPU revision    : 4

Hardware        : ODROID-C2
Serial          : 00000000000000000000000000000000

Logs when testing native library support :

2018-06-22 13:13:01,356 - plugin.core.libraries.manager    (-8da2c00) :  INFO (plugin.core.libraries.manager:60) - Testing native library support...
2018-06-22 13:13:01,358 - plugin.core.libraries.tests.core.base (-8da2c00) :  DEBUG (plugin.core.libraries.tests.core.base:96) - Starting test: plugin.core.libraries.tests.apsw_:test_import
2018-06-22 13:13:02,294 - plugin.core.libraries.tests.core.base (-8da2c00) :  INFO (plugin.core.libraries.tests.core.base:124) - /storage/.kodi/userdata/addon_data/service.plexmediaserver/Plex Media Server/Plug-in Support/Data/com.plexapp.plugins.trakttv/Libraries/Linux/aarch64/ucs2/apsw.so: wrong ELF class: ELFCLASS64 - Traceback (most recent call last):
  File "/storage/.kodi/userdata/addon_data/service.plexmediaserver/Plex Media Server/Plug-ins/Trakttv.bundle/Contents/Libraries/Shared/plugin/core/libraries/tests/core/host.py", line 128, in <module>
    result = run()
  File "/storage/.kodi/userdata/addon_data/service.plexmediaserver/Plex Media Server/Plug-ins/Trakttv.bundle/Contents/Libraries/Shared/plugin/core/libraries/tests/core/host.py", line 121, in run
    return func()
  File "/storage/.kodi/userdata/addon_data/service.plexmediaserver/Plex Media Server/Plug-ins/Trakttv.bundle/Contents/Libraries/Shared/plugin/core/libraries/tests/apsw_.py", line 9, in test_import
    import apsw
ImportError: /storage/.kodi/userdata/addon_data/service.plexmediaserver/Plex Media Server/Plug-in Support/Data/com.plexapp.plugins.trakttv/Libraries/Linux/aarch64/ucs2/apsw.so: wrong ELF class: ELFCLASS64

2018-06-22 13:13:02,296 - root                             (-8da2c00) :  ERROR (root:87) - apsw: unavailable - /storage/.kodi/userdata/addon_data/service.plexmediaserver/Plex Media Server/Plug-in Support/Data/com.plexapp.plugins.trakttv/Libraries/Linux/aarch64/ucs2/apsw.so: wrong ELF class: ELFCLASS64
2019-12-04 13:47:00,926 - pyemitter                        (-8da2c00) :  DEBUG (pyemitter:45) - [exception_wrappers.manager.Manager]:emit(event: 'exception', args: ('apsw', 'Unable to import the apsw library (Wrong elf class: elfclass64)', (<type 'exceptions.ImportError'>, ImportError('/storage/.kodi/userdata/addon_data/service.plexmediaserver/Plex Media Server/Plug-in Support/Data/com.plexapp.plugins.trakttv/Libraries/Linux/aarch64/ucs2/apsw.so: wrong ELF class: ELFCLASS64',), <traceback object at 0xf3113968>)), kwargs: {})
2019-12-04 13:47:00,927 - plugin.core.message              (-8da2c00) :  CRITICAL (plugin.core.message:77) - Unable to import the apsw library (Wrong elf class: elfclass64)
Traceback (most recent call last):
  File "/storage/.kodi/userdata/addon_data/service.plexmediaserver/Plex Media Server/Plug-ins/Trakttv.bundle/Contents/Libraries/Shared/exception_wrappers/libraries/apsw.py", line 16, in <module>
    from apsw import *
ImportError: /storage/.kodi/userdata/addon_data/service.plexmediaserver/Plex Media Server/Plug-in Support/Data/com.plexapp.plugins.trakttv/Libraries/Linux/aarch64/ucs2/apsw.so: wrong ELF class: ELFCLASS64
2019-12-04 13:47:01,267 - pyemitter                        (-8da2c00) :  DEBUG (pyemitter:45) - [exception_wrappers.manager.Manager]:emit(event: 'exception', args: ('peewee', 'Unable to import the playhouse.apsw_ext library (Wrong elf class: elfclass64)', (<type 'exceptions.ImportError'>, ImportError('/storage/.kodi/userdata/addon_data/service.plexmediaserver/Plex Media Server/Plug-in Support/Data/com.plexapp.plugins.trakttv/Libraries/Linux/aarch64/ucs2/apsw.so: wrong ELF class: ELFCLASS64',), <traceback object at 0xf31031c0>)), kwargs: {})
2019-12-04 13:47:01,284 - plugin.core.message              (-8da2c00) :  CRITICAL (plugin.core.message:77) - Unable to import the playhouse.apsw_ext library (Wrong elf class: elfclass64)
Traceback (most recent call last):
  File "/storage/.kodi/userdata/addon_data/service.plexmediaserver/Plex Media Server/Plug-ins/Trakttv.bundle/Contents/Libraries/Shared/exception_wrappers/libraries/playhouse/apsw_ext.py", line 24, in <module>
    from playhouse.apsw_ext import *
  File "/storage/.kodi/userdata/addon_data/service.plexmediaserver/Plex Media Server/Plug-ins/Trakttv.bundle/Contents/Libraries/Shared/playhouse/apsw_ext.py", line 19, in <module>
    import apsw
ImportError: /storage/.kodi/userdata/addon_data/service.plexmediaserver/Plex Media Server/Plug-in Support/Data/com.plexapp.plugins.trakttv/Libraries/Linux/aarch64/ucs2/apsw.so: wrong ELF class: ELFCLASS64

@fuzeman can you reopen please, need anymore info ? @breneser how did you manage this with your odroid c2 ? Is there a way to find and set the correct native library ?