Internal Server Error with new installed PLONE 5.2.1

I installed a new downloaded PLONE 5.2.1 with unifed Installer Plone-5.2.1-UnifiedInstaller-r3 with ZEO option. After having adjusted the Ports in buildout.cfg and running buildout I get this message, when calling the clients od ZMI:

Internal Server Error
The server encountered an unexpected internal server error
(generated by waitress)

When running in fg I see
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 4: ordinal not in range(128)

Can't find a solution in the other posts regarding this.

full traceback please

Here it is:

Serving on http://0.0.0.0:8083
2020-03-16 11:57:03,981 ERROR   [waitress:357][waitress] Exception while serving /
Traceback (most recent call last):
  File "/home/users/mlpd/Plone/buildout-cache/eggs/waitress-1.4.3-py2.7.egg/waitress/channel.py", line 349, in service
    task.service()
  File "/home/users/mlpd/Plone/buildout-cache/eggs/waitress-1.4.3-py2.7.egg/waitress/task.py", line 169, in service
    self.execute()
  File "/home/users/mlpd/Plone/buildout-cache/eggs/waitress-1.4.3-py2.7.egg/waitress/task.py", line 439, in execute
    app_iter = self.channel.server.application(environ, start_response)
  File "/home/users/mlpd/Plone/buildout-cache/eggs/Paste-3.1.1-py2.7.egg/paste/translogger.py", line 69, in __call__
    return self.application(environ, replacement_start_response)
  File "/home/users/mlpd/Plone/buildout-cache/eggs/Zope-4.1.3-py2.7.egg/ZPublisher/httpexceptions.py", line 30, in __call__
    return self.application(environ, start_response)
  File "/home/users/mlpd/Plone/buildout-cache/eggs/Zope-4.1.3-py2.7.egg/ZPublisher/WSGIPublisher.py", line 357, in publish_module
    start_response(status, headers)
  File "/home/users/mlpd/Plone/buildout-cache/eggs/Paste-3.1.1-py2.7.egg/paste/translogger.py", line 67, in replacement_start_response
    self.write_log(environ, method, req_uri, start, status, bytes)
  File "/home/users/mlpd/Plone/buildout-cache/eggs/Paste-3.1.1-py2.7.egg/paste/translogger.py", line 99, in write_log
    message = self.format % d
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 4: ordinal not in range(128)

Check for the offending data with the Python debugger in:

Any reasons why you need Python 2.7 instead Python 3.X?

I understand, python comes with unified Installer. I did not change anything so that the python Version, that was installed, is used.

No idea what the universal installer is doing.
Use Python 3 if you can with 5.2 unless there are reasons to do so,

Unified Installer (not "universal installer") is the official install package of PLONE as it is available on plone.org. I would expect, that all components work correctly togather, when it is installed with no modifications.
Is anybody there who is in packageing of PLONE to help?

As said: the first thing is to figure out the offending data using the Python debugger. Then please file a bug report. Exceptations and reality often do not match for a variety of reasons.

Line 99 of translogger.py is:
message = self.format % d
Have set the debug break point a line in front of it.

The content of variable d :

/home/users/mlpd/Plone/buildout-cache/eggs/Paste-3.1.1-py2.7.egg/paste/translogger.py(100)write_log()
-> message = self.format % d
(Pdb) print d
{'REQUEST_METHOD': 'GET', 'status': '200', 'REMOTE_USER': u'admin', 'HTTP_USER_AGENT': 'Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:74.0) Gecko/20100101 Firefox/74.0', 'HTTP_REFERER': '-', 'REMOTE_ADDR': '93.206.36.15', 'HTTP_VERSION': 'HTTP/1.1', 'time': '17/M\xc3\xa4r/2020:09:49:53 +0200', 'bytes': '7807', 'REQUEST_URI': '/'}
(Pdb)

The error prone Value 0xc3 which seems to be in the 'time' position and is not in the ASCII range would be in unicode à (?)

and self.format?

(Pdb) print self.format
%(REMOTE_ADDR)s - %(REMOTE_USER)s [%(time)s] "%(REQUEST_METHOD)s %(REQUEST_URI)s %(HTTP_VERSION)s" %(status)s %(bytes)s "%(HTTP_REFERER)s" "%(HTTP_USER_AGENT)s"

There is some unexpected German month name inside the data

'time': '17/M\xc3\xa4r/2020:09:49:53 +0200

The month name should clearly be in English.

Looks as the locales are set to German and the logger is picking the month name from the locales
(which it should not)...something like that..

Check our environment using env|grep LC...likely there will be something like

LC_ALL=en_US.UTF-8
LC_MEASUREMENT=en_US.UTF-8
LC_PAPER=en_US.UTF-8
LC_MONETARY=en_US.UTF-8
LC_NAME=en_US.UTF-8
LC_CTYPE=en_US.UTF-8
LC_ADDRESS=en_US.UTF-8
LC_NUMERIC=en_US.UTF-8
LC_TELEPHONE=en_US.UTF-8
LC_IDENTIFICATION=en_US.UTF-8
LC_TIME=en_US.UTF-8

but with de_DE or so

Yesterday, i have the same error on python2 with coredevbuild and the installer. i need it for an upgrade. my solution:

vim ~/.bashrc
# override my language settings
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8
source ~/.bashrc
1 Like

Thanks for spending your time on that.
But In meantime I have successfully installed ZEO with PLONE 5.0.10 and succesfully migrated our most used website from PLONE 5.0.7 Standalone.
BTW: 5.0.10 was the only PLONE 5.0.x Version that was installable with Unified Installer with ZEO Option.and worked without Problems.

I will create a bug report on https://github.com/plone/Products.CMFPlone/issues.

Which version of 'Paste' is used in the 5.0.x ?

As said: setting your locale environment variables correctly should resolve the problem.

German is correctly :wink:

How is this relevant with Plone?

Plone Foundation Code of Conduct