devsnd / cherrymusic

Stream your own music collection to all your devices! The easy to use free and open-source music streaming server.
http://www.fomori.org/cherrymusic
GNU General Public License v3.0
1.03k stars 189 forks source link

Unicode and Server Retries #710

Closed yorkadam closed 6 years ago

yorkadam commented 6 years ago

This issue appears related to the following issues but with different side side issues.

595 #611 #642

Cherry Music Information Cherry Music Version 0.39.1 CherryPy: 8.1.2 Python: CPython 3.4.2 Platform: Linux-3.16.0-4-amd64-x86_64-with-debian-8.10 locale: en_US, UTF-8 Default en_US, UTF-8 FileSystem Encoding utf-8 Decoders: mp3, ogg, oga, flac, m4a,wav Browser: Firefox 52.5.2 (64-bit)

Issue Files with Unicode in file name and title doesn't play and causes excessive retries. Retries continued ever after removing from song from play list.

Error Information

Front End Error (logged over 2000 retries to JavaScript console) [see screen shot] 500 Internal Server Error 5ms] Playback failed! trying to resume from the point it failed. cherrymusic.dist.js:1367:177 Clarification: This error continued until I closed the browser window after attempting more than 2000 retries.

cherrymusicscreenshot

File and Title Names FileName 01 Opening Medley- Dóchas-Kind of Laois-Paddy's Jig-O'Keefes-Chattering.flac Title Opening Medley: Dóchas/Kind of Laois/Paddy's Jig/O'Keefes/Chattering File Name 08 Miscellany- Theme from Tristan and Isolde-Súisín Ban-The Gal.flac Title Miscellany: Theme from Tristan and Isolde/Súisín Ban/The Gal

Additional Information I can't say 100% but this error appears to have inflated the error.log and server.log to more than 1GB of data each. (1.5 GB and 1.2 GB) I'm fairly certain the bloat was due to the error because I emptied the logs before I restarted cherry music today.. I will try to get log information and append it to this issue. Note: I can provide the two music files listed above if needed.

yorkadam commented 6 years ago

I have confirmed that the log files are filled with thousands lines of repeated Unicode errors that were written when trying to read the files in this issue. Below is information from the logs and you can see from the time stamps many writes within seconds. I omitted the body of errors that were repeated.

My concern with the log writes is that writing did not appear to stop until I closed the browser window.

ERROR    **[2018-01-21 10:22:43,959]** : cherrypy.error.139849258957680 : from line (219) at
    /usr/local/lib/python3.4/dist-packages/cherrypy/_cplogging.py
    --
    **[21/Jan/2018:10:22:43]** HTTP 
Traceback (most recent call last):
  File "/usr/local/lib/python3.4/dist-packages/cherrypy/_cprequest.py", line 670, in respond
    response.body = self.handler()
  File "/usr/local/lib/python3.4/dist-packages/cherrypy/lib/encoding.py", line 220, in __call__
    self.body = self.oldhandler(*args, **kwargs)
  File "/usr/local/lib/python3.4/dist-packages/cherrypy/_cpdispatch.py", line 60, in __call__
    return self.callable(*self.args, **self.kwargs)
  File "/home/cherrymusic/cherrymusic/cherrymusicserver/httphandler.py", line 257, in trans
    path = codecs.decode(codecs.encode(path, 'latin1'), 'utf-8')
  File "/usr/lib/python3.4/encodings/utf_8.py", line 16, in decode
    return codecs.utf_8_decode(input, errors, True)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xf3 in position 49: invalid continuation byte

ERROR    **[2018-01-21 10:22:43,969]** : cherrypy.error.139849258957680 : from line (219) at
    /usr/local/lib/python3.4/dist-packages/cherrypy/_cplogging.py

ERROR    **[2018-01-21 15:12:05,173]** : cherrypy.error.139849258957680 : from line (219) at
    /usr/local/lib/python3.4/dist-packages/cherrypy/_cplogging.py
--
Traceback (most recent call last):
  File "/usr/local/lib/python3.4/dist-packages/cherrypy/_cprequest.py", line 670, in respond
    response.body = self.handler()
  File "/usr/local/lib/python3.4/dist-packages/cherrypy/lib/encoding.py", line 220, in __call__
    self.body = self.oldhandler(*args, **kwargs)
  File "/usr/local/lib/python3.4/dist-packages/cherrypy/_cpdispatch.py", line 60, in __call__
    return self.callable(*self.args, **self.kwargs)
  File "/home/cherrymusic/cherrymusic/cherrymusicserver/httphandler.py", line 257, in trans
    path = codecs.decode(codecs.encode(path, 'latin1'), 'utf-8')
  File "/usr/lib/python3.4/encodings/utf_8.py", line 16, in decode
    return codecs.utf_8_decode(input, errors, True)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xfa in position 75: invalid start byte

ERROR    **[2018-01-21 15:12:05,218]** : cherrypy.error.139849258957680 : from line (219) at
    /usr/local/lib/python3.4/dist-packages/cherrypy/_cplogging.py

ERROR    **[2018-01-21 15:12:05,469]** : cherrypy.error.139849258957680 : from line (219) at
    /usr/local/lib/python3.4/dist-packages/cherrypy/_cplogging.py