After scanning an initial set of albums, attempts to bring up my artist list (via both Tempo/Subsonic) would fail with a network error. On reviewing gonic logs, I found the following:
After some further tests I isolated this down to a single album and artist - N O Ć [EP]' by DON'T//BE// ⚜⚜⚜ - the failure resulting from the double-slashes in the artist name. The current multiParser function (with configured '/' delim) will split the double-slash into an empty string. When this "" reaches the unicode index check (lowerUDecOrHash), it panics with the above and breaks the response.
This PR implements two remediations:
Adds a function that will delete any/all empty strings from the parse after a delimiter split.
Adds a general recovery to the index check, as the (now minimized) breakage of an indexed item is likely preferable than loss of the full artist index response for a client.
While the above restores the artist index, this particular artist will still be split into three separate objects (albeit functionally). Perhaps not ideal, but also an extremely niche case that could likely be addressed at a later time. I'd otherwise expect this to be seen if someone had a typo in their tags.
Hi! This project is pretty great, thanks for it.
After scanning an initial set of albums, attempts to bring up my artist list (via both Tempo/Subsonic) would fail with a network error. On reviewing gonic logs, I found the following:
After some further tests I isolated this down to a single album and artist - N O Ć [EP]' by DON'T//BE// ⚜⚜⚜ - the failure resulting from the double-slashes in the artist name. The current multiParser function (with configured '/' delim) will split the double-slash into an empty string. When this
""
reaches the unicode index check (lowerUDecOrHash), it panics with the above and breaks the response.This PR implements two remediations:
While the above restores the artist index, this particular artist will still be split into three separate objects (albeit functionally). Perhaps not ideal, but also an extremely niche case that could likely be addressed at a later time. I'd otherwise expect this to be seen if someone had a typo in their tags.