I wanted to put up a post for future search engines. In all cases below, when I am talking about MusicIP, I mean MusicIp headless on a linux box. I used a windows box and the GUI to scan/generate muscip tags and archive them into the music files.
I recently installed MusicIP on a Centos7 box, with music stored on a large file system, and encountered problems. Searching didn't turn up any solution, but after a little investigation, I was able to figure out the issue, and get it working.
If you have MusicIP working, you can skip this post. If you've installed the headless server, and you get "Error loading html." when you visit http://host:10002/, or that works, but every time you enter a directory to scan to create a musicip database, it doesn't appear to do anything, then this may help.
Root cause: MusicIP is a compiled binary with older code. It references files with "32 bit inodes" which in some cases have been replaced by "64 bit inodes" on newer filesystems that are large (in the case of Centos7, the default XFS greater than 1 tb will get 64bit inodes). The program doesn't deal with the 64bit returned value, and fails in a relatively silent way. You already need to install the 32bit libraries to get musicip running, but that's been documented in things I've already found.
The normal fix for this is to recompile with more modern libraries, but they are not available to best of my knowledge as this is abandoned commercial software with no source code.
My fix was to install the headless client into /opt/musicip, which is located on a small partition, so not using the inode64. You can follow the normal instructions from the musicip setup, just ensure you are on a "smaller", less than a 1tb sized drive. You are on the wrong size filesystem if running the app gives you the "Error loading html." instead of the normal html page.
I then mounted my music via a NFS "loopback" mount my music with NFS_INO64 turned off, as described here - https://access.redhat.com/solutions/22256 - this converts the 64bit file references to 32bit for you. I'm sure there is a performance impact of some sort, but it's been minor enough that I haven't seen any issues.
You need to enable the NFS server, and edit /etc/exports, and add your music collection
Disable the inode64, as detailed in the redhat link above:
I am not documenting how to enable and startup an NFS server right now, there are numerous searching instructions for that. You may need to reboot at this point to ensure the module change above works (advanced users can just unload the modules and reload it).
Then you can create a directory and mount it:
I'm assuming your music files have all the music-ip data stored in tags already from the GUI app.
Now run the musicip server, validate it works at http://hostname:10002/, and enter "/music" into the scan for music. It should change the screen slightly and show you that it's scanning. When it's done, you should be able to use the "search songs" to see it find songs in your collection.
Following any of the other directions out there should be good at this point. If you have questions, or spotted something wrong please feel free to post.
Hope that helps someone in the future.
I recently installed MusicIP on a Centos7 box, with music stored on a large file system, and encountered problems. Searching didn't turn up any solution, but after a little investigation, I was able to figure out the issue, and get it working.
If you have MusicIP working, you can skip this post. If you've installed the headless server, and you get "Error loading html." when you visit http://host:10002/, or that works, but every time you enter a directory to scan to create a musicip database, it doesn't appear to do anything, then this may help.
Root cause: MusicIP is a compiled binary with older code. It references files with "32 bit inodes" which in some cases have been replaced by "64 bit inodes" on newer filesystems that are large (in the case of Centos7, the default XFS greater than 1 tb will get 64bit inodes). The program doesn't deal with the 64bit returned value, and fails in a relatively silent way. You already need to install the 32bit libraries to get musicip running, but that's been documented in things I've already found.
The normal fix for this is to recompile with more modern libraries, but they are not available to best of my knowledge as this is abandoned commercial software with no source code.
My fix was to install the headless client into /opt/musicip, which is located on a small partition, so not using the inode64. You can follow the normal instructions from the musicip setup, just ensure you are on a "smaller", less than a 1tb sized drive. You are on the wrong size filesystem if running the app gives you the "Error loading html." instead of the normal html page.
I then mounted my music via a NFS "loopback" mount my music with NFS_INO64 turned off, as described here - https://access.redhat.com/solutions/22256 - this converts the 64bit file references to 32bit for you. I'm sure there is a performance impact of some sort, but it's been minor enough that I haven't seen any issues.
You need to enable the NFS server, and edit /etc/exports, and add your music collection
Code:
/path/to/music 127.0.0.1(ro)
Code:
echo "options nfs enable_ino64=0" > /etc/modprobe.d/nfs.conf
Then you can create a directory and mount it:
Code:
mkdir /music
mount -t nfs localhost:/path/to/music /music
Now run the musicip server, validate it works at http://hostname:10002/, and enter "/music" into the scan for music. It should change the screen slightly and show you that it's scanning. When it's done, you should be able to use the "search songs" to see it find songs in your collection.
Following any of the other directions out there should be good at this point. If you have questions, or spotted something wrong please feel free to post.
Hope that helps someone in the future.