Closed ryanakca closed 3 years ago
Some choices of metadata_to_use cause mpd to reproducibly segfault on startup. A minimal combination that I have found to work is:
metadata_to_use
metadata_to_use "artist,album,title,track,artistsort,albumartist,title,composersort"
Interestingly, the following does not segfault:
metadata_to_use "artist,album,title,track,artistsort,albumartist,composersort"
but instead gives exception: error parsing metadata item "(null)".
exception: error parsing metadata item "(null)"
Here is my configuration file:
music_directory "/var/lib/mpd/music" playlist_directory "/var/lib/mpd/playlists" db_file "/var/lib/mpd/tag_cache" pid_file "/run/mpd/pid" state_file "/var/lib/mpd/state" sticker_file "/var/lib/mpd/sticker.sql" user "mpd" metadata_to_use "artist,album,title,track,artistsort,albumartist,title,composersort"
Music Player Daemon 0.22.10 (0.22.10) Copyright 2003-2007 Warren Dukes <warren.dukes@gmail.com> Copyright 2008-2021 Max Kellermann <max.kellermann@gmail.com> This is free software; see the source for copying conditions. There is NO warranty; not even MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Database plugins: simple proxy upnp Storage plugins: local smbclient udisks nfs curl Neighbor plugins: smbclient upnp udisks Decoders plugins: [mad] mp3 mp2 [mpg123] mp3 [vorbis] ogg oga [oggflac] ogg oga [flac] flac [opus] opus ogg oga [sndfile] wav aiff aif au snd paf iff svx sf voc w64 pvf xi htk caf sd2 [audiofile] wav au aiff aif [dsdiff] dff [dsf] dsf [hybrid_dsd] m4a [faad] aac [mpcdec] mpc [wavpack] wv [modplug] 669 amf ams dbm dfm dsm far it med mdl mod mtm mt2 okt s3m stm ult umx xm [mikmod] amf dsm far gdm imf it med mod mtm s3m stm stx ult uni xm [sidplay] sid mus str prg P00 [wildmidi] mid [fluidsynth] mid [adplug] amd d00 hsc laa rad raw sa2 [ffmpeg] 16sv 3g2 3gp 4xm 8svx aa3 aac ac3 adx afc aif aifc aiff al alaw amr anim apc ape asf atrac au aud avi avm2 avs bap bfi c93 cak cin cmv cpk daud dct divx dts dv dvd dxa eac3 film flac flc fli fll flx flv g726 gsm gxf iss m1v m2v m2t m2ts m4a m4b m4v mad mj2 mjpeg mjpg mka mkv mlp mm mmf mov mp+ mp1 mp2 mp3 mp4 mpc mpeg mpg mpga mpp mpu mve mvi mxf nc nsv nut nuv oga ogm ogv ogx oma ogg omg opus psp pva qcp qt r3d ra ram rl2 rm rmvb roq rpl rvc shn smk snd sol son spx str swf tak tgi tgq tgv thp ts tsp tta xa xvid uv uv2 vb vid vob voc vp6 vmd wav webm wma wmv wsaud wsvga wv wve rtp:// rtsp:// rtsps:// [gme] ay gbs gym hes kss nsf nsfe rsn sap spc vgm vgz [pcm] Filters: libsamplerate soxr Tag plugins: id3tag Output plugins: shout null fifo sndio pipe alsa ao oss openal pulse jack httpd recorder Encoder plugins: null vorbis opus lame wave flac Archive plugins: [bz2] bz2 [zzip] zip [iso] iso Input plugins: file io_uring archive alsa qobuz curl ffmpeg smbclient nfs mms cdio_paranoia Playlist plugins: extm3u m3u pls xspf asx rss soundcloud flac cue embcue Protocols: file:// alsa:// cdda:// ftp:// ftps:// gopher:// hls+http:// hls+https:// http:// https:// mms:// mmsh:// mmst:// mmsu:// nfs:// qobuz:// rtmp:// rtmps:// rtmpt:// rtmpts:// rtp:// rtsp:// rtsps:// scp:// sftp:// smb:// srtp:// Other features: avahi dbus udisks epoll icu inotify ipv6 systemd tcp un
mpd@zeta:/tmp$ gdb -batch -n -ex 'set startup-with-shell off' -ex 'set pagination off' -ex run -ex bt -ex 'bt full' -ex 'thread apply all bt full' --args mpd [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". Program received signal SIGSEGV, Segmentation fault. 0x00007ffff3717231 in ?? () from /lib/x86_64-linux-gnu/libc.so.6 #0 0x00007ffff3717231 in () at /lib/x86_64-linux-gnu/libc.so.6 #1 0x00007ffff3624a18 in () at /lib/x86_64-linux-gnu/libc.so.6 #2 0x00007ffff3635576 in () at /lib/x86_64-linux-gnu/libc.so.6 #3 0x00007ffff36c3361 in __snprintf_chk () at /lib/x86_64-linux-gnu/libc.so.6 #4 0x0000555555593e6a in snprintf (__fmt=0x5555556a2cb8 "error parsing metadata item \"%s\"", __n=1024, __s=0x7fffffffd378 "error parsing metadata item \"") at /usr/include/x86_64-linux-gnu/bits/stdio2.h:70 #5 FormatRuntimeError<StringView&>(StringView&, char const*) (fmt=0x5555556a2cb8 "error parsing metadata item \"%s\"") at ../src/util/RuntimeError.hxx:49 #6 0x0000555555593eb7 in TagLoadConfig(ConfigData const&) (config=<optimized out>) at ../src/tag/Config.cxx:57 #7 0x00005555555a21fc in MainConfigured (raw_config=..., options=...) at ../src/Main.cxx:380 #8 MainOrThrow(int, char**) (argc=<optimized out>, argv=<optimized out>) at ../src/Main.cxx:605 #9 0x00005555555a2deb in mpd_main(int, char**) (argc=<optimized out>, argv=<optimized out>) at ../src/Main.cxx:613 #10 0x00007ffff35dfe4a in __libc_start_main () at /lib/x86_64-linux-gnu/libc.so.6 #11 0x00005555555a179a in _start () #0 0x00007ffff3717231 in () at /lib/x86_64-linux-gnu/libc.so.6 #1 0x00007ffff3624a18 in () at /lib/x86_64-linux-gnu/libc.so.6 #2 0x00007ffff3635576 in () at /lib/x86_64-linux-gnu/libc.so.6 #3 0x00007ffff36c3361 in __snprintf_chk () at /lib/x86_64-linux-gnu/libc.so.6 #4 0x0000555555593e6a in snprintf (__fmt=0x5555556a2cb8 "error parsing metadata item \"%s\"", __n=1024, __s=0x7fffffffd378 "error parsing metadata item \"") at /usr/include/x86_64-linux-gnu/bits/stdio2.h:70 buffer = "error parsing metadata item \"\000\000\000et\247\001\000\000\000\000\001\000\000\000\000\000\000\000\244\201", '\000' <repeats 22 times>, "\312\r\000\000\000\000\000\000\000\020\000\000\000\000\000\000\b\000\000\000\000\000\000\000%\205|a\000\000\000\000\317@\306\031\000\000\000\000\227#\302`\000\000\000\000\062\024\003\071\000\000\000\000\227#\302`\000\000\000\000\315\033@9", '\000' <repeats 28 times>, "\210\324\377\377\377\177\000\000\000+\016\032\264\213\305rp8vUUU\000\000\300\204w\363\377\177\000\000\000\000\000\000\000\000\000\000"... #5 FormatRuntimeError<StringView&>(StringView&, char const*) (fmt=0x5555556a2cb8 "error parsing metadata item \"%s\"") at ../src/util/RuntimeError.hxx:49 buffer = "error parsing metadata item \"\000\000\000et\247\001\000\000\000\000\001\000\000\000\000\000\000\000\244\201", '\000' <repeats 22 times>, "\312\r\000\000\000\000\000\000\000\020\000\000\000\000\000\000\b\000\000\000\000\000\000\000%\205|a\000\000\000\000\317@\306\031\000\000\000\000\227#\302`\000\000\000\000\062\024\003\071\000\000\000\000\227#\302`\000\000\000\000\315\033@9", '\000' <repeats 28 times>, "\210\324\377\377\377\177\000\000\000+\016\032\264\213\305rp8vUUU\000\000\300\204w\363\377\177\000\000\000\000\000\000\000\000\000\000"... #6 0x0000555555593eb7 in TagLoadConfig(ConfigData const&) (config=<optimized out>) at ../src/tag/Config.cxx:57 type = <optimized out> name = {<BasicStringView<char>> = {<ConstBuffer<char>> = {data = 0x5555557604c6 "composersort", size = 12}, <No data fields>}, <No data fields>} __for_range = <optimized out> value = <optimized out> plus = <optimized out> #7 0x00005555555a21fc in MainConfigured (raw_config=..., options=...) at ../src/Main.cxx:380 max_clients = <optimized out> input_cache_config = <optimized out> create_db = <optimized out> instance = {<EventLoopHolder> = {event_loop = {<SocketMonitor> = {_vptr.SocketMonitor = 0x0, fd = {<FileDescriptor> = {fd = 1853190656}, <No data fields>}, loop = @0x692e73006469702f, scheduled_flags = 4294957696, static READ = 1, static WRITE = 4, static ERROR = 8, static HANGUP = 16, static IMPLICIT_FLAGS = 24}, wake_fd = {fd = {<FileDescriptor> = {fd = 32767}, <No data fields>}}, timers = {<boost::intrusive::multiset_impl<boost::intrusive::bhtraits<TimerEvent, boost::intrusive::rbtree_node_traits<void*, false>, (boost::intrusive::link_mode_type)2, boost::intrusive::dft_tag, 3>, void, EventLoop::TimerCompare, unsigned long, false, void>> = {<boost::intrusive::bstree_impl<boost::intrusive::bhtraits<TimerEvent, boost::intrusive::rbtree_node_traits<void*, false>, (boost::intrusive::link_mode_type)2, boost::intrusive::dft_tag, 3>, void, EventLoop::TimerCompare, unsigned long, false, (boost::intrusive::algo_types)5, void>> = {<boost::intrusive::bstbase<boost::intrusive::bhtraits<TimerEvent, boost::intrusive::rbtree_node_traits<void*, false>, (boost::intrusive::link_mode_type)2, boost::intrusive::dft_tag, 3>, void, EventLoop::TimerCompare, false, unsigned long, (boost::intrusive::algo_types)5, void>> = {<boost::intrusive::bstbase_hack<boost::intrusive::bhtraits<TimerEvent, boost::intrusive::rbtree_node_traits<void*, false>, (boost::intrusive::link_mode_type)2, boost::intrusive::dft_tag, 3>, void, EventLoop::TimerCompare, false, unsigned long, (boost::intrusive::algo_types)5, void>> = {<boost::intrusive::bstbase2<boost::intrusive::bhtraits<TimerEvent, boost::intrusive::rbtree_node_traits<void*, false>, (boost::intrusive::link_mode_type)2, boost::intrusive::dft_tag, 3>, void, EventLoop::TimerCompare, (boost::intrusive::algo_types)5, void>> = {<boost::intrusive::detail::ebo_functor_holder<boost::intrusive::tree_value_compare<TimerEvent*, EventLoop::TimerCompare, boost::move_detail::identity<TimerEvent>, bool, true>, void, false>> = {<boost::intrusive::tree_value_compare<TimerEvent*, EventLoop::TimerCompare, boost::move_detail::identity<TimerEvent>, bool, true>> = {<boost::intrusive::detail::ebo_functor_holder<EventLoop::TimerCompare, void, false>> = {<EventLoop::TimerCompare> = {<No data fields>}, <No data fields>}, <No data fields>}, <No data fields>}, <boost::intrusive::bstbase3<boost::intrusive::bhtraits<TimerEvent, boost::intrusive::rbtree_node_traits<void*, false>, (boost::intrusive::link_mode_type)2, boost::intrusive::dft_tag, 3>, (boost::intrusive::algo_types)5, void>> = {holder = {<boost::intrusive::bhtraits<TimerEvent, boost::intrusive::rbtree_node_traits<void*, false>, (boost::intrusive::link_mode_type)2, boost::intrusive::dft_tag, 3>> = {<boost::intrusive::bhtraits_base<TimerEvent, boost::intrusive::rbtree_node<void*>*, boost::intrusive::dft_tag, 3>> = {<No data fields>}, static link_mode = boost::intrusive::auto_unlink}, root = {<boost::intrusive::rbtree_node<void*>> = {parent_ = 0x7ffff7fe0399, left_ = 0x555500000001, right_ = 0x7ffff775da30, color_ = (unknown: 0xffffdaa0)}, <No data fields>}}}, <No data fields>}, <No data fields>}, <No data fields>}, static constant_time_size = false, static safemode_or_autounlink = true}, <No data fields>}, <No data fields>}, idle = {<boost::intrusive::list_impl<boost::intrusive::mhtraits<IdleMonitor, boost::intrusive::list_member_hook<>, &IdleMonitor::list_hook>, long unsigned int, false, void>> = {static constant_time_size = false, static safemode_or_autounlink = true, data_ = {<boost::intrusive::mhtraits<IdleMonitor, boost::intrusive::list_member_hook<>, &IdleMonitor::list_hook>> = {static link_mode = boost::intrusive::safe_link}, root_plus_size_ = {<boost::intrusive::detail::size_holder<false, unsigned long, void>> = {<No data fields>}, m_header = {<boost::intrusive::list_node<void*>> = {next_ = 0x7ffff7fe0399, prev_ = 0x555500000001}, <No data fields>}}}}, <No data fields>}, mutex = {<std::__mutex_base> = {_M_mutex = pthread_mutex_t = {Type = Recursive, Status = Acquired, possibly with waiters, Owner ID = -9536 (dead), Robust = Yes, Shared = Yes, Protocol = None, Times acquired by the owner = 32767}}, <No data fields>}, deferred = {<boost::intrusive::list_impl<boost::intrusive::mhtraits<DeferEvent, boost::intrusive::list_member_hook<>, &DeferEvent::list_hook>, long unsigned int, false, void>> = {static constant_time_size = false, static safemode_or_autounlink = true, data_ = {<boost::intrusive::mhtraits<DeferEvent, boost::intrusive::list_member_hook<>, &DeferEvent::list_hook>> = {static link_mode = boost::intrusive::safe_link}, root_plus_size_ = {<boost::intrusive::detail::size_holder<false, unsigned long, void>> = {<No data fields>}, m_header = {<boost::intrusive::list_node<void*>> = {next_ = 0x7fffffffdae0, prev_ = 0x7fffffffdc78}, <No data fields>}}}}, <No data fields>}, uring = std::unique_ptr<Uring::Manager> = {get() = 0xf0001}, now = {__d = {__r = -1}}, alive = false, quit = {_M_base = {static _S_alignment = 1, _M_i = 219}, static is_always_lock_free = true}, again = 255, busy = 255, uring_initialized = 255, poll_group = {epoll = {fd = {<FileDescriptor> = {fd = 17}, <No data fields>}}, static READ = 1, static WRITE = 4, static ERROR = 8, static HANGUP = 16}, poll_result = {events = {_M_elems = {{events = 4294959712, data = {ptr = 0x7fff, fd = 32767, u32 = 32767, u64 = 32767}}, {events = 0, data = {ptr = 0x7fffffffe290, fd = -7536, u32 = 4294959760, u64 = 140737488347792}}, {events = 4294959760, data = {ptr = 0xffffffff00007fff, fd = 32767, u32 = 32767, u64 = 18446744069414617087}}, {events = 0, data = {ptr = 0x7ffff3611fc7, fd = -211738681, u32 = 4083228615, u64 = 140737276616647}}, {events = 4294957888, data = {ptr = 0xf7fe039900007fff, fd = 32767, u32 = 32767, u64 = 17869724327117619199}}, {events = 32767, data = {ptr = 0x555500000001, fd = 1, u32 = 1, u64 = 93823560581121}}, {events = 4157987376, data = {ptr = 0xf3742ef400007fff, fd = 32767, u32 = 32767, u64 = 17542698074021855231}}, {events = 32767, data = {ptr = 0x7ffff7fe0399, fd = -134347879, u32 = 4160619417, u64 = 140737354007449}}, {events = 0, data = {ptr = 0xffffe27800000000, fd = 0, u32 = 0, u64 = 18446711603756793856}}, {events = 32767, data = {ptr = 0x0, fd = 0, u32 = 0, u64 = 0}}, {events = 4294958360, data = {ptr = 0x5000000007fff, fd = 32767, u32 = 32767, u64 = 1407374883586047}}, {events = 0, data = {ptr = 0xffffffffffffffff, fd = -1, u32 = 4294967295, u64 = 18446744073709551615}}, {events = 2, data = {ptr = 0x500000000, fd = 0, u32 = 0, u64 = 21474836480}}, {events = 0, data = {ptr = 0x7fffffffe300, fd = -7424, u32 = 4294959872, u64 = 140737488347904}}, {events = 64, data = {ptr = 0xffffe33000000000, fd = 0, u32 = 0, u64 = 18446712394030776320}}, {events = 32767, data = {ptr = 0x7fffffffe330, fd = -7376, u32 = 4294959920, u64 = 140737488347952}}}}, n_events = 4294967295}, thread = {id = 140737276616647}}}, <DatabaseListener> = {_vptr.DatabaseListener = 0x7fffffffdaa0}, <NeighborListener> = {_vptr.NeighborListener = 0x7fffffffde00}, <RemoteTagCacheHandler> = {_vptr.RemoteTagCacheHandler = 0x600000001}, io_thread = {event_loop = {<SocketMonitor> = {_vptr.SocketMonitor = 0x7ffff37774c0, fd = {<FileDescriptor> = {fd = 15}, <No data fields>}, loop = @0x7ffff3742ef4, scheduled_flags = 0, static READ = 1, static WRITE = 4, static ERROR = 8, static HANGUP = 16, static IMPLICIT_FLAGS = 24}, wake_fd = {fd = {<FileDescriptor> = {fd = 32767}, <No data fields>}}, timers = {<boost::intrusive::multiset_impl<boost::intrusive::bhtraits<TimerEvent, boost::intrusive::rbtree_node_traits<void*, false>, (boost::intrusive::link_mode_type)2, boost::intrusive::dft_tag, 3>, void, EventLoop::TimerCompare, unsigned long, false, void>> = {<boost::intrusive::bstree_impl<boost::intrusive::bhtraits<TimerEvent, boost::intrusive::rbtree_node_traits<void*, false>, (boost::intrusive::link_mode_type)2, boost::intrusive::dft_tag, 3>, void, EventLoop::TimerCompare, unsigned long, false, (boost::intrusive::algo_types)5, void>> = {<boost::intrusive::bstbase<boost::intrusive::bhtraits<TimerEvent, boost::intrusive::rbtree_node_traits<void*, false>, (boost::intrusive::link_mode_type)2, boost::intrusive::dft_tag, 3>, void, EventLoop::TimerCompare, false, unsigned long, (boost::intrusive::algo_types)5, void>> = {<boost::intrusive::bstbase_hack<boost::intrusive::bhtraits<TimerEvent, boost::intrusive::rbtree_node_traits<void*, false>, (boost::intrusive::link_mode_type)2, boost::intrusive::dft_tag, 3>, void, EventLoop::TimerCompare, false, unsigned long, (boost::intrusive::algo_types)5, void>> = {<boost::intrusive::bstbase2<boost::intrusive::bhtraits<TimerEvent, boost::intrusive::rbtree_node_traits<void*, false>, (boost::intrusive::link_mode_type)2, boost::intrusive::dft_tag, 3>, void, EventLoop::TimerCompare, (boost::intrusive::algo_types)5, void>> = {<boost::intrusive::detail::ebo_functor_holder<boost::intrusive::tree_value_compare<TimerEvent*, EventLoop::TimerCompare, boost::move_detail::identity<TimerEvent>, bool, true>, void, false>> = {<boost::intrusive::tree_value_compare<TimerEvent*, EventLoop::TimerCompare, boost::move_detail::identity<TimerEvent>, bool, true>> = {<boost::intrusive::detail::ebo_functor_holder<EventLoop::TimerCompare, void, false>> = {<EventLoop::TimerCompare> = {<No data fields>}, <No data fields>}, <No data fields>}, <No data fields>}, <boost::intrusive::bstbase3<boost::intrusive::bhtraits<TimerEvent, boost::intrusive::rbtree_node_traits<void*, false>, (boost::intrusive::link_mode_type)2, boost::intrusive::dft_tag, 3>, (boost::intrusive::algo_types)5, void>> = {holder = {<boost::intrusive::bhtraits<TimerEvent, boost::intrusive::rbtree_node_traits<void*, false>, (boost::intrusive::link_mode_type)2, boost::intrusive::dft_tag, 3>> = {<boost::intrusive::bhtraits_base<TimerEvent, boost::intrusive::rbtree_node<void*>*, boost::intrusive::dft_tag, 3>> = {<No data fields>}, static link_mode = boost::intrusive::auto_unlink}, root = {<boost::intrusive::rbtree_node<void*>> = {parent_ = 0x0, left_ = 0x7fffffffe318, right_ = 0x0, color_ = boost::intrusive::rbtree_node<void*>::red_t}, <No data fields>}}}, <No data fields>}, <No data fields>}, <No data fields>}, static constant_time_size = false, static safemode_or_autounlink = true}, <No data fields>}, <No data fields>}, idle = {<boost::intrusive::list_impl<boost::intrusive::mhtraits<IdleMonitor, boost::intrusive::list_member_hook<>, &IdleMonitor::list_hook>, long unsigned int, false, void>> = {static constant_time_size = false, static safemode_or_autounlink = true, data_ = {<boost::intrusive::mhtraits<IdleMonitor, boost::intrusive::list_member_hook<>, &IdleMonitor::list_hook>> = {static link_mode = boost::intrusive::safe_link}, root_plus_size_ = {<boost::intrusive::detail::size_holder<false, unsigned long, void>> = {<No data fields>}, m_header = {<boost::intrusive::list_node<void*>> = {next_ = 0x0, prev_ = 0x7fffffffe460}, <No data fields>}}}}, <No data fields>}, mutex = {<std::__mutex_base> = {_M_mutex = pthread_mutex_t = {Type = Normal, Status = Acquired, possibly with waiters, Owner ID = -8528, Robust = No, Shared = Yes, Protocol = None}}, <No data fields>}, deferred = {<boost::intrusive::list_impl<boost::intrusive::mhtraits<DeferEvent, boost::intrusive::list_member_hook<>, &DeferEvent::list_hook>, long unsigned int, false, void>> = {static constant_time_size = false, static safemode_or_autounlink = true, data_ = {<boost::intrusive::mhtraits<DeferEvent, boost::intrusive::list_member_hook<>, &DeferEvent::list_hook>> = {static link_mode = boost::intrusive::safe_link}, root_plus_size_ = {<boost::intrusive::detail::size_holder<false, unsigned long, void>> = {<No data fields>}, m_header = {<boost::intrusive::list_node<void*>> = {next_ = 0x0, prev_ = 0x0}, <No data fields>}}}}, <No data fields>}, uring = std::unique_ptr<Uring::Manager> = {get() = 0x0}, now = {__d = {__r = 140737488346784}}, alive = true, quit = {_M_base = {static _S_alignment = 1, _M_i = false}, static is_always_lock_free = true}, again = false, busy = false, uring_initialized = 3, poll_group = {epoll = {fd = {<FileDescriptor> = {fd = -210275136}, <No data fields>}}, static READ = 1, static WRITE = 4, static ERROR = 8, static HANGUP = 16}, poll_result = {events = {_M_elems = {{events = 4, data = {ptr = 0xffffffff00000000, fd = 0, u32 = 0, u64 = 18446744069414584320}}, {events = 32767, data = {ptr = 0x40, fd = 64, u32 = 64, u64 = 64}}, {events = 2, data = {ptr = 0xffffffff00000000, fd = 0, u32 = 0, u64 = 18446744069414584320}}, {events = 4294967295, data = {ptr = 0xffffffff00000000, fd = 0, u32 = 0, u64 = 18446744069414584320}}, {events = 0, data = {ptr = 0x200000000, fd = 0, u32 = 0, u64 = 8589934592}}, {events = 48, data = {ptr = 0x7fffffffe500, fd = -6912, u32 = 4294960384, u64 = 140737488348416}}, {events = 4036417265, data = {ptr = 0xffffdeb100007fff, fd = 32767, u32 = 32767, u64 = 18446707450523451391}}, {events = 32767, data = {ptr = 0x7ffff3790890 <funlockfile>, fd = -210171760, u32 = 4084795536, u64 = 140737278183568}}, {events = 4294959920, data = {ptr = 0x7fff, fd = 32767, u32 = 32767, u64 = 32767}}, {events = 0, data = {ptr = 0x0, fd = 0, u32 = 0, u64 = 0}}, {events = 4082882348, data = {ptr = 0x7fff, fd = 32767, u32 = 32767, u64 = 32767}}, {events = 0, data = {ptr = 0x1, fd = 1, u32 = 1, u64 = 1}}, {events = 40, data = {ptr = 0xffffe50000000030, fd = 48, u32 = 48, u64 = 18446714386895601712}}, {events = 32767, data = {ptr = 0x7fffffffe430, fd = -7120, u32 = 4294960176, u64 = 140737488348208}}, {events = 479434334, data = {ptr = 0x100000000, fd = 0, u32 = 0, u64 = 4294967296}}, {events = 0, data = {ptr = 0x7ffff35bf384, fd = -212077692, u32 = 4082889604, u64 = 140737276277636}}}}, n_events = 140737279724448}, thread = {id = 1}}, thread = {f = {instance_ = 0x7ffff7fdc654, function = 0x8ce}, handle = 140737276335936, inside_handle = 140737279680272}, realtime = 72}, rtio_thread = {event_loop = {<SocketMonitor> = {_vptr.SocketMonitor = 0x7fffffffde44, fd = {<FileDescriptor> = {fd = -208587776}, <No data fields>}, loop = @0x1, scheduled_flags = 0, static READ = 1, static WRITE = 4, static ERROR = 8, static HANGUP = 16, static IMPLICIT_FLAGS = 24}, wake_fd = {fd = {<FileDescriptor> = {fd = 32767}, <No data fields>}}, timers = {<boost::intrusive::multiset_impl<boost::intrusive::bhtraits<TimerEvent, boost::intrusive::rbtree_node_traits<void*, false>, (boost::intrusive::link_mode_type)2, boost::intrusive::dft_tag, 3>, void, EventLoop::TimerCompare, unsigned long, false, void>> = {<boost::intrusive::bstree_impl<boost::intrusive::bhtraits<TimerEvent, boost::intrusive::rbtree_node_traits<void*, false>, (boost::intrusive::link_mode_type)2, boost::intrusive::dft_tag, 3>, void, EventLoop::TimerCompare, unsigned long, false, (boost::intrusive::algo_types)5, void>> = {<boost::intrusive::bstbase<boost::intrusive::bhtraits<TimerEvent, boost::intrusive::rbtree_node_traits<void*, false>, (boost::intrusive::link_mode_type)2, boost::intrusive::dft_tag, 3>, void, EventLoop::TimerCompare, false, unsigned long, (boost::intrusive::algo_types)5, void>> = {<boost::intrusive::bstbase_hack<boost::intrusive::bhtraits<TimerEvent, boost::intrusive::rbtree_node_traits<void*, false>, (boost::intrusive::link_mode_type)2, boost::intrusive::dft_tag, 3>, void, EventLoop::TimerCompare, false, unsigned long, (boost::intrusive::algo_types)5, void>> = {<boost::intrusive::bstbase2<boost::intrusive::bhtraits<TimerEvent, boost::intrusive::rbtree_node_traits<void*, false>, (boost::intrusive::link_mode_type)2, boost::intrusive::dft_tag, 3>, void, EventLoop::TimerCompare, (boost::intrusive::algo_types)5, void>> = {<boost::intrusive::detail::ebo_functor_holder<boost::intrusive::tree_value_compare<TimerEvent*, EventLoop::TimerCompare, boost::move_detail::identity<TimerEvent>, bool, true>, void, false>> = {<boost::intrusive::tree_value_compare<TimerEvent*, EventLoop::TimerCompare, boost::move_detail::identity<TimerEvent>, bool, true>> = {<boost::intrusive::detail::ebo_functor_holder<EventLoop::TimerCompare, void, false>> = {<EventLoop::TimerCompare> = {<No data fields>}, <No data fields>}, <No data fields>}, <No data fields>}, <boost::intrusive::bstbase3<boost::intrusive::bhtraits<TimerEvent, boost::intrusive::rbtree_node_traits<void*, false>, (boost::intrusive::link_mode_type)2, boost::intrusive::dft_tag, 3>, (boost::intrusive::algo_types)5, void>> = {holder = {<boost::intrusive::bhtraits<TimerEvent, boost::intrusive::rbtree_node_traits<void*, false>, (boost::intrusive::link_mode_type)2, boost::intrusive::dft_tag, 3>> = {<boost::intrusive::bhtraits_base<TimerEvent, boost::intrusive::rbtree_node<void*>*, boost::intrusive::dft_tag, 3>> = {<No data fields>}, static link_mode = boost::intrusive::auto_unlink}, root = {<boost::intrusive::rbtree_node<void*>> = {parent_ = 0x7ffff35cd740, left_ = 0x7ffff7fdc24c, right_ = 0x6e471454, color_ = boost::intrusive::rbtree_node<void*>::black_t}, <No data fields>}}}, <No data fields>}, <No data fields>}, <No data fields>}, static constant_time_size = false, static safemode_or_autounlink = true}, <No data fields>}, <No data fields>}, idle = {<boost::intrusive::list_impl<boost::intrusive::mhtraits<IdleMonitor, boost::intrusive::list_member_hook<>, &IdleMonitor::list_hook>, long unsigned int, false, void>> = {static constant_time_size = false, static safemode_or_autounlink = true, data_ = {<boost::intrusive::mhtraits<IdleMonitor, boost::intrusive::list_member_hook<>, &IdleMonitor::list_hook>> = {static link_mode = boost::intrusive::safe_link}, root_plus_size_ = {<boost::intrusive::detail::size_holder<false, unsigned long, void>> = {<No data fields>}, m_header = {<boost::intrusive::list_node<void*>> = {next_ = 0x7ffff35bed60, prev_ = 0x7fffeca05ae0}, <No data fields>}}}}, <No data fields>}, mutex = {<std::__mutex_base> = {_M_mutex = pthread_mutex_t = {Type = Recursive, Status = Acquired, possibly with no waiters, Owner ID = -134363564, Robust = No, Shared = No, Protocol = Priority protect, Priority ceiling = 0}}, <No data fields>}, deferred = {<boost::intrusive::list_impl<boost::intrusive::mhtraits<DeferEvent, boost::intrusive::list_member_hook<>, &DeferEvent::list_hook>, long unsigned int, false, void>> = {static constant_time_size = false, static safemode_or_autounlink = true, data_ = {<boost::intrusive::mhtraits<DeferEvent, boost::intrusive::list_member_hook<>, &DeferEvent::list_hook>> = {static link_mode = boost::intrusive::safe_link}, root_plus_size_ = {<boost::intrusive::detail::size_holder<false, unsigned long, void>> = {<No data fields>}, m_header = {<boost::intrusive::list_node<void*>> = {next_ = 0x1, prev_ = 0x7ffff35bec14}, <No data fields>}}}}, <No data fields>}, uring = std::unique_ptr<Uring::Manager> = {get() = 0x7ffff3908270}, now = {__d = {__r = 1}}, alive = 84, quit = {_M_base = {static _S_alignment = 1, _M_i = 198}, static is_always_lock_free = true}, again = 253, busy = 247, uring_initialized = 255, poll_group = {epoll = {fd = {<FileDescriptor> = {fd = 1778}, <No data fields>}}, static READ = 1, static WRITE = 4, static ERROR = 8, static HANGUP = 16}, poll_result = {events = {_M_elems = {{events = 4082947904, data = {ptr = 0xf38fdf1000007fff, fd = 32767, u32 = 32767, u64 = 17550491532698615807}}, {events = 32767, data = {ptr = 0x7fffffffdf08, fd = -8440, u32 = 4294958856, u64 = 140737488346888}}, {events = 4294958852, data = {ptr = 0xeca05e2800007fff, fd = 32767, u32 = 32767, u64 = 17050731715116433407}}, {events = 32767, data = {ptr = 0x7fffffffdeb2, fd = -8526, u32 = 4294958770, u64 = 140737488346802}}, {events = 0, data = {ptr = 0xf35cd74000007fff, fd = 32767, u32 = 32767, u64 = 17536127718951780351}}, {events = 32767, data = {ptr = 0x7ffff35bf5e0, fd = -212077088, u32 = 4082890208, u64 = 140737276278240}}, {events = 4086525160, data = {ptr = 0x71dd557f00007fff, fd = 32767, u32 = 32767, u64 = 8204808100088152063}}, {events = 0, data = {ptr = 0x1c77555, fd = 29848917, u32 = 29848917, u64 = 29848917}}, {events = 4294958852, data = {ptr = 0xea1448e000007fff, fd = 32767, u32 = 32767, u64 = 16867186631319257087}}, {events = 32767, data = {ptr = 0x7fffffffdfd0, fd = -8240, u32 = 4294959056, u64 = 140737488347088}}, {events = 4086334064, data = {ptr = 0xffffdfc000007fff, fd = 32767, u32 = 32767, u64 = 18446708614459588607}}, {events = 32767, data = {ptr = 0x11b, fd = 283, u32 = 283, u64 = 283}}, {events = 1, data = {ptr = 0xf35bf5a400000000, fd = 0, u32 = 0, u64 = 17535879658820599808}}, {events = 0, data = {ptr = 0x0, fd = 0, u32 = 0, u64 = 0}}, {events = 1, data = {ptr = 0x71dd557f00000000, fd = 0, u32 = 0, u64 = 8204808100088119296}}, {events = 0, data = {ptr = 0x7ffff3c8cce8, fd = -204944152, u32 = 4090023144, u64 = 140737283411176}}}}, n_events = 140737279913192}, thread = {id = 140737488347240}}, thread = {f = {instance_ = 0x7fffffffdfc0, function = 0x7fffffffdfd0}, handle = 140737353994113, inside_handle = 64}, realtime = 128}, systemd_watchdog = {timer = {<boost::intrusive::set_base_hook<boost::intrusive::link_mode<(boost::intrusive::link_mode_type)2> >> = {<boost::intrusive::generic_hook<(boost::intrusive::algo_types)5, boost::intrusive::rbtree_node_traits<void*, false>, boost::intrusive::dft_tag, (boost::intrusive::link_mode_type)2, (boost::intrusive::base_hook_type)3>> = {<boost::intrusive::node_holder<boost::intrusive::rbtree_node<void*>, boost::intrusive::dft_tag, 3>> = {<boost::intrusive::rbtree_node<void*>> = {parent_ = 0x1, left_ = 0x0, right_ = 0x1, color_ = (unknown: 0xf3c8c980)}, <No data fields>}, <boost::intrusive::hook_tags_definer<boost::intrusive::generic_hook<(boost::intrusive::algo_types)5, boost::intrusive::rbtree_node_traits<void*, false>, boost::intrusive::dft_tag, (boost::intrusive::link_mode_type)2, (boost::intrusive::base_hook_type)3>, 3>> = {<No data fields>}, <No data fields>}, <No data fields>}, loop = @0x7fffffffe004, callback = {instance_ = 0x7fffea141380, function = 0x7ffff3c8c980}, due = {__d = {__r = 4294967296}}}, interval = {__r = 140737283411176}}, input_cache = std::unique_ptr<InputCacheManager> = {get() = 0x0}, idle_monitor = {defer = {list_hook = {<boost::intrusive::generic_hook<(boost::intrusive::algo_types)0, boost::intrusive::list_node_traits<void*>, boost::intrusive::member_tag, (boost::intrusive::link_mode_type)1, (boost::intrusive::base_hook_type)0>> = {<boost::intrusive::list_node<void*>> = {next_ = 0x7ffff7d7cf4b, prev_ = 0x2b43e9ed}, <boost::intrusive::hook_tags_definer<boost::intrusive::generic_hook<(boost::intrusive::algo_types)0, boost::intrusive::list_node_traits<void*>, boost::intrusive::member_tag, (boost::intrusive::link_mode_type)1, (boost::intrusive::base_hook_type)0>, 0>> = {<No data fields>}, <No data fields>}, <No data fields>}, loop = @0xffffffff, callback = {instance_ = 0x7fffffffe004, function = 0x7ffff35c9c90}}, callback = {instance_ = 0x7ffff38fdf10, function = 0x7ffff7d7c550}, pending_mask = {<std::__atomic_base<unsigned int>> = {static _S_alignment = 4, _M_i = 4294959296}, static is_always_lock_free = true}}, neighbors = std::unique_ptr<NeighborGlue> = {get() = 0x11b}, database = std::unique_ptr<Database> = {get() = 0x7fffffffe080}, storage = 0xffffe090, update = 0x0, remote_tag_cache = std::unique_ptr<RemoteTagCache> = {get() = 0x40}, client_list = std::unique_ptr<ClientList> = {get() = 0x7ffff3b05420 <clock_gettime@got.plt>}, partitions = std::__cxx11::list<error reading variable: Cannot access memory at address 0xc>, state_file = std::unique_ptr<StateFile> = {get() = 0x7fffffffe5b8}, sticker_database = std::unique_ptr<StickerDatabase> = {get() = 0x5555556fc2b8}} config = {replay_gain = {static DEFAULT_LIMIT = true, preamp = 1, missing_preamp = 1, limit = true}} options = {kill = false, daemon = true, log_stderr = false, verbose = false} raw_config = {params = {_M_elems = {std::forward_list = {[0] = {value = "/var/lib/mpd/music", line = 1}}, std::forward_list = {[0] = {value = "/var/lib/mpd/playlists", line = 2}}, empty std::forward_list, empty std::forward_list, std::forward_list = {[0] = {value = "/var/lib/mpd/tag_cache", line = 3}}, std::forward_list = {[0] = {value = "/var/lib/mpd/sticker.sql", line = 6}}, empty std::forward_list, std::forward_list = {[0] = {value = "/run/mpd/pid", line = 4}}, std::forward_list = {[0] = {value = "/var/lib/mpd/state", line = 5}}, empty std::forward_list, empty std::forward_list, std::forward_list = {[0] = {value = "mpd", line = 8}}, empty std::forward_list <repeats 30 times>, std::forward_list = {[0] = {value = "artist,album,title,track,artistsort,albumartist,title,composersort", line = 9}}, empty std::forward_list, empty std::forward_list, empty std::forward_list, empty std::forward_list, empty std::forward_list, empty std::forward_list, empty std::forward_list}}, blocks = {_M_elems = {empty std::forward_list, empty std::forward_list, empty std::forward_list, empty std::forward_list, empty std::forward_list, empty std::forward_list, empty std::forward_list, empty std::forward_list, empty std::forward_list}}} #8 MainOrThrow(int, char**) (argc=<optimized out>, argv=<optimized out>) at ../src/Main.cxx:605 options = {kill = false, daemon = true, log_stderr = false, verbose = false} raw_config = {params = {_M_elems = {std::forward_list = {[0] = {value = "/var/lib/mpd/music", line = 1}}, std::forward_list = {[0] = {value = "/var/lib/mpd/playlists", line = 2}}, empty std::forward_list, empty std::forward_list, std::forward_list = {[0] = {value = "/var/lib/mpd/tag_cache", line = 3}}, std::forward_list = {[0] = {value = "/var/lib/mpd/sticker.sql", line = 6}}, empty std::forward_list, std::forward_list = {[0] = {value = "/run/mpd/pid", line = 4}}, std::forward_list = {[0] = {value = "/var/lib/mpd/state", line = 5}}, empty std::forward_list, empty std::forward_list, std::forward_list = {[0] = {value = "mpd", line = 8}}, empty std::forward_list <repeats 30 times>, std::forward_list = {[0] = {value = "artist,album,title,track,artistsort,albumartist,title,composersort", line = 9}}, empty std::forward_list, empty std::forward_list, empty std::forward_list, empty std::forward_list, empty std::forward_list, empty std::forward_list, empty std::forward_list}}, blocks = {_M_elems = {empty std::forward_list, empty std::forward_list, empty std::forward_list, empty std::forward_list, empty std::forward_list, empty std::forward_list, empty std::forward_list, empty std::forward_list, empty std::forward_list}}} #9 0x00005555555a2deb in mpd_main(int, char**) (argc=<optimized out>, argv=<optimized out>) at ../src/Main.cxx:613 at_scope_exit_610 = {<> = {<No data fields>}, enabled = true} #10 0x00007ffff35dfe4a in __libc_start_main () at /lib/x86_64-linux-gnu/libc.so.6 #11 0x00005555555a179a in _start () Thread 1 (Thread 0x7fffea12a380 (LWP 3672689) "mpd"): #0 0x00007ffff3717231 in () at /lib/x86_64-linux-gnu/libc.so.6 #1 0x00007ffff3624a18 in () at /lib/x86_64-linux-gnu/libc.so.6 #2 0x00007ffff3635576 in () at /lib/x86_64-linux-gnu/libc.so.6 #3 0x00007ffff36c3361 in __snprintf_chk () at /lib/x86_64-linux-gnu/libc.so.6 #4 0x0000555555593e6a in snprintf (__fmt=0x5555556a2cb8 "error parsing metadata item \"%s\"", __n=1024, __s=0x7fffffffd378 "error parsing metadata item \"") at /usr/include/x86_64-linux-gnu/bits/stdio2.h:70 buffer = "error parsing metadata item \"\000\000\000et\247\001\000\000\000\000\001\000\000\000\000\000\000\000\244\201", '\000' <repeats 22 times>, "\312\r\000\000\000\000\000\000\000\020\000\000\000\000\000\000\b\000\000\000\000\000\000\000%\205|a\000\000\000\000\317@\306\031\000\000\000\000\227#\302`\000\000\000\000\062\024\003\071\000\000\000\000\227#\302`\000\000\000\000\315\033@9", '\000' <repeats 28 times>, "\210\324\377\377\377\177\000\000\000+\016\032\264\213\305rp8vUUU\000\000\300\204w\363\377\177\000\000\000\000\000\000\000\000\000\000"... #5 FormatRuntimeError<StringView&>(StringView&, char const*) (fmt=0x5555556a2cb8 "error parsing metadata item \"%s\"") at ../src/util/RuntimeError.hxx:49 buffer = "error parsing metadata item \"\000\000\000et\247\001\000\000\000\000\001\000\000\000\000\000\000\000\244\201", '\000' <repeats 22 times>, "\312\r\000\000\000\000\000\000\000\020\000\000\000\000\000\000\b\000\000\000\000\000\000\000%\205|a\000\000\000\000\317@\306\031\000\000\000\000\227#\302`\000\000\000\000\062\024\003\071\000\000\000\000\227#\302`\000\000\000\000\315\033@9", '\000' <repeats 28 times>, "\210\324\377\377\377\177\000\000\000+\016\032\264\213\305rp8vUUU\000\000\300\204w\363\377\177\000\000\000\000\000\000\000\000\000\000"... #6 0x0000555555593eb7 in TagLoadConfig(ConfigData const&) (config=<optimized out>) at ../src/tag/Config.cxx:57 type = <optimized out> name = {<BasicStringView<char>> = {<ConstBuffer<char>> = {data = 0x5555557604c6 "composersort", size = 12}, <No data fields>}, <No data fields>} __for_range = <optimized out> value = <optimized out> plus = <optimized out> #7 0x00005555555a21fc in MainConfigured (raw_config=..., options=...) at ../src/Main.cxx:380 max_clients = <optimized out> input_cache_config = <optimized out> create_db = <optimized out> instance = {<EventLoopHolder> = {event_loop = {<SocketMonitor> = {_vptr.SocketMonitor = 0x0, fd = {<FileDescriptor> = {fd = 1853190656}, <No data fields>}, loop = @0x692e73006469702f, scheduled_flags = 4294957696, static READ = 1, static WRITE = 4, static ERROR = 8, static HANGUP = 16, static IMPLICIT_FLAGS = 24}, wake_fd = {fd = {<FileDescriptor> = {fd = 32767}, <No data fields>}}, timers = {<boost::intrusive::multiset_impl<boost::intrusive::bhtraits<TimerEvent, boost::intrusive::rbtree_node_traits<void*, false>, (boost::intrusive::link_mode_type)2, boost::intrusive::dft_tag, 3>, void, EventLoop::TimerCompare, unsigned long, false, void>> = {<boost::intrusive::bstree_impl<boost::intrusive::bhtraits<TimerEvent, boost::intrusive::rbtree_node_traits<void*, false>, (boost::intrusive::link_mode_type)2, boost::intrusive::dft_tag, 3>, void, EventLoop::TimerCompare, unsigned long, false, (boost::intrusive::algo_types)5, void>> = {<boost::intrusive::bstbase<boost::intrusive::bhtraits<TimerEvent, boost::intrusive::rbtree_node_traits<void*, false>, (boost::intrusive::link_mode_type)2, boost::intrusive::dft_tag, 3>, void, EventLoop::TimerCompare, false, unsigned long, (boost::intrusive::algo_types)5, void>> = {<boost::intrusive::bstbase_hack<boost::intrusive::bhtraits<TimerEvent, boost::intrusive::rbtree_node_traits<void*, false>, (boost::intrusive::link_mode_type)2, boost::intrusive::dft_tag, 3>, void, EventLoop::TimerCompare, false, unsigned long, (boost::intrusive::algo_types)5, void>> = {<boost::intrusive::bstbase2<boost::intrusive::bhtraits<TimerEvent, boost::intrusive::rbtree_node_traits<void*, false>, (boost::intrusive::link_mode_type)2, boost::intrusive::dft_tag, 3>, void, EventLoop::TimerCompare, (boost::intrusive::algo_types)5, void>> = {<boost::intrusive::detail::ebo_functor_holder<boost::intrusive::tree_value_compare<TimerEvent*, EventLoop::TimerCompare, boost::move_detail::identity<TimerEvent>, bool, true>, void, false>> = {<boost::intrusive::tree_value_compare<TimerEvent*, EventLoop::TimerCompare, boost::move_detail::identity<TimerEvent>, bool, true>> = {<boost::intrusive::detail::ebo_functor_holder<EventLoop::TimerCompare, void, false>> = {<EventLoop::TimerCompare> = {<No data fields>}, <No data fields>}, <No data fields>}, <No data fields>}, <boost::intrusive::bstbase3<boost::intrusive::bhtraits<TimerEvent, boost::intrusive::rbtree_node_traits<void*, false>, (boost::intrusive::link_mode_type)2, boost::intrusive::dft_tag, 3>, (boost::intrusive::algo_types)5, void>> = {holder = {<boost::intrusive::bhtraits<TimerEvent, boost::intrusive::rbtree_node_traits<void*, false>, (boost::intrusive::link_mode_type)2, boost::intrusive::dft_tag, 3>> = {<boost::intrusive::bhtraits_base<TimerEvent, boost::intrusive::rbtree_node<void*>*, boost::intrusive::dft_tag, 3>> = {<No data fields>}, static link_mode = boost::intrusive::auto_unlink}, root = {<boost::intrusive::rbtree_node<void*>> = {parent_ = 0x7ffff7fe0399, left_ = 0x555500000001, right_ = 0x7ffff775da30, color_ = (unknown: 0xffffdaa0)}, <No data fields>}}}, <No data fields>}, <No data fields>}, <No data fields>}, static constant_time_size = false, static safemode_or_autounlink = true}, <No data fields>}, <No data fields>}, idle = {<boost::intrusive::list_impl<boost::intrusive::mhtraits<IdleMonitor, boost::intrusive::list_member_hook<>, &IdleMonitor::list_hook>, long unsigned int, false, void>> = {static constant_time_size = false, static safemode_or_autounlink = true, data_ = {<boost::intrusive::mhtraits<IdleMonitor, boost::intrusive::list_member_hook<>, &IdleMonitor::list_hook>> = {static link_mode = boost::intrusive::safe_link}, root_plus_size_ = {<boost::intrusive::detail::size_holder<false, unsigned long, void>> = {<No data fields>}, m_header = {<boost::intrusive::list_node<void*>> = {next_ = 0x7ffff7fe0399, prev_ = 0x555500000001}, <No data fields>}}}}, <No data fields>}, mutex = {<std::__mutex_base> = {_M_mutex = pthread_mutex_t = {Type = Recursive, Status = Acquired, possibly with waiters, Owner ID = -9536 (dead), Robust = Yes, Shared = Yes, Protocol = None, Times acquired by the owner = 32767}}, <No data fields>}, deferred = {<boost::intrusive::list_impl<boost::intrusive::mhtraits<DeferEvent, boost::intrusive::list_member_hook<>, &DeferEvent::list_hook>, long unsigned int, false, void>> = {static constant_time_size = false, static safemode_or_autounlink = true, data_ = {<boost::intrusive::mhtraits<DeferEvent, boost::intrusive::list_member_hook<>, &DeferEvent::list_hook>> = {static link_mode = boost::intrusive::safe_link}, root_plus_size_ = {<boost::intrusive::detail::size_holder<false, unsigned long, void>> = {<No data fields>}, m_header = {<boost::intrusive::list_node<void*>> = {next_ = 0x7fffffffdae0, prev_ = 0x7fffffffdc78}, <No data fields>}}}}, <No data fields>}, uring = std::unique_ptr<Uring::Manager> = {get() = 0xf0001}, now = {__d = {__r = -1}}, alive = false, quit = {_M_base = {static _S_alignment = 1, _M_i = 219}, static is_always_lock_free = true}, again = 255, busy = 255, uring_initialized = 255, poll_group = {epoll = {fd = {<FileDescriptor> = {fd = 17}, <No data fields>}}, static READ = 1, static WRITE = 4, static ERROR = 8, static HANGUP = 16}, poll_result = {events = {_M_elems = {{events = 4294959712, data = {ptr = 0x7fff, fd = 32767, u32 = 32767, u64 = 32767}}, {events = 0, data = {ptr = 0x7fffffffe290, fd = -7536, u32 = 4294959760, u64 = 140737488347792}}, {events = 4294959760, data = {ptr = 0xffffffff00007fff, fd = 32767, u32 = 32767, u64 = 18446744069414617087}}, {events = 0, data = {ptr = 0x7ffff3611fc7, fd = -211738681, u32 = 4083228615, u64 = 140737276616647}}, {events = 4294957888, data = {ptr = 0xf7fe039900007fff, fd = 32767, u32 = 32767, u64 = 17869724327117619199}}, {events = 32767, data = {ptr = 0x555500000001, fd = 1, u32 = 1, u64 = 93823560581121}}, {events = 4157987376, data = {ptr = 0xf3742ef400007fff, fd = 32767, u32 = 32767, u64 = 17542698074021855231}}, {events = 32767, data = {ptr = 0x7ffff7fe0399, fd = -134347879, u32 = 4160619417, u64 = 140737354007449}}, {events = 0, data = {ptr = 0xffffe27800000000, fd = 0, u32 = 0, u64 = 18446711603756793856}}, {events = 32767, data = {ptr = 0x0, fd = 0, u32 = 0, u64 = 0}}, {events = 4294958360, data = {ptr = 0x5000000007fff, fd = 32767, u32 = 32767, u64 = 1407374883586047}}, {events = 0, data = {ptr = 0xffffffffffffffff, fd = -1, u32 = 4294967295, u64 = 18446744073709551615}}, {events = 2, data = {ptr = 0x500000000, fd = 0, u32 = 0, u64 = 21474836480}}, {events = 0, data = {ptr = 0x7fffffffe300, fd = -7424, u32 = 4294959872, u64 = 140737488347904}}, {events = 64, data = {ptr = 0xffffe33000000000, fd = 0, u32 = 0, u64 = 18446712394030776320}}, {events = 32767, data = {ptr = 0x7fffffffe330, fd = -7376, u32 = 4294959920, u64 = 140737488347952}}}}, n_events = 4294967295}, thread = {id = 140737276616647}}}, <DatabaseListener> = {_vptr.DatabaseListener = 0x7fffffffdaa0}, <NeighborListener> = {_vptr.NeighborListener = 0x7fffffffde00}, <RemoteTagCacheHandler> = {_vptr.RemoteTagCacheHandler = 0x600000001}, io_thread = {event_loop = {<SocketMonitor> = {_vptr.SocketMonitor = 0x7ffff37774c0, fd = {<FileDescriptor> = {fd = 15}, <No data fields>}, loop = @0x7ffff3742ef4, scheduled_flags = 0, static READ = 1, static WRITE = 4, static ERROR = 8, static HANGUP = 16, static IMPLICIT_FLAGS = 24}, wake_fd = {fd = {<FileDescriptor> = {fd = 32767}, <No data fields>}}, timers = {<boost::intrusive::multiset_impl<boost::intrusive::bhtraits<TimerEvent, boost::intrusive::rbtree_node_traits<void*, false>, (boost::intrusive::link_mode_type)2, boost::intrusive::dft_tag, 3>, void, EventLoop::TimerCompare, unsigned long, false, void>> = {<boost::intrusive::bstree_impl<boost::intrusive::bhtraits<TimerEvent, boost::intrusive::rbtree_node_traits<void*, false>, (boost::intrusive::link_mode_type)2, boost::intrusive::dft_tag, 3>, void, EventLoop::TimerCompare, unsigned long, false, (boost::intrusive::algo_types)5, void>> = {<boost::intrusive::bstbase<boost::intrusive::bhtraits<TimerEvent, boost::intrusive::rbtree_node_traits<void*, false>, (boost::intrusive::link_mode_type)2, boost::intrusive::dft_tag, 3>, void, EventLoop::TimerCompare, false, unsigned long, (boost::intrusive::algo_types)5, void>> = {<boost::intrusive::bstbase_hack<boost::intrusive::bhtraits<TimerEvent, boost::intrusive::rbtree_node_traits<void*, false>, (boost::intrusive::link_mode_type)2, boost::intrusive::dft_tag, 3>, void, EventLoop::TimerCompare, false, unsigned long, (boost::intrusive::algo_types)5, void>> = {<boost::intrusive::bstbase2<boost::intrusive::bhtraits<TimerEvent, boost::intrusive::rbtree_node_traits<void*, false>, (boost::intrusive::link_mode_type)2, boost::intrusive::dft_tag, 3>, void, EventLoop::TimerCompare, (boost::intrusive::algo_types)5, void>> = {<boost::intrusive::detail::ebo_functor_holder<boost::intrusive::tree_value_compare<TimerEvent*, EventLoop::TimerCompare, boost::move_detail::identity<TimerEvent>, bool, true>, void, false>> = {<boost::intrusive::tree_value_compare<TimerEvent*, EventLoop::TimerCompare, boost::move_detail::identity<TimerEvent>, bool, true>> = {<boost::intrusive::detail::ebo_functor_holder<EventLoop::TimerCompare, void, false>> = {<EventLoop::TimerCompare> = {<No data fields>}, <No data fields>}, <No data fields>}, <No data fields>}, <boost::intrusive::bstbase3<boost::intrusive::bhtraits<TimerEvent, boost::intrusive::rbtree_node_traits<void*, false>, (boost::intrusive::link_mode_type)2, boost::intrusive::dft_tag, 3>, (boost::intrusive::algo_types)5, void>> = {holder = {<boost::intrusive::bhtraits<TimerEvent, boost::intrusive::rbtree_node_traits<void*, false>, (boost::intrusive::link_mode_type)2, boost::intrusive::dft_tag, 3>> = {<boost::intrusive::bhtraits_base<TimerEvent, boost::intrusive::rbtree_node<void*>*, boost::intrusive::dft_tag, 3>> = {<No data fields>}, static link_mode = boost::intrusive::auto_unlink}, root = {<boost::intrusive::rbtree_node<void*>> = {parent_ = 0x0, left_ = 0x7fffffffe318, right_ = 0x0, color_ = boost::intrusive::rbtree_node<void*>::red_t}, <No data fields>}}}, <No data fields>}, <No data fields>}, <No data fields>}, static constant_time_size = false, static safemode_or_autounlink = true}, <No data fields>}, <No data fields>}, idle = {<boost::intrusive::list_impl<boost::intrusive::mhtraits<IdleMonitor, boost::intrusive::list_member_hook<>, &IdleMonitor::list_hook>, long unsigned int, false, void>> = {static constant_time_size = false, static safemode_or_autounlink = true, data_ = {<boost::intrusive::mhtraits<IdleMonitor, boost::intrusive::list_member_hook<>, &IdleMonitor::list_hook>> = {static link_mode = boost::intrusive::safe_link}, root_plus_size_ = {<boost::intrusive::detail::size_holder<false, unsigned long, void>> = {<No data fields>}, m_header = {<boost::intrusive::list_node<void*>> = {next_ = 0x0, prev_ = 0x7fffffffe460}, <No data fields>}}}}, <No data fields>}, mutex = {<std::__mutex_base> = {_M_mutex = pthread_mutex_t = {Type = Normal, Status = Acquired, possibly with waiters, Owner ID = -8528, Robust = No, Shared = Yes, Protocol = None}}, <No data fields>}, deferred = {<boost::intrusive::list_impl<boost::intrusive::mhtraits<DeferEvent, boost::intrusive::list_member_hook<>, &DeferEvent::list_hook>, long unsigned int, false, void>> = {static constant_time_size = false, static safemode_or_autounlink = true, data_ = {<boost::intrusive::mhtraits<DeferEvent, boost::intrusive::list_member_hook<>, &DeferEvent::list_hook>> = {static link_mode = boost::intrusive::safe_link}, root_plus_size_ = {<boost::intrusive::detail::size_holder<false, unsigned long, void>> = {<No data fields>}, m_header = {<boost::intrusive::list_node<void*>> = {next_ = 0x0, prev_ = 0x0}, <No data fields>}}}}, <No data fields>}, uring = std::unique_ptr<Uring::Manager> = {get() = 0x0}, now = {__d = {__r = 140737488346784}}, alive = true, quit = {_M_base = {static _S_alignment = 1, _M_i = false}, static is_always_lock_free = true}, again = false, busy = false, uring_initialized = 3, poll_group = {epoll = {fd = {<FileDescriptor> = {fd = -210275136}, <No data fields>}}, static READ = 1, static WRITE = 4, static ERROR = 8, static HANGUP = 16}, poll_result = {events = {_M_elems = {{events = 4, data = {ptr = 0xffffffff00000000, fd = 0, u32 = 0, u64 = 18446744069414584320}}, {events = 32767, data = {ptr = 0x40, fd = 64, u32 = 64, u64 = 64}}, {events = 2, data = {ptr = 0xffffffff00000000, fd = 0, u32 = 0, u64 = 18446744069414584320}}, {events = 4294967295, data = {ptr = 0xffffffff00000000, fd = 0, u32 = 0, u64 = 18446744069414584320}}, {events = 0, data = {ptr = 0x200000000, fd = 0, u32 = 0, u64 = 8589934592}}, {events = 48, data = {ptr = 0x7fffffffe500, fd = -6912, u32 = 4294960384, u64 = 140737488348416}}, {events = 4036417265, data = {ptr = 0xffffdeb100007fff, fd = 32767, u32 = 32767, u64 = 18446707450523451391}}, {events = 32767, data = {ptr = 0x7ffff3790890 <funlockfile>, fd = -210171760, u32 = 4084795536, u64 = 140737278183568}}, {events = 4294959920, data = {ptr = 0x7fff, fd = 32767, u32 = 32767, u64 = 32767}}, {events = 0, data = {ptr = 0x0, fd = 0, u32 = 0, u64 = 0}}, {events = 4082882348, data = {ptr = 0x7fff, fd = 32767, u32 = 32767, u64 = 32767}}, {events = 0, data = {ptr = 0x1, fd = 1, u32 = 1, u64 = 1}}, {events = 40, data = {ptr = 0xffffe50000000030, fd = 48, u32 = 48, u64 = 18446714386895601712}}, {events = 32767, data = {ptr = 0x7fffffffe430, fd = -7120, u32 = 4294960176, u64 = 140737488348208}}, {events = 479434334, data = {ptr = 0x100000000, fd = 0, u32 = 0, u64 = 4294967296}}, {events = 0, data = {ptr = 0x7ffff35bf384, fd = -212077692, u32 = 4082889604, u64 = 140737276277636}}}}, n_events = 140737279724448}, thread = {id = 1}}, thread = {f = {instance_ = 0x7ffff7fdc654, function = 0x8ce}, handle = 140737276335936, inside_handle = 140737279680272}, realtime = 72}, rtio_thread = {event_loop = {<SocketMonitor> = {_vptr.SocketMonitor = 0x7fffffffde44, fd = {<FileDescriptor> = {fd = -208587776}, <No data fields>}, loop = @0x1, scheduled_flags = 0, static READ = 1, static WRITE = 4, static ERROR = 8, static HANGUP = 16, static IMPLICIT_FLAGS = 24}, wake_fd = {fd = {<FileDescriptor> = {fd = 32767}, <No data fields>}}, timers = {<boost::intrusive::multiset_impl<boost::intrusive::bhtraits<TimerEvent, boost::intrusive::rbtree_node_traits<void*, false>, (boost::intrusive::link_mode_type)2, boost::intrusive::dft_tag, 3>, void, EventLoop::TimerCompare, unsigned long, false, void>> = {<boost::intrusive::bstree_impl<boost::intrusive::bhtraits<TimerEvent, boost::intrusive::rbtree_node_traits<void*, false>, (boost::intrusive::link_mode_type)2, boost::intrusive::dft_tag, 3>, void, EventLoop::TimerCompare, unsigned long, false, (boost::intrusive::algo_types)5, void>> = {<boost::intrusive::bstbase<boost::intrusive::bhtraits<TimerEvent, boost::intrusive::rbtree_node_traits<void*, false>, (boost::intrusive::link_mode_type)2, boost::intrusive::dft_tag, 3>, void, EventLoop::TimerCompare, false, unsigned long, (boost::intrusive::algo_types)5, void>> = {<boost::intrusive::bstbase_hack<boost::intrusive::bhtraits<TimerEvent, boost::intrusive::rbtree_node_traits<void*, false>, (boost::intrusive::link_mode_type)2, boost::intrusive::dft_tag, 3>, void, EventLoop::TimerCompare, false, unsigned long, (boost::intrusive::algo_types)5, void>> = {<boost::intrusive::bstbase2<boost::intrusive::bhtraits<TimerEvent, boost::intrusive::rbtree_node_traits<void*, false>, (boost::intrusive::link_mode_type)2, boost::intrusive::dft_tag, 3>, void, EventLoop::TimerCompare, (boost::intrusive::algo_types)5, void>> = {<boost::intrusive::detail::ebo_functor_holder<boost::intrusive::tree_value_compare<TimerEvent*, EventLoop::TimerCompare, boost::move_detail::identity<TimerEvent>, bool, true>, void, false>> = {<boost::intrusive::tree_value_compare<TimerEvent*, EventLoop::TimerCompare, boost::move_detail::identity<TimerEvent>, bool, true>> = {<boost::intrusive::detail::ebo_functor_holder<EventLoop::TimerCompare, void, false>> = {<EventLoop::TimerCompare> = {<No data fields>}, <No data fields>}, <No data fields>}, <No data fields>}, <boost::intrusive::bstbase3<boost::intrusive::bhtraits<TimerEvent, boost::intrusive::rbtree_node_traits<void*, false>, (boost::intrusive::link_mode_type)2, boost::intrusive::dft_tag, 3>, (boost::intrusive::algo_types)5, void>> = {holder = {<boost::intrusive::bhtraits<TimerEvent, boost::intrusive::rbtree_node_traits<void*, false>, (boost::intrusive::link_mode_type)2, boost::intrusive::dft_tag, 3>> = {<boost::intrusive::bhtraits_base<TimerEvent, boost::intrusive::rbtree_node<void*>*, boost::intrusive::dft_tag, 3>> = {<No data fields>}, static link_mode = boost::intrusive::auto_unlink}, root = {<boost::intrusive::rbtree_node<void*>> = {parent_ = 0x7ffff35cd740, left_ = 0x7ffff7fdc24c, right_ = 0x6e471454, color_ = boost::intrusive::rbtree_node<void*>::black_t}, <No data fields>}}}, <No data fields>}, <No data fields>}, <No data fields>}, static constant_time_size = false, static safemode_or_autounlink = true}, <No data fields>}, <No data fields>}, idle = {<boost::intrusive::list_impl<boost::intrusive::mhtraits<IdleMonitor, boost::intrusive::list_member_hook<>, &IdleMonitor::list_hook>, long unsigned int, false, void>> = {static constant_time_size = false, static safemode_or_autounlink = true, data_ = {<boost::intrusive::mhtraits<IdleMonitor, boost::intrusive::list_member_hook<>, &IdleMonitor::list_hook>> = {static link_mode = boost::intrusive::safe_link}, root_plus_size_ = {<boost::intrusive::detail::size_holder<false, unsigned long, void>> = {<No data fields>}, m_header = {<boost::intrusive::list_node<void*>> = {next_ = 0x7ffff35bed60, prev_ = 0x7fffeca05ae0}, <No data fields>}}}}, <No data fields>}, mutex = {<std::__mutex_base> = {_M_mutex = pthread_mutex_t = {Type = Recursive, Status = Acquired, possibly with no waiters, Owner ID = -134363564, Robust = No, Shared = No, Protocol = Priority protect, Priority ceiling = 0}}, <No data fields>}, deferred = {<boost::intrusive::list_impl<boost::intrusive::mhtraits<DeferEvent, boost::intrusive::list_member_hook<>, &DeferEvent::list_hook>, long unsigned int, false, void>> = {static constant_time_size = false, static safemode_or_autounlink = true, data_ = {<boost::intrusive::mhtraits<DeferEvent, boost::intrusive::list_member_hook<>, &DeferEvent::list_hook>> = {static link_mode = boost::intrusive::safe_link}, root_plus_size_ = {<boost::intrusive::detail::size_holder<false, unsigned long, void>> = {<No data fields>}, m_header = {<boost::intrusive::list_node<void*>> = {next_ = 0x1, prev_ = 0x7ffff35bec14}, <No data fields>}}}}, <No data fields>}, uring = std::unique_ptr<Uring::Manager> = {get() = 0x7ffff3908270}, now = {__d = {__r = 1}}, alive = 84, quit = {_M_base = {static _S_alignment = 1, _M_i = 198}, static is_always_lock_free = true}, again = 253, busy = 247, uring_initialized = 255, poll_group = {epoll = {fd = {<FileDescriptor> = {fd = 1778}, <No data fields>}}, static READ = 1, static WRITE = 4, static ERROR = 8, static HANGUP = 16}, poll_result = {events = {_M_elems = {{events = 4082947904, data = {ptr = 0xf38fdf1000007fff, fd = 32767, u32 = 32767, u64 = 17550491532698615807}}, {events = 32767, data = {ptr = 0x7fffffffdf08, fd = -8440, u32 = 4294958856, u64 = 140737488346888}}, {events = 4294958852, data = {ptr = 0xeca05e2800007fff, fd = 32767, u32 = 32767, u64 = 17050731715116433407}}, {events = 32767, data = {ptr = 0x7fffffffdeb2, fd = -8526, u32 = 4294958770, u64 = 140737488346802}}, {events = 0, data = {ptr = 0xf35cd74000007fff, fd = 32767, u32 = 32767, u64 = 17536127718951780351}}, {events = 32767, data = {ptr = 0x7ffff35bf5e0, fd = -212077088, u32 = 4082890208, u64 = 140737276278240}}, {events = 4086525160, data = {ptr = 0x71dd557f00007fff, fd = 32767, u32 = 32767, u64 = 8204808100088152063}}, {events = 0, data = {ptr = 0x1c77555, fd = 29848917, u32 = 29848917, u64 = 29848917}}, {events = 4294958852, data = {ptr = 0xea1448e000007fff, fd = 32767, u32 = 32767, u64 = 16867186631319257087}}, {events = 32767, data = {ptr = 0x7fffffffdfd0, fd = -8240, u32 = 4294959056, u64 = 140737488347088}}, {events = 4086334064, data = {ptr = 0xffffdfc000007fff, fd = 32767, u32 = 32767, u64 = 18446708614459588607}}, {events = 32767, data = {ptr = 0x11b, fd = 283, u32 = 283, u64 = 283}}, {events = 1, data = {ptr = 0xf35bf5a400000000, fd = 0, u32 = 0, u64 = 17535879658820599808}}, {events = 0, data = {ptr = 0x0, fd = 0, u32 = 0, u64 = 0}}, {events = 1, data = {ptr = 0x71dd557f00000000, fd = 0, u32 = 0, u64 = 8204808100088119296}}, {events = 0, data = {ptr = 0x7ffff3c8cce8, fd = -204944152, u32 = 4090023144, u64 = 140737283411176}}}}, n_events = 140737279913192}, thread = {id = 140737488347240}}, thread = {f = {instance_ = 0x7fffffffdfc0, function = 0x7fffffffdfd0}, handle = 140737353994113, inside_handle = 64}, realtime = 128}, systemd_watchdog = {timer = {<boost::intrusive::set_base_hook<boost::intrusive::link_mode<(boost::intrusive::link_mode_type)2> >> = {<boost::intrusive::generic_hook<(boost::intrusive::algo_types)5, boost::intrusive::rbtree_node_traits<void*, false>, boost::intrusive::dft_tag, (boost::intrusive::link_mode_type)2, (boost::intrusive::base_hook_type)3>> = {<boost::intrusive::node_holder<boost::intrusive::rbtree_node<void*>, boost::intrusive::dft_tag, 3>> = {<boost::intrusive::rbtree_node<void*>> = {parent_ = 0x1, left_ = 0x0, right_ = 0x1, color_ = (unknown: 0xf3c8c980)}, <No data fields>}, <boost::intrusive::hook_tags_definer<boost::intrusive::generic_hook<(boost::intrusive::algo_types)5, boost::intrusive::rbtree_node_traits<void*, false>, boost::intrusive::dft_tag, (boost::intrusive::link_mode_type)2, (boost::intrusive::base_hook_type)3>, 3>> = {<No data fields>}, <No data fields>}, <No data fields>}, loop = @0x7fffffffe004, callback = {instance_ = 0x7fffea141380, function = 0x7ffff3c8c980}, due = {__d = {__r = 4294967296}}}, interval = {__r = 140737283411176}}, input_cache = std::unique_ptr<InputCacheManager> = {get() = 0x0}, idle_monitor = {defer = {list_hook = {<boost::intrusive::generic_hook<(boost::intrusive::algo_types)0, boost::intrusive::list_node_traits<void*>, boost::intrusive::member_tag, (boost::intrusive::link_mode_type)1, (boost::intrusive::base_hook_type)0>> = {<boost::intrusive::list_node<void*>> = {next_ = 0x7ffff7d7cf4b, prev_ = 0x2b43e9ed}, <boost::intrusive::hook_tags_definer<boost::intrusive::generic_hook<(boost::intrusive::algo_types)0, boost::intrusive::list_node_traits<void*>, boost::intrusive::member_tag, (boost::intrusive::link_mode_type)1, (boost::intrusive::base_hook_type)0>, 0>> = {<No data fields>}, <No data fields>}, <No data fields>}, loop = @0xffffffff, callback = {instance_ = 0x7fffffffe004, function = 0x7ffff35c9c90}}, callback = {instance_ = 0x7ffff38fdf10, function = 0x7ffff7d7c550}, pending_mask = {<std::__atomic_base<unsigned int>> = {static _S_alignment = 4, _M_i = 4294959296}, static is_always_lock_free = true}}, neighbors = std::unique_ptr<NeighborGlue> = {get() = 0x11b}, database = std::unique_ptr<Database> = {get() = 0x7fffffffe080}, storage = 0xffffe090, update = 0x0, remote_tag_cache = std::unique_ptr<RemoteTagCache> = {get() = 0x40}, client_list = std::unique_ptr<ClientList> = {get() = 0x7ffff3b05420 <clock_gettime@got.plt>}, partitions = std::__cxx11::list<error reading variable: Cannot access memory at address 0xc>, state_file = std::unique_ptr<StateFile> = {get() = 0x7fffffffe5b8}, sticker_database = std::unique_ptr<StickerDatabase> = {get() = 0x5555556fc2b8}} config = {replay_gain = {static DEFAULT_LIMIT = true, preamp = 1, missing_preamp = 1, limit = true}} options = {kill = false, daemon = true, log_stderr = false, verbose = false} raw_config = {params = {_M_elems = {std::forward_list = {[0] = {value = "/var/lib/mpd/music", line = 1}}, std::forward_list = {[0] = {value = "/var/lib/mpd/playlists", line = 2}}, empty std::forward_list, empty std::forward_list, std::forward_list = {[0] = {value = "/var/lib/mpd/tag_cache", line = 3}}, std::forward_list = {[0] = {value = "/var/lib/mpd/sticker.sql", line = 6}}, empty std::forward_list, std::forward_list = {[0] = {value = "/run/mpd/pid", line = 4}}, std::forward_list = {[0] = {value = "/var/lib/mpd/state", line = 5}}, empty std::forward_list, empty std::forward_list, std::forward_list = {[0] = {value = "mpd", line = 8}}, empty std::forward_list <repeats 30 times>, std::forward_list = {[0] = {value = "artist,album,title,track,artistsort,albumartist,title,composersort", line = 9}}, empty std::forward_list, empty std::forward_list, empty std::forward_list, empty std::forward_list, empty std::forward_list, empty std::forward_list, empty std::forward_list}}, blocks = {_M_elems = {empty std::forward_list, empty std::forward_list, empty std::forward_list, empty std::forward_list, empty std::forward_list, empty std::forward_list, empty std::forward_list, empty std::forward_list, empty std::forward_list}}} #8 MainOrThrow(int, char**) (argc=<optimized out>, argv=<optimized out>) at ../src/Main.cxx:605 options = {kill = false, daemon = true, log_stderr = false, verbose = false} raw_config = {params = {_M_elems = {std::forward_list = {[0] = {value = "/var/lib/mpd/music", line = 1}}, std::forward_list = {[0] = {value = "/var/lib/mpd/playlists", line = 2}}, empty std::forward_list, empty std::forward_list, std::forward_list = {[0] = {value = "/var/lib/mpd/tag_cache", line = 3}}, std::forward_list = {[0] = {value = "/var/lib/mpd/sticker.sql", line = 6}}, empty std::forward_list, std::forward_list = {[0] = {value = "/run/mpd/pid", line = 4}}, std::forward_list = {[0] = {value = "/var/lib/mpd/state", line = 5}}, empty std::forward_list, empty std::forward_list, std::forward_list = {[0] = {value = "mpd", line = 8}}, empty std::forward_list <repeats 30 times>, std::forward_list = {[0] = {value = "artist,album,title,track,artistsort,albumartist,title,composersort", line = 9}}, empty std::forward_list, empty std::forward_list, empty std::forward_list, empty std::forward_list, empty std::forward_list, empty std::forward_list, empty std::forward_list}}, blocks = {_M_elems = {empty std::forward_list, empty std::forward_list, empty std::forward_list, empty std::forward_list, empty std::forward_list, empty std::forward_list, empty std::forward_list, empty std::forward_list, empty std::forward_list}}} #9 0x00005555555a2deb in mpd_main(int, char**) (argc=<optimized out>, argv=<optimized out>) at ../src/Main.cxx:613 at_scope_exit_610 = {<> = {<No data fields>}, enabled = true} #10 0x00007ffff35dfe4a in __libc_start_main () at /lib/x86_64-linux-gnu/libc.so.6 #11 0x00005555555a179a in _start ()
Your MPD version is too old and unsupported.
Bug report
Describe the bug
Some choices of
metadata_to_use
cause mpd to reproducibly segfault on startup. A minimal combination that I have found to work is:Interestingly, the following does not segfault:
but instead gives
exception: error parsing metadata item "(null)"
.Here is my configuration file:
Version
Log