On Tue, May 23, 2017 at 05:05:38PM +0200, Jeremie Courreges-Anglas wrote: > Andre Smagin <[email protected]> writes: > > > On Sat, 13 May 2017 18:35:41 +0200 > > Antoine Jacoutot <[email protected]> wrote: > > > >> Hi. > >> > >> audio/mpd is pretty useless on 6.1 i386, it cannot update it's database. > > > > Hello. > > > > mpd has issues updating the database on amd64 as well. > > > > If a directory in the root of music_directory (/storage/music in my case) > > is deleted and database update requested, mpd dies with this in the log: > > > > terminate called after throwing an instance of 'std::system_error' > > what(): Failed to access /storage/music/test: No such file or directory > > > > If a nested directory is deleted, mpd does not die on db update, > > but fails to remove the deleted directory from the database: > > > > May 22 09:48 : exception: Failed to access /storage/music/dts/test: No such > > file or directory > > > > Requesting an update specifically on the deleted directory works fine: > > mpc update test > > May 22 09:50 : update: removing test/The Four Seasons (Blu-ray, DTS, > > 2011)/Antonio Vialdi - The Four Seasons.flac > > > > This issue appears to exist in mpd-0.20.5, mpd-0.20.6, and mpd-0.20.8. > > > > Reverting back to mpd-0.19.21 appears to fix the problem. > > cvs up -D "Feb 21"; make install > > > > An addition, a thing I have not noticed before: mpd-0.19.21 is less > > forgiving to the filenames with, what I assume, are illegal UTF-8 > > characters than the newer releases. Upon downgrading and requesting > > a database update, I had a few entries in the log like this: > > > > May 22 09:54 : update: removing flac/Classical/Edvard Grieg/The Grieg > > Edition/cd20 - Music for Strings/04 - ÅSe's Death, Op.46 No. 2.flac > > May 22 09:54 : update: removing flac/Classical/Gustav > > Mahler/Symphonies/Symphony No. 9/02 - Symphony No. 9 In D Major: II. Im > > Tempo Eines GemäChlichen LäNders.flac > > May 22 09:54 : update: removing mp3/_Korean/Park Hwa Yobi/5집/14 - 36.5°.mp3 > > > > I suspect that the filesystem walking code had changed since mpd-0.19.21. > > I just hit this on amd64, update with Ctrl+u in ncmpc. A backtrace with > egdb gives more details: > > Thread 2 (thread 401205): > #0 0x00000f5a1a67463a in thrkill () at {standard input}:5 > #1 0x00000f5a1a69b379 in *_libc_abort () at > /usr/src/lib/libc/stdlib/abort.c:52 > #2 0x00000f59f7765ef5 in __gnu_cxx::__verbose_terminate_handler () at > /usr/obj/ports/gcc-4.9.4/gcc-4.9.4/libstdc++-v3/libsupc++/vterminate.cc:95 > #3 0x00000f59f7763a88 in __cxxabiv1::__terminate (handler=<optimized out>) > at > /usr/obj/ports/gcc-4.9.4/gcc-4.9.4/libstdc++-v3/libsupc++/eh_terminate.cc:47 > #4 0x00000f59f7763af1 in std::terminate () at > /usr/obj/ports/gcc-4.9.4/gcc-4.9.4/libstdc++-v3/libsupc++/eh_terminate.cc:57 > #5 0x00000f59f7763d08 in __cxxabiv1::__cxa_throw (obj=0xf599b607980, > tinfo=0xf59f7a6ec60 <typeinfo for std::system_error>, dest=0xf59f77c3ff0 > <std::system_error::~system_error()>) > at > /usr/obj/ports/gcc-4.9.4/gcc-4.9.4/libstdc++-v3/libsupc++/eh_throw.cc:87 > #6 0x00000f575372ea85 in FileInfo::FileInfo (this=<optimized out>, path=..., > follow_symlinks=<optimized out>) at ./src/fs/FileInfo.hxx:72 > #7 0x00000f575373cbed in LocalStorage::GetInfo(char const*, bool) () at > /usr/local/include/c++/4.9.4/bits/basic_string.h:249 > #8 0x00000f575372fb72 in GetDirectoryChildInfo (storage=..., directory=..., > name_utf8=0xf59fd3e7838 "audio.mp2") at src/db/update/UpdateIO.cxx:77 > #9 directory_child_is_regular (storage=..., directory=..., > name_utf8=0xf59fd3e7838 "audio.mp2") at src/db/update/UpdateIO.cxx:84 > #10 0x00000f57537228d3 in > UpdateWalk::PurgeDeletedFromDirectory(Directory&)::{lambda(Song&)#1}::operator()(Song&) > const (song=..., this=<optimized out>) at src/db/update/Walk.cxx:116 > #11 > Directory::ForEachSongSafe<UpdateWalk::PurgeDeletedFromDirectory(Directory&)::{lambda(Song&)#1}>(UpdateWalk::PurgeDeletedFromDirectory(Directory&)::{lambda(Song&)#1}&&) > (this=<optimized out>, t=<optimized out>) > at ./src/db/plugins/simple/Directory.hxx:222 > #12 UpdateWalk::PurgeDeletedFromDirectory (this=0xf5a30e59d40, directory=...) > at src/db/update/Walk.cxx:115 > #13 0x00000f575372233f in UpdateWalk::UpdateDirectory (this=0xf5a30e59d40, > directory=..., exclude_list=..., info=...) at src/db/update/Walk.cxx:358 > #14 0x00000f5753722a72 in UpdateWalk::Walk (this=0xf5a30e59d40, root=..., > path=<optimized out>, discard=<optimized out>) at src/db/update/Walk.cxx:499 > #15 0x00000f575372145b in UpdateService::Task() () at > /usr/local/include/c++/4.9.4/bits/basic_string.h:249 > #16 0x00000f57537776fe in Thread::ThreadProc (ctx=0x0) at > src/thread/Thread.cxx:105 > #17 0x00000f59b24768ce in _rthread_start (v=0x0) at > /usr/src/lib/librthread/rthread.c:114 > #18 0x00000f5a1a6919bb in __tfork_thread () at > /usr/src/lib/libc/arch/amd64/sys/tfork_thread.S:75 > #19 0x0000000000000000 in ?? () > > The exception comes from an audio file that I have removed since the > last db update. That kinda makes your music collection append-only... > I just removed the existing db file for now.
I've also seen this a while ago but here it didnt crash, it refused to update the db further. 0.20.6 here (note that upstream is at .8) May 23 18:18 : exception: Failed to access /mnt/data/music/Volo/Blancs manteaux � Volo: No such file or directory (yeah, that dir was renamed on the fs for having the wrong encoding) Either way, this is something that should be probably taken upstream, which recently moved to a selfhosted mantis (which got pwned) to github .. so https://github.com/MusicPlayerDaemon/MPD/issues that is. Landry
