'No suitable backend found' error

Bug #338978 reported by clayton craft
This bug report is a duplicate of:  Bug #285411: Different versions of ctypes. Edit Remove
2
Affects Status Importance Assigned to Milestone
disper
Confirmed
Medium
wvengen

Bug Description

Executing disper with any of the available actions results in the following error: "No suitable backend found"

Examples:
cacraft@cacraft-MOBL ~ $ disper -l
No suitable backend found
cacraft@cacraft-MOBL ~ $ disper -e
No suitable backend found
cacraft@cacraft-MOBL ~ $ disper -p
No suitable backend found
cacraft@cacraft-MOBL ~ $ disper -s
No suitable backend found

Nothing is printed to dmesg (or to syslog for that matter). I am running nvidia-drivers-180.35 x86_64.

cacraft@cacraft-MOBL ~ $ nvidia-settings -q gpus
1 GPU on cacraft-MOBL:0
    [0] cacraft-MOBL:0[gpu:0] (Quadro FX 570M)

cacraft@cacraft-MOBL ~ $ nvidia-settings -q OpenGLVersion
  Attribute 'OpenGLVersion' (cacraft-MOBL:0.0): 2.1 Mesa 7.3-rc2

cacraft@cacraft-MOBL ~ $ grep -i "X.Org X Server" /var/log/Xorg.0.log
X.Org X Server 1.6.0

cacraft@cacraft-MOBL ~ $ xrandr -v
Server reports RandR version 1.3

cacraft@cacraft-MOBL ~ $ uname -a
Linux cacraft-MOBL 2.6.28 #21 SMP PREEMPT Tue Feb 17 10:01:15 PST 2009 x86_64 Intel(R) Core(TM)2 Duo CPU T9500 @ 2.60GHz GenuineIntel GNU/Linux

Revision history for this message
wvengen (wvengen) wrote :

Thanks for your bug report. You've probably run into a serious bug in the nVidia backend. Could you please try the following at a command prompt and report what the output is exactly?
  cd /usr/share/disper/src
  python -c 'from nvidia import *; NVidiaControl()'

Changed in disper:
assignee: nobody → wvengen
status: New → Incomplete
Revision history for this message
clayton craft (craftyguy) wrote :

I don't get any output at all...

cacraft@cacraft-MOBL /usr/src/software/disper/src $ python -c 'from nvidia import *; NVidiaControl()'
cacraft@cacraft-MOBL /usr/src/software/disper/src $

Revision history for this message
wvengen (wvengen) wrote :

That's good. I should have asked to try this as well
  cd /usr/share/disper/src
  python -c 'from switcher.swnvidia import *; NVidiaSwitcher()'
I suspect that does give some output.

Revision history for this message
clayton craft (craftyguy) wrote :

Here's the output:

cacraft@cacraft-MOBL /usr/share/disper/src $ python -c 'from switcher.swnvidia import *; NVidiaSwitcher()'
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "switcher/swnvidia.py", line 19, in <module>
    import xrandr
  File "xrandr/__init__.py", line 41, in <module>
    from ctypes import *
  File "/usr/lib64/python2.5/ctypes/__init__.py", line 20, in <module>
    raise Exception, ("Version number mismatch", __version__, _ctypes_version)
Exception: ('Version number mismatch', '1.0.3', '1.0.2')

Revision history for this message
wvengen (wvengen) wrote :

Thanks, that narrows the problem to the python xrandr bindings and/or ctypes. There may be a problem with your python ctypes installation. It looks like a bug #285411; could you please verify that it is the case by running the following:
   grep ^__version__ /usr/share/pyshared/ctypes/__init__.py
   strings /usr/lib/python*/lib-dynload/_ctypes.so | grep 1\.\0\.
if these numbers are different it is the culprit.

Changed in disper:
importance: Undecided → Medium
status: Incomplete → Confirmed
Revision history for this message
wvengen (wvengen) wrote :

Still the problem doesn't occur here although these version numbers are different with me. The output of the following commands might help as well
  python -v -c 'import ctypes'
If that doesn't fail, please try
   cd /usr/share/disper/src
  python -v -c 'import xrandr'

Revision history for this message
clayton craft (craftyguy) wrote :
Download full text (4.4 KiB)

They are different:

