MPD DB Update가 너무 오래 걸리거나 실패한다면 의심하자. 손상된 음원 파일 (EasyMPD 1.04b 버전부터 가능)

MPD가 DB Update를 할 때 손상된 음원 파일을 만난다면 그 파일은 무시하고 다음 파일로 넘어가야 합니다. 하지만 일부 손상된 음원파일의 경우, MPD는 그 음원 파일의 정보를 읽어들이기 위해 끊임없이 노력합니다. 이경우 DB Update는 더이상 진행이 되지 않으며, Alix의 CPU 부하는 거의 100%까지 올라가게 되며, 결국은 MPD가 죽어버리는 일이 발생합니다.

이렇듯 한두 개의 손상된 음원 파일 때문에 DB를 정상적으로 생성할 수 없어서, 안타깝게도, Alix의 사용을 포기하는 경우도 생겨나게 됩니다. 손상된 음원파일 때문이라는 걸 알더라도, 그 손상된 음원을 찾아내는 작업은 쉬운일이 아니기 때문입니다.

이런 MPD의 DB Update문제는 오래 전부터 사용자의 개선 요청이 있었지만, MPD 개발자 측에서는 MPD의 문제 보다는 MPD에 사용되는 다른 라이브러리 때문이라는 이유로 아직 해결되지 못하고 있는 실정입니다. 이 문제를 해결하기 위해 EasyMPD에서도 전부터 고민을 해 왔지만 방법을 찾지 못하다가 이번에 좋은 방법을 찾아내어 EasyMPD 프로그램 Update에 적용하게 되었습니다.

EasyMPD에서는 DB Update 중 손상된 음원파일을 만나면, 다음 DB Update에서 그 파일을 다시 읽지 않도록 그 음원 파일의 확장자를 자동 변경하고 MPD DB Update를 처음부터 다시 시작합니다. 하지만 손상된 음원 파일이 많은 경우 파일명을 변경하고 처음부터 DB Update를 다시 시작하는 것을 반복해야 하므로 DB Update하는데 시간이 많이 걸리게 됩니다. 통상적으로 1테라 정도의 음원을 가지고 있는 사용자라면 문제가 없는경우 초기 DB Update 시 3~4시간 정도 걸립니다. 하지만 손상된 파일이 중간 중간 몇개가 있다면 몇일이 걸릴 수 도 있습니다.

손상된 파일을 찾아내는 이런 기능은 EeasyMPD WEB GUI의 MPD -> MPD Configuration에서 "Remove Corrupted Music File"을 선택하고 Save를 클릭하면 활성화 됩니다.

어떤 음원 파일이 손상되어 DB Update 도중 확장자가 변경되었는지를 확인하려면, DB Backup 폴더 안의 "corrupt_file.txt"를 열어 내용을 확인 하면됩니다. DB Update가 끝나지 않고 너무 오래 걸린다면 수시로 이 파일을 열어보고 문제되는 폴더를 다른 곳으로 옮기던지 지우면 DB Update를 더욱 빠르게 할 수 있습니다. DB Update가 끝나고 이 파일이 생성되지 않았다면 손상된 음원 파일이 없는 경우입니다.



손상된 음원 파일은 확장자가 "_corrupt"로 변경됩니다.

손상된 파일이 한두 개 밖에 없다면 DB Update를 시켜 놓고 EasyMPD에서 자동으로 손상된 파일을 제거하게 두고 기다려도 크게 상관은 없습니다. 하지만 손상된 파일이 많다면, DB Update에 몇일이 소요 될 수도 잆습니다.
EasyMPD는 손상된 파일을 찾아내고 그 파일의 확장자를 변경한 후, DB Update를 다시 처음부터 진행하기 때문입니다. 문제가 없다면 4시간이 소요될 DB Update가 10개의 손상된 파일이 있다면 최장 40시간이 소요될 수 도 있는 것이죠. 이런 경우, 손상된 파일이 발견되었다면 그 파일이 있던 폴더안의 모든 파일을 제거하는 것도 시간을 줄일 수 있는 좋은 방법입니다.

EasyMPD에서는 MPD가 DB Update하고 있을 때 현재 읽고 있는 파일이 어떤 것인지 실시간으로 확인이 가능합니다. (Version 1.2.0 부터 가능)
MPD가 DB Update 중일 때 EasyMPD WEB GUI를 열어 보면, 첫페이지(System -> Status)에 그림과 같이 "현재 MPD DB Update 중입니다."라고 나오고 그 옆에 "진행 상태 확인"이라는 링크가 생겨나게 됩니다.

이 "진행 상태 확인" 링크를 클릭하면, 아래 그림과 같이 MPD가 현재 읽고 있는 파일을 실시간으로 확인 할 수 있습니다.

정상이라면 읽고 있는 파일은 계속 바뀌어야 합니다. 만약 바뀌지 않고 한가지 파일에서 계속 머물러있다면 그 파일은 손상된 파일로 의심해봐야 합니다. (단, 현재 MPD가 플레이 중이거나 플레이 중 Pause로 중단된 경우에도 변경되지 않고 계속 머물러 있을 수 있습니다. )

이 현황을 지켜 본다면 DB Update 시 문제를 발생시키는 파일을 찾아내는데 도움이 될것 입니다.