jcorporation / myMPD

myMPD is a standalone and mobile friendly web mpd client with a tiny footprint and advanced features.
https://jcorporation.github.io/myMPD/
GNU General Public License v3.0
418 stars 65 forks source link

MPD connection via socket fails with MPD v0.20.23 #223

Closed MichaIng closed 4 years ago

MichaIng commented 4 years ago

myMPD version: 6.1.0

Describe the bug

myMPD is not able to find/connect to the MPD socket, even that it clearly exists and is world-read/writeable:

Feb 15 19:24:50 DietPi mympd[759]: INFO     /tmp/DietPi-Software/myMPD-master/src/mpd_client.c:73: Starting mpd_client
Feb 15 19:24:50 DietPi mympd[759]: INFO     /tmp/DietPi-Software/myMPD-master/src/mpd_client.c:217: MPD connecting to socket /run/mpd/socket\n
Feb 15 19:24:50 DietPi mympd[759]: ERROR    /tmp/DietPi-Software/myMPD-master/src/mpd_client.c:234: MPD connection: No such file or directory
root@DietPi:/# l /run/mpd
total 0
drwxr-xr-x  2 mpd  audio  60 Feb 15 19:25 .
drwxr-xr-x 14 root root  420 Feb 15 19:24 ..
srw-rw-rw-  1 mpd  audio   0 Feb 15 19:24 socket

The web UI opens fine, but one cannot adjust the MPD connection settings from there, as long as MPD connection fails, since it refreshes the settings page before one is able to edit and save. It would make sense to allow changing especially the MPD settings from web UI as long as connection fails, of course. mympd.conf + states purge or editing /var/lib/mympd/state/ is currently the only chance in such case.

To Reproduce

Steps to reproduce the behavior:

  1. Use any DietPi Stretch image on any device: https://dietpi.com/downloads/images/
  2. Apply PR with some myMPD and MPD changes: https://github.com/MichaIng/DietPi/pull/3383
    • G_DEV_BRANCH mympd
  3. Install myMPD: dietpi-software install 148
  4. journalctl -u mympd

Expected behavior

myMPD finds and connects to the socket. If connection fails, web UI must allow to alter MPD connection settings.

Server plattform (please complete the following information):

Client plattform (please complete the following information):

Debug logs (please attach if it can be usefull)

See https://github.com/jcorporation/myMPD/wiki/Debug

[mpd]

Connection to mpd, unix socket or host/port, socket preferred

host = /run/mpd/socket

host = 127.0.0.1

port = 6600

pass =

absolut path of music_directory of mpd

none = no local music_directory

auto = get music_directory from mpd (only supported, if connected to mpd socket)

musicdirectory = auto playlistdirectory = /mnt/dietpi_userdata/Music

[webserver]

Webserver options

webport = 1333

Enable ssl

Certificates are generated under /var/lib/mympd/ssl/

ssl = false sslport = 443

[mympd]

Loglevel

0 = error

1 = warn

2 = info

3 = verbose

4 = debug

loglevel = 4

myMPD user

group is the primary group of this user

user = mympd

Enable system commands defined in syscmds section

syscmds = false

[syscmds] Shutdown = sudo /sbin/halt

