Skip to content

MPD session crashes on too few/many arguments to MPD commands #789

@ghost

Description

Hello, I start this issue because I haven't find any similar. When I start mopidy, I get:

** Message: pygobject_register_sinkfunc is deprecated (GstObject)
INFO     Starting Mopidy 0.19.1
INFO     Loading config from: builtin defaults, /etc/xdg/mopidy/mopidy.conf, /home/facundo/.config/mopidy/mopidy.conf, command line options
INFO     Enabled extensions: mpd, softwaremixer
INFO     Disabled extensions: local, http, stream
INFO     Starting Mopidy mixer: SoftwareMixer
INFO     Mixing using GStreamer software mixing
INFO     Starting Mopidy audio
INFO     Starting Mopidy backends: none
INFO     Starting Mopidy core
INFO     Starting Mopidy frontends: MpdFrontend
INFO     MPD server running at [::ffff:127.0.0.1]:6600
INFO     Audio output set to "autoaudiosink"
INFO     New MPD connection from [::ffff:127.0.0.1]:59691
ERROR    Unhandled exception in MpdSession (urn:uuid:c6862920-30cf-40df-a5a2-701fe40e8795):
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/pykka/actor.py", line 200, in _actor_loop
    response = self._handle_receive(message)
  File "/usr/lib/python2.7/site-packages/pykka/actor.py", line 303, in _handle_receive
    return self.on_receive(message)
  File "/usr/lib/python2.7/site-packages/mopidy/utils/network.py", line 366, in on_receive
    self.on_line_received(line)
  File "/usr/lib/python2.7/site-packages/mopidy/mpd/session.py", line 33, in on_line_received
    response = self.dispatcher.handle_request(line)
  File "/usr/lib/python2.7/site-packages/mopidy/mpd/dispatcher.py", line 46, in handle_request
    return self._call_next_filter(request, response, filter_chain)
  File "/usr/lib/python2.7/site-packages/mopidy/mpd/dispatcher.py", line 67, in _call_next_filter
    return next_filter(request, response, filter_chain)
  File "/usr/lib/python2.7/site-packages/mopidy/mpd/dispatcher.py", line 75, in _catch_mpd_ack_errors_filter
    return self._call_next_filter(request, response, filter_chain)
  File "/usr/lib/python2.7/site-packages/mopidy/mpd/dispatcher.py", line 67, in _call_next_filter
    return next_filter(request, response, filter_chain)
  File "/usr/lib/python2.7/site-packages/mopidy/mpd/dispatcher.py", line 88, in _authenticate_filter
    return self._call_next_filter(request, response, filter_chain)
  File "/usr/lib/python2.7/site-packages/mopidy/mpd/dispatcher.py", line 67, in _call_next_filter
    return next_filter(request, response, filter_chain)
  File "/usr/lib/python2.7/site-packages/mopidy/mpd/dispatcher.py", line 104, in _command_list_filter
    response = self._call_next_filter(request, response, filter_chain)
  File "/usr/lib/python2.7/site-packages/mopidy/mpd/dispatcher.py", line 67, in _call_next_filter
    return next_filter(request, response, filter_chain)
  File "/usr/lib/python2.7/site-packages/mopidy/mpd/dispatcher.py", line 133, in _idle_filter
    response = self._call_next_filter(request, response, filter_chain)
  File "/usr/lib/python2.7/site-packages/mopidy/mpd/dispatcher.py", line 67, in _call_next_filter
    return next_filter(request, response, filter_chain)
  File "/usr/lib/python2.7/site-packages/mopidy/mpd/dispatcher.py", line 146, in _add_ok_filter
    response = self._call_next_filter(request, response, filter_chain)
  File "/usr/lib/python2.7/site-packages/mopidy/mpd/dispatcher.py", line 67, in _call_next_filter
    return next_filter(request, response, filter_chain)
  File "/usr/lib/python2.7/site-packages/mopidy/mpd/dispatcher.py", line 158, in _call_handler_filter
    response = self._format_response(self._call_handler(request))
  File "/usr/lib/python2.7/site-packages/mopidy/mpd/dispatcher.py", line 167, in _call_handler
    return protocol.commands.call(tokens, context=self.context)
  File "/usr/lib/python2.7/site-packages/mopidy/mpd/protocol/__init__.py", line 171, in call
    return self.handlers[tokens[0]](context, *tokens[1:])
  File "/usr/lib/python2.7/site-packages/mopidy/mpd/protocol/__init__.py", line 141, in validate
    callargs = inspect.getcallargs(func, *args, **kwargs)
  File "/usr/lib/python2.7/inspect.py", line 981, in getcallargs
    'arguments' if num_required > 1 else 'argument', num_total))
TypeError: password() takes exactly 2 arguments (1 given)
^CINFO     Interrupted. Exiting...

PC became really slow (Its a Atom CPU). As you can see, I disabled almost all the extension and still get the error. The problem only dissappear when I disable the [MPD] extension. In my other computer with the same OS and same version of the dependences (but other CPU), I have not problem.

Output of mopidy deps

Platform: Linux-3.15.5-2-ARCH-i686-with-glibc2.0
Python: CPython 2.7.8 from /usr/lib/python2.7
Mopidy: 0.19.1 from /usr/lib/python2.7/site-packages
  setuptools: 5.4.1 from /usr/lib/python2.7/site-packages
  Pykka>=1.1: 1.2.0 from /usr/lib/python2.7/site-packages
  tornado>=2.3: 4.0 from /usr/lib/python2.7/site-packages
    certifi: 14.05.14 from /usr/lib/python2.7/site-packages
    backports.ssl-match-hostname: 3.4.0.2 from /usr/lib/python2.7/site-packages
GStreamer: 0.10.36.0 from /usr/lib/python2.7/site-packages/gst-0.10/gst
  Detailed information: 
    Python wrapper: gst-python 0.10.22.0
    Relevant elements:
      Found:
        uridecodebin
        souphttpsrc
        appsrc
        alsasink
        osssink
        oss4sink
        pulsesink
        id3demux
        id3v2mux
        lame
        mad
        vorbisdec
        vorbisenc
        vorbisparse
        oggdemux
        oggmux
        oggparse
        flacdec
        flacparse
        shout2send
      Not found:
        flump3dec
        mp3parse

Output of mopidy config

** Message: pygobject_register_sinkfunc is deprecated (GstObject)
[logging]
color = true
console_format = %(levelname)-8s %(message)s
debug_format = %(levelname)-8s %(asctime)s [%(process)d:%(threadName)s] %(name)s\n  %(message)s
debug_file = mopidy.log
config_file =

[audio]
mixer = software
mixer_volume = 
output = autoaudiosink
visualizer = 

[proxy]
scheme = 
hostname = 
port = 
username = 
password = 

[local]
enabled = false  ; Extension disabled by user config.

[mpd]
enabled = true
hostname = 127.0.0.1
port = 6600
password = 
max_connections = 20
connection_timeout = 60
zeroconf = Mopidy MPD server on $hostname

[softwaremixer]
enabled = true

[http]
enabled = false  ; Extension disabled by user config.

[stream]
enabled = false  ; Extension disabled by user config.

EDIT: With prevoius version (v18), It worked well

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions