google / clusterfuzz

Scalable fuzzing infrastructure.
https://google.github.io/clusterfuzz
Apache License 2.0
5.27k stars 551 forks source link

v2.5.6 cron service error due to ImportError: cannot import name 'soft_unicode' from 'markupsafe' #2635

Open urbanenomad opened 2 years ago

urbanenomad commented 2 years ago

So trying to upgrade an old version from clusterfuzz v2.1.0 to v2.5.6. The update looks successful but when I try to update the deployment I get the following error when the cron-service tries to startup.

Traceback (most recent call last): File "/layers/google.python.pip/pip/lib/python3.7/site-packages/gunicorn/arbiter.py", line 589, in spawn_worker worker.init_process() File "/layers/google.python.pip/pip/lib/python3.7/site-packages/gunicorn/workers/gthread.py", line 92, in init_process super().init_process() File "/layers/google.python.pip/pip/lib/python3.7/site-packages/gunicorn/workers/base.py", line 134, in init_process self.load_wsgi() File "/layers/google.python.pip/pip/lib/python3.7/site-packages/gunicorn/workers/base.py", line 146, in load_wsgi self.wsgi = self.app.wsgi() File "/layers/google.python.pip/pip/lib/python3.7/site-packages/gunicorn/app/base.py", line 67, in wsgi self.callable = self.load() File "/layers/google.python.pip/pip/lib/python3.7/site-packages/gunicorn/app/wsgiapp.py", line 58, in load return self.load_wsgiapp() File "/layers/google.python.pip/pip/lib/python3.7/site-packages/gunicorn/app/wsgiapp.py", line 48, in load_wsgiapp return util.import_app(self.app_uri) File "/layers/google.python.pip/pip/lib/python3.7/site-packages/gunicorn/util.py", line 359, in import_app mod = importlib.import_module(module) File "/opt/python3.7/lib/python3.7/importlib/init.py", line 127, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "", line 1006, in _gcd_import File "", line 983, in _find_and_load File "", line 967, in _find_and_load_unlocked File "", line 677, in _load_unlocked File "", line 728, in exec_module File "", line 219, in _call_with_frames_removed File "/srv/main.py", line 42, in import server File "/srv/server.py", line 16, in from flask import Flask File "/layers/google.python.pip/pip/lib/python3.7/site-packages/flask/init.py", line 14, in from jinja2 import escape File "/layers/google.python.pip/pip/lib/python3.7/site-packages/jinja2/init.py", line 12, in from .environment import Environment File "/layers/google.python.pip/pip/lib/python3.7/site-packages/jinja2/environment.py", line 25, in from .defaults import BLOCK_END_STRING File "/layers/google.python.pip/pip/lib/python3.7/site-packages/jinja2/defaults.py", line 3, in from .filters import FILTERS as DEFAULT_FILTERS # noqa: F401 File "/layers/google.python.pip/pip/lib/python3.7/site-packages/jinja2/filters.py", line 13, in from markupsafe import soft_unicode ImportError: cannot import name 'soft_unicode' from 'markupsafe' (/layers/google.python.pip/pip/lib/python3.7/site-packages/markupsafe/init.py)

I believe that the makrupsafe needs to be downgraded to version 2.0.1. Where can I configure this for the cron-service?

urbanenomad commented 2 years ago

so I was able to update the requirements.txt file in the appengine and seems to fix this but I have had to do this several times markupsafe==2.0.1, itsdangerous==2.0.1, werkzeug==2.0.2, pyparsing==2.4.2. i am wondering if maybe a different OS would of made this easier? I am deploying this from within a docker image using python:3.7-slim-buster

oliverchang commented 2 years ago

Thanks for the report!

Can you please try the latest release (v2.5.7) and see if you still get these errors?

urbanenomad commented 2 years ago

ok so with v2.5.7 the python library dependency errors have gone away. But we still have the java 8 jdk error where I have to change the jdk to default-jdk. by running the following command before running the install script.

RUN sed -i 's/openjdk-8-jdk/default-jdk/' /opt/local/clusterfuzz/local/install_deps_linux.bash

Can that be updated as well?