music player daemon (fork)
Go to file
Max Kellermann 8ed533acf3 event/SocketMonitor: handle epoll_ctl()=EBADF/ENOENT in Schedule()
This fixes a freeze bug in the NFS input/storage plugins: when libnfs
auto-reconnets after a failure, it installs the new socket on the same
file descriptor number.  MPD's attempt to unregister the old socket by
calling SocketMonitor::Steal() from NfsConnection::ScheduleSocket()
fails because the new/old socket number is not registered in epoll, so
epoll_ctl() returns ENOENT.  The problem is that it left
`scheduled_flags`, and so subsequent Schedule() calls will use
`EPOLL_CTL_MOD`, which will fail again and again.  Instead, we need to
use `EPOLL_CTL_ADD` to register the new socket.

Closes https://github.com/MusicPlayerDaemon/MPD/issues/806

Closes https://github.com/MusicPlayerDaemon/MPD/issues/756
2020-04-23 16:58:26 +02:00
android increment version number to 0.21.23 2020-04-14 13:12:36 +02:00
build build/pkg-config.sh: add comment 2019-02-22 12:39:59 +01:00
doc increment version number to 0.21.23 2020-04-14 13:12:36 +02:00
python/build python/build/libs.py: update libmpdclient to 2.18 2020-04-01 17:17:30 +02:00
src event/SocketMonitor: handle epoll_ctl()=EBADF/ENOENT in Schedule() 2020-04-23 16:58:26 +02:00
systemd systemd: add user socket unit 2019-04-10 16:37:13 +02:00
test test/meson.build: work around linker failure due to statically linked CURL 2020-04-02 17:16:05 +02:00
win32 win32/res/meson.build: drop tilde suffix from version number before splitting 2019-03-18 09:58:40 +01:00
.gitignore remove some autotools remains 2018-11-02 18:55:49 +01:00
.travis.yml .travis.yml: install more packages on OSX 2020-04-01 16:37:45 +02:00
AUTHORS AUTHORS: add 0.21 contributors 2018-10-31 17:59:54 +01:00
COPYING Update the text of the GPLv2, this fixes the address and a few other oddities. 2008-12-20 19:02:09 -08:00
meson_options.txt meson: add fixed-point Vorbis (Tremor) decoder support 2019-01-21 08:35:17 +01:00
meson.build increment version number to 0.21.23 2020-04-14 13:12:36 +02:00
mpd.svg import MPD SVG icon 2014-07-14 19:04:46 +02:00
NEWS event/SocketMonitor: handle epoll_ctl()=EBADF/ENOENT in Schedule() 2020-04-23 16:58:26 +02:00
README.md release v0.20.7 2017-05-15 23:01:49 +02:00
valgrind.suppressions valgrind.suppressions: add GObject/libgcrypt/libsmbclient suppressions 2019-02-05 22:53:02 +01:00

Music Player Daemon

http://www.musicpd.org

A daemon for playing music of various formats. Music is played through the server's audio device. The daemon stores info about all available music, and this info can be easily searched and retrieved. Player control, info retrieval, and playlist management can all be managed remotely.

For basic installation instructions read the manual.

Users

Developers

Legal

MPD is released under the GNU General Public License version 2, which is distributed in the COPYING file.