To use this command add following lines to /etc/sudoers (without #)

Cmnd_Alias MYMPD_CMDS = /sbin/halt

mympd ALL=NOPASSWD: MYMPD_CMDS


 - tarball of /var/lib/mympd/state: 
[mympd_state.tar.zip](https://github.com/jcorporation/myMPD/files/4208889/mympd_state.tar.zip)
(this is a raw tar file, but GitHub does not allow .tar upload, hence I added .zip ending πŸ˜‰)

 **Additional context**

It works fine on Debian Buster and Bullseye with MPD v0.21+ and when compiling current MPD from official sources, hence I believe it has something to do with MPD version incompatibility, probably as well in combination with internal libmpdclient and installed APT package: `libmpdclient2                                         v2.9-1`

Probably a more generic debug approach is more helpful
- The MPD package we install on Stretch: https://dietpi.com/downloads/binaries/all/mpd_0.20.23-1_x86_64.deb
- Configure it to bind to socket `(/var)/run/mpd/socket`, which should be always work-R/W
- Start myMPD which by default tries to connect to this socket.
_______
The priority btw should be not put too high, since I'll compile new binaries based on current MPD now to be installed on Debian Stretch systems from DietPi v6.29 on.
jcorporation commented 4 years ago

Feb 15 19:24:50 DietPi mympd[759]: INFO /tmp/DietPi-Software/myMPD-master/src/mpd_client.c:217: MPD connecting to socket /run/mpd/socket\n

The \n should not be there, I looked at the code, this is no logging issue. Do you editet the state files directly and added a newline?

If connection fails, web UI must allow to alter MPD connection settings.

myMPD 6.2.0 will get this behaviour.

MichaIng commented 4 years ago

Nope I didn't manually add the newline, just replaced the default /var/run with /run, in case the symlink that is default on Debian caused the issue. But without altering this it fails with this MPD and works with the newer MPD version as well. I'll retry and compare the debug output with newer MPD, respectively on Debian Buster. There are no parenthesis allowed on state or config, to assure the newline is no parsed, are they?

jcorporation commented 4 years ago

In the state file no paranthesis and newlines are allowed, only the plain values.

In the config file paranthesis, newlines and whitespaces are trimmed.

jcorporation commented 4 years ago

I can reproduce the issue with a newline in the state file. Edit: devel now trims \n and some other characters.

I can't imagine that this is a problem with mpd or libmpdclient versions, but the embedded libmpdclient can be disabled with export EMBEDDED_LIBMPDCLIENT="OFF" before building.

MichaIng commented 4 years ago

@jcorporation Jep, would be an idea to compile it with distribution libmpdclient-dev, but I liked the idea to have an embedded newer version that has been tested to work well with myMPD.

MichaIng commented 4 years ago

Strange is that there is definitely no newline in the states file:

root@DietPi:/var/lib/mympd/state# grep 'socket' *
mpd_host:/run/mpd/socket
root@DietPi:/var/lib/mympd/state# systemctl start mympd
root@DietPi:/var/lib/mympd/state# journalctl -u mympd | tail -5
Feb 16 23:13:21 DietPi mympd[8951]: ERROR    MPD connection: No such file or directory
Feb 16 23:13:21 DietPi mympd[8951]: ERROR    MPD connection failed
Feb 16 23:13:30 DietPi mympd[8951]: INFO     MPD connecting to socket /run/mpd/socket\n
Feb 16 23:13:30 DietPi mympd[8951]: ERROR    MPD connection: No such file or directory
Feb 16 23:13:30 DietPi mympd[8951]: ERROR    MPD connection failed
MichaIng commented 4 years ago

Okay, now MPD connection works initially but fails later for another reason πŸ€”.

Feb 16 23:23:47 DietPi mympd[11836]: INFO     Starting myMPD 6.2.0
Feb 16 23:23:47 DietPi mympd[11836]: INFO     Compiled with embedded libmpdclient
Feb 16 23:23:47 DietPi mympd[11836]: INFO     Libmympdclient 1.0.2 based on libmpdclient 2.19.0
Feb 16 23:23:47 DietPi mympd[11836]: INFO     Mongoose 6.17
Feb 16 23:23:47 DietPi mympd[11836]: INFO     Parsing config file: /etc/mympd.conf
Feb 16 23:23:47 DietPi mympd[11836]: WARN     Unkown config option: webserver - ssl
Feb 16 23:23:47 DietPi mympd[11836]: WARN     Unkown config option: webserver - sslport
Feb 16 23:23:47 DietPi mympd[11836]: INFO     Setting loglevel to DEBUG
Feb 16 23:23:47 DietPi mympd[11836]: INFO     /tmp/DietPi-Software/myMPD-devel/src/utility.c:167: Localstate dir: "/var/lib/mympd"
Feb 16 23:23:47 DietPi mympd[11836]: INFO     /tmp/DietPi-Software/myMPD-devel/src/web_server.c:84: Listening on http port 1333
Feb 16 23:23:47 DietPi mympd[11836]: INFO     /tmp/DietPi-Software/myMPD-devel/src/main.c:121: Droping privileges to mympd
Feb 16 23:23:47 DietPi mympd[11836]: INFO     /tmp/DietPi-Software/myMPD-devel/src/utility.c:167: Smartpls dir: "/var/lib/mympd/smartpls"
Feb 16 23:23:47 DietPi mympd[11836]: INFO     /tmp/DietPi-Software/myMPD-devel/src/utility.c:167: State dir: "/var/lib/mympd/state"
Feb 16 23:23:47 DietPi mympd[11836]: INFO     /tmp/DietPi-Software/myMPD-devel/src/utility.c:167: Pics dir: "/var/lib/mympd/pics"
Feb 16 23:23:47 DietPi mympd[11836]: INFO     /tmp/DietPi-Software/myMPD-devel/src/utility.c:167: Empty dir: "/var/lib/mympd/empty"
Feb 16 23:23:47 DietPi mympd[11836]: INFO     /tmp/DietPi-Software/myMPD-devel/src/utility.c:167: Covercache dir: "/var/lib/mympd/covercache"
Feb 16 23:23:47 DietPi mympd[11836]: INFO     /tmp/DietPi-Software/myMPD-devel/src/utility.c:167: MPD playlists dir: "/mnt/dietpi_userdata/Music"
Feb 16 23:23:47 DietPi mympd[11836]: INFO     /tmp/DietPi-Software/myMPD-devel/src/main.c:416: Starting mympd api thread
Feb 16 23:23:47 DietPi mympd[11836]: INFO     /tmp/DietPi-Software/myMPD-devel/src/main.c:426: Starting mpd client thread
Feb 16 23:23:47 DietPi mympd[11836]: INFO     /tmp/DietPi-Software/myMPD-devel/src/mympd_api/mympd_api_settings.c:362: Reading states
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mympd_api/mympd_api_settings.c:444: State mpd_host: /run/mpd/socket
Feb 16 23:23:47 DietPi mympd[11836]: INFO     /tmp/DietPi-Software/myMPD-devel/src/main.c:437: Starting webserver thread
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mympd_api/mympd_api_settings.c:444: State mpd_port: 6600
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mympd_api/mympd_api_settings.c:444: State stickers: true
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mympd_api/mympd_api_settings.c:444: State taglist: Artist,Album,AlbumArtist,Title,Track,Genre,Date,Composer,Performer
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mympd_api/mympd_api_settings.c:444: State searchtaglist: Artist,Album,AlbumArtist,Title,Genre,Composer,Performer
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mympd_api/mympd_api_settings.c:444: State browsetaglist: Artist,Album,AlbumArtist,Genre,Composer,Performer
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mympd_api/mympd_api_settings.c:444: State smartpls: true
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mympd_api/mympd_api_settings.c:444: State smartpls_prefix: myMPDsmart
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mympd_api/mympd_api_settings.c:444: State smartpls_interval: 14400
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mympd_api/mympd_api_settings.c:444: State generate_pls_tags: Genre
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mympd_api/mympd_api_settings.c:444: State max_elements_per_page: 100
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mympd_api/mympd_api_settings.c:444: State last_played_count: 20
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mympd_api/mympd_api_settings.c:444: State love: false
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mympd_api/mympd_api_settings.c:444: State love_message: love
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mympd_api/mympd_api_settings.c:444: State notification_web: false
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mympd_api/mympd_api_settings.c:444: State notification_page: true
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mympd_api/mympd_api_settings.c:444: State media_session: true
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mympd_api/mympd_api_settings.c:444: State auto_play: false
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mympd_api/mympd_api_settings.c:444: State jukebox_mode: 0
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mympd_api/mympd_api_settings.c:444: State jukebox_playlist: Database
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mympd_api/mympd_api_settings.c:444: State jukebox_queue_length: 1
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mympd_api/mympd_api_settings.c:444: State jukebox_last_played: 24
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mympd_api/mympd_api_settings.c:444: State jukebox_unique_tag: Title
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mympd_api/mympd_api_settings.c:444: State cols_queue_current: ["Pos","Title","Artist","Album","Duration"]
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mympd_api/mympd_api_settings.c:444: State cols_search: ["Title","Artist","Album","Duration"]
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mympd_api/mympd_api_settings.c:444: State cols_browse_database: ["Track","Title","Duration"]
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mympd_api/mympd_api_settings.c:444: State cols_browse_playlists_detail: ["Pos","Title","Artist","Album","Duration"]
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mympd_api/mympd_api_settings.c:444: State cols_browse_filesystem: ["Type","Title","Artist","Album","Duration"]
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mympd_api/mympd_api_settings.c:444: State cols_playback: ["Artist","Album"]
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mympd_api/mympd_api_settings.c:444: State cols_queue_last_played: ["Pos","Title","Artist","Album","LastPlayed"]
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mympd_api/mympd_api_settings.c:444: State localplayer: false
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mympd_api/mympd_api_settings.c:444: State localplayer_autoplay: false
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mympd_api/mympd_api_settings.c:444: State stream_port: 8000
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mympd_api/mympd_api_settings.c:444: State bg_cover: false
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mympd_api/mympd_api_settings.c:444: State bg_color: #888
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mympd_api/mympd_api_settings.c:444: State bg_css_filter: blur(5px)
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mympd_api/mympd_api_settings.c:444: State coverimage: true
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mympd_api/mympd_api_settings.c:444: State coverimage_name: folder, cover
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mympd_api/mympd_api_settings.c:444: State coverimage_size: 250
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mympd_api/mympd_api_settings.c:444: State covergrid_size: 200
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mympd_api/mympd_api_settings.c:444: State locale: default
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mympd_api/mympd_api_settings.c:444: State music_directory: auto
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mympd_api/mympd_api_settings.c:444: State bookmarks: true
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mympd_api/mympd_api_settings.c:444: State theme: theme-default
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mympd_api/mympd_api_settings.c:444: State timer: true
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mympd_api/mympd_api_settings.c:444: State highlight_color: #28a745
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mympd_api/mympd_api_settings.c:444: State booklet_name: booklet.pdf
Feb 16 23:23:47 DietPi mympd[11836]: VERBOSE  /tmp/DietPi-Software/myMPD-devel/src/mympd_api/mympd_api_timer.c:346: Read 0 timer(s) from disc
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mympd_api.c:60: Setting timer action "clear covercache" to periodic each 7200s
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mpd_client.c:55: Got initial settings from mympd_api
Feb 16 23:23:47 DietPi mympd[11836]: VERBOSE  /tmp/DietPi-Software/myMPD-devel/src/mpd_client/mpd_client_api.c:51: MPD CLIENT API request (-1)(0) MYMPD_API_SETTINGS_SET: {"jsonrpc":"2.0","id":0,"method":"MYMPD_API_SETTINGS_SET","params":{"jukeboxMode":0,"jukeboxPlaylist":"Database","jukeboxQueueLength":1,"jukeboxLastPlayed":24,"jueboxUniqueTag":"Title","autoPlay":false,"coverimage":true,"coverimageName":"folder, cover","bookletName":"booklet.pdf","love":false,"loveChannel":"","loveMessage":"love","taglist":"Artist,Album,AlbumArtist,Title,Track,Genre,Date,Composer,Performer","searchtaglist":"Artist,Album,AlbumArtist,Title,Genre,Composer,Performer","browsetaglist":"Artist,Album,AlbumArtist,Genre,Composer,Performer","stickers":true,"smartpls":true,"smartplsSort":"","smartplsPrefix":"myMPDsmart","smartplsInterval":14400,"generatePlsTags":"Genre","mpdHost":"/run/mpd/socket","mpdPass":"","mpdPort":6600,"lastPlayedCount":20,"maxElementsPerPage":100,"musicDirectory":"auto"}}
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mpd_client/mpd_client_settings.c:35: Parse setting "jukeboxMode" with value "0"
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mpd_client/mpd_client_settings.c:35: Parse setting "jukeboxPlaylist" with value "Database"
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mpd_client/mpd_client_settings.c:35: Parse setting "jukeboxQueueLength" with value "1"
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mpd_client/mpd_client_settings.c:35: Parse setting "jukeboxLastPlayed" with value "24"
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mpd_client/mpd_client_settings.c:35: Parse setting "jukeboxUniqueTag" with value "Title"
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mpd_client/mpd_client_settings.c:35: Parse setting "autoPlay" with value "false"
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mpd_client/mpd_client_settings.c:35: Parse setting "coverimage" with value "true"
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mpd_client/mpd_client_settings.c:35: Parse setting "coverimageName" with value "folder, cover"
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mpd_client/mpd_client_settings.c:35: Parse setting "bookletName" with value "booklet.pdf"
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mpd_client/mpd_client_settings.c:35: Parse setting "love" with value "false"
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mpd_client/mpd_client_settings.c:35: Parse setting "loveChannel" with value ""
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mpd_client/mpd_client_settings.c:35: Parse setting "loveMessage" with value "love"
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mpd_client/mpd_client_settings.c:35: Parse setting "taglist" with value "Artist,Album,AlbumArtist,Title,Track,Genre,Date,Composer,Performer"
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mpd_client/mpd_client_settings.c:35: Parse setting "searchtaglist" with value "Artist,Album,AlbumArtist,Title,Genre,Composer,Performer"
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mpd_client/mpd_client_settings.c:35: Parse setting "browsetaglist" with value "Artist,Album,AlbumArtist,Genre,Composer,Performer"
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mpd_client/mpd_client_settings.c:35: Parse setting "stickers" with value "true"
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mpd_client/mpd_client_settings.c:35: Parse setting "smartpls" with value "true"
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mpd_client/mpd_client_settings.c:35: Parse setting "smartplsSort" with value ""
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mpd_client/mpd_client_settings.c:35: Parse setting "smartplsPrefix" with value "myMPDsmart"
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mpd_client/mpd_client_settings.c:35: Parse setting "smartplsInterval" with value "14400"
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mpd_client/mpd_client_settings.c:35: Parse setting "generatePlsTags" with value "Genre"
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mpd_client/mpd_client_settings.c:35: Parse setting "mpdHost" with value "/run/mpd/socket"
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mpd_client/mpd_client_settings.c:35: Parse setting "mpdPass" with value ""
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mpd_client/mpd_client_settings.c:35: Parse setting "mpdPort" with value "6600"
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mpd_client/mpd_client_settings.c:35: Parse setting "lastPlayedCount" with value "20"
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mpd_client/mpd_client_settings.c:35: Parse setting "maxElementsPerPage" with value "100"
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mpd_client/mpd_client_settings.c:35: Parse setting "musicDirectory" with value "auto"
Feb 16 23:23:47 DietPi mympd[11836]: INFO     /tmp/DietPi-Software/myMPD-devel/src/mpd_client.c:73: Starting mpd_client
Feb 16 23:23:47 DietPi mympd[11836]: INFO     /tmp/DietPi-Software/myMPD-devel/src/mpd_client.c:217: MPD connecting to socket /run/mpd/socket
Feb 16 23:23:47 DietPi mympd[11836]: INFO     /tmp/DietPi-Software/myMPD-devel/src/mpd_client.c:255: MPD connected
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mpd_client/mpd_client_utility.c:126: Push websocket notify to queue: {"jsonrpc":"2.0","method":"mpd_connected","params":{}}
Feb 16 23:23:47 DietPi mympd[11836]: INFO     /tmp/DietPi-Software/myMPD-devel/src/mpd_client/mpd_client_features.c:35: MPD protocoll version: 0.20.22
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mpd_client/mpd_client_features.c:122: MPD supports playlists
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mpd_client/mpd_client_features.c:118: MPD supports stickers
Feb 16 23:23:47 DietPi mympd[11836]: INFO     /tmp/DietPi-Software/myMPD-devel/src/utility.c:167: MPD music_directory: "/mnt/dietpi_userdata/Music"
Feb 16 23:23:47 DietPi mympd[11836]: INFO     /tmp/DietPi-Software/myMPD-devel/src/mpd_client/mpd_client_features.c:284: Enabling featLibrary support
Feb 16 23:23:47 DietPi mympd[11836]: INFO     /tmp/DietPi-Software/myMPD-devel/src/mpd_client/mpd_client_features.c:210: MPD supported tags: Artist Album Title Track Name Genre Date
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mpd_client/mpd_client_features.c:239: Disabling tag AlbumArtist
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mpd_client/mpd_client_features.c:239: Disabling tag Composer
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mpd_client/mpd_client_features.c:239: Disabling tag Performer
Feb 16 23:23:47 DietPi mympd[11836]: INFO     /tmp/DietPi-Software/myMPD-devel/src/mpd_client/mpd_client_features.c:244: Enabled mympdtags: Artist Album Title Track Genre Date
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mpd_client/mpd_client_features.c:239: Disabling tag AlbumArtist
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mpd_client/mpd_client_features.c:239: Disabling tag Composer
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mpd_client/mpd_client_features.c:239: Disabling tag Performer
Feb 16 23:23:47 DietPi mympd[11836]: INFO     /tmp/DietPi-Software/myMPD-devel/src/mpd_client/mpd_client_features.c:244: Enabled searchtags: Artist Album Title Genre
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mpd_client/mpd_client_features.c:239: Disabling tag AlbumArtist
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mpd_client/mpd_client_features.c:239: Disabling tag Composer
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mpd_client/mpd_client_features.c:239: Disabling tag Performer
Feb 16 23:23:47 DietPi mympd[11836]: INFO     /tmp/DietPi-Software/myMPD-devel/src/mpd_client/mpd_client_features.c:244: Enabled browsetags: Artist Album Genre
Feb 16 23:23:47 DietPi mympd[11836]: INFO     /tmp/DietPi-Software/myMPD-devel/src/mpd_client/mpd_client_features.c:244: Enabled generate pls tags: Genre
Feb 16 23:23:47 DietPi mympd[11836]: WARN     /tmp/DietPi-Software/myMPD-devel/src/mpd_client/mpd_client_features.c:65: Disabling advanced search, depends on mpd >= 0.21.0 and libmpdclient >= 2.17.0.
Feb 16 23:23:47 DietPi mympd[11836]: WARN     /tmp/DietPi-Software/myMPD-devel/src/mpd_client/mpd_client_features.c:73: Disabling single oneshot feature, depends on mpd >= 0.21.0 and libmpdclient >= 2.18.0.
Feb 16 23:23:47 DietPi mympd[11836]: VERBOSE  /tmp/DietPi-Software/myMPD-devel/src/mpd_client/mpd_client_sticker.c:238: Updating sticker cache
Feb 16 23:23:47 DietPi mympd[11836]: ERROR    /tmp/DietPi-Software/myMPD-devel/src/mpd_client.c:278: Entering idle mode failed
Feb 16 23:23:47 DietPi mympd[11836]: ERROR    /tmp/DietPi-Software/myMPD-devel/src/mpd_client.c:284: MPD connection failed
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mpd_client/mpd_client_utility.c:126: Push websocket notify to queue: {"jsonrpc":"2.0","method":"mpd_disconnected","params":{}}
Feb 16 23:23:47 DietPi mympd[11836]: DEBUG    /tmp/DietPi-Software/myMPD-devel/src/mpd_client.c:299: Waiting 2 seconds before reconnection
MichaIng commented 4 years ago

Another update:

jcorporation commented 4 years ago

Updating the sticker cache seems here the problem. A verbose mpd log should give a hint. To cross check my assumption, try setting stickercache=false in the mympd section of mympd.conf.

jcorporation commented 4 years ago

MPD 0.20.x versions does not support the clear tag types command. myMPD issued this command regardless of server version. Now myMPD checks mpd version and libmpdclient version before issuing tag types commands.

MichaIng commented 4 years ago

@jcorporation Great, so no debugging required from my side? I'll test with current myMPD and include the ./build.sh cleanupdist in case the web UI does not open (other thread). Is cleanupdist (asset rebuild) btw something that makes sense in general on installs, to be failsafe, or is it really some issue unique to devel branch?


EDIT: 🈯️ But fixed! Great work!

Issue with non-loading web UI still present on fresh install, now testing with cleanupdist.

EDIT2: 🈯️ cleanupdist indeed fixed non-loading web UI. I am now thinking to add this to our install code, or does this not make sense on master branch?


Marking the issue as closed, since everything else is unrelated and could be discussed on the other repo if required.