cacraft-MOBL disper # grep ^__version__ /usr/lib64/python2.5/ctypes/__init__.py
__version__ = "1.0.3"
cacraft-MOBL disper # strings /usr/lib64/python2.5/site-packages/_ctypes.so | grep 1\.\0\.
1.0.2

cacraft-MOBL disper # python -v -c 'import ctypes'
# installing zipimport hook
import zipimport # builtin
# installed zipimport hook
# /usr/lib64/python2.5/site.pyc matches /usr/lib64/python2.5/site.py
import site # precompiled from /usr/lib64/python2.5/site.pyc
# /usr/lib64/python2.5/os.pyc matches /usr/lib64/python2.5/os.py
import os # precompiled from /usr/lib64/python2.5/os.pyc
import errno # builtin
import posix # builtin
# /usr/lib64/python2.5/posixpath.pyc matches /usr/lib64/python2.5/posixpath.py
import posixpath # precompiled from /usr/lib64/python2.5/posixpath.pyc
# /usr/lib64/python2.5/stat.pyc matches /usr/lib64/python2.5/stat.py
import stat # precompiled from /usr/lib64/python2.5/stat.pyc
# /usr/lib64/python2.5/UserDict.pyc matches /usr/lib64/python2.5/UserDict.py
import UserDict # precompiled from /usr/lib64/python2.5/UserDict.pyc
# /usr/lib64/python2.5/copy_reg.pyc matches /usr/lib64/python2.5/copy_reg.py
import copy_reg # precompiled from /usr/lib64/python2.5/copy_reg.pyc
# /usr/lib64/python2.5/types.pyc matches /usr/lib64/python2.5/types.py
import types # precompiled from /usr/lib64/python2.5/types.pyc
import _types # builtin
# /usr/lib64/python2.5/warnings.pyc matches /usr/lib64/python2.5/warnings.py
import warnings # precompiled from /usr/lib64/python2.5/warnings.pyc
# /usr/lib64/python2.5/linecache.pyc matches /usr/lib64/python2.5/linecache.py
import linecache # precompiled from /usr/lib64/python2.5/linecache.pyc
import encodings # directory /usr/lib64/python2.5/encodings
# /usr/lib64/python2.5/encodings/__init__.pyc matches /usr/lib64/python2.5/encodings/__init__.py
import encodings # precompiled from /usr/lib64/python2.5/encodings/__init__.pyc
# /usr/lib64/python2.5/codecs.pyc matches /usr/lib64/python2.5/codecs.py
import codecs # precompiled from /usr/lib64/python2.5/codecs.pyc
import _codecs # builtin
# /usr/lib64/python2.5/encodings/aliases.pyc matches /usr/lib64/python2.5/encodings/aliases.py
import encodings.aliases # precompiled from /usr/lib64/python2.5/encodings/aliases.pyc
# /usr/lib64/python2.5/encodings/utf_8.pyc matches /usr/lib64/python2.5/encodings/utf_8.py
import encodings.utf_8 # precompiled from /usr/lib64/python2.5/encodings/utf_8.pyc
Python 2.5.2 (r252:60911, Nov 25 2008, 10:20:37)
[GCC Intel(R) C++ gcc 4.1 mode] on linux2
Type "help", "copyright", "credits" or "license" for more information.
import ctypes # directory /usr/lib64/python2.5/ctypes
# /usr/lib64/python2.5/ctypes/__init__.pyc matches /usr/lib64/python2.5/ctypes/__init__.py
import ctypes # precompiled from /usr/lib64/python2.5/ctypes/__init__.pyc
dlopen("/usr/lib64/python2.5/site-packages/_ctypes.so", 2);
import _ctypes # dynamically loaded from /usr/lib64/python2.5/site-packages/_ctypes.so
# /usr/lib64/python2.5/struct.pyc matches /usr/lib64/python2.5/struct.py
import struct # precompiled from /usr/lib64/python2.5/struct.pyc
dlopen("/usr/lib64/python2.5/lib-dynload/_struct.so", 2);
import _struct # dynamically loaded from...

Read more...

Revision history for this message
wvengen (wvengen) wrote :

As a workaround I'll create an XRandR fallback method that calls the xrandr binary instead of using ctypes bindings.

Changed in disper:
milestone: none → 0.2.2
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.