tnk-dev opened a new issue #19467:
URL: https://github.com/apache/airflow/issues/19467
### Apache Airflow version
2.2.1 (latest released)
### Operating System
Docker python:3.8-slim image
### Versions of Apache Airflow Providers
```pip freeze
alembic==1.7.4
anyio==3.3.4
apache-airflow==2.2.1
apache-airflow-providers-amazon==1.4.0
apache-airflow-providers-apache-hive==2.0.3
apache-airflow-providers-ftp==2.0.1
apache-airflow-providers-http==2.0.1
apache-airflow-providers-imap==2.0.1
apache-airflow-providers-jdbc==2.0.1
apache-airflow-providers-postgres==2.3.0
apache-airflow-providers-sqlite==2.0.1
apache-airflow-providers-ssh==2.3.0
apispec==3.3.2
argcomplete==1.12.3
astroid==2.6.6
atomicwrites==1.4.0
attrs==20.3.0
awscli==1.19.97
Babel==2.9.1
bcrypt==3.2.0
bleach==4.1.0
blinker==1.4
boto3==1.17.97
botocore==1.20.97
cattrs==1.5.0
certifi==2021.10.8
cffi==1.15.0
charset-normalizer==2.0.7
click==7.1.2
clickclick==20.10.2
colorama==0.4.3
colorlog==5.0.1
commonmark==0.9.1
croniter==1.0.15
cryptography==35.0.0
defusedxml==0.7.1
dill==0.3.4
dnspython==2.1.0
docutils==0.15.2
email-validator==1.1.3
Flask==1.1.4
Flask-AppBuilder==3.3.4
Flask-Babel==2.0.0
Flask-Caching==1.10.1
Flask-JWT-Extended==3.25.1
Flask-Login==0.4.1
Flask-OpenID==1.3.0
Flask-SQLAlchemy==2.5.1
Flask-WTF==0.14.3
future==0.18.2
graphviz==0.18
gunicorn==20.1.0
h11==0.12.0
hmsclient==0.1.1
httpcore==0.13.7
httpx==0.20.0
idna==3.3
importlib-metadata==4.8.1
importlib-resources==5.4.0
inflection==0.5.1
iso8601==1.0.0
isodate==0.6.0
isort==5.10.0
itsdangerous==1.1.0
JayDeBeApi==1.2.3
Jinja2==2.11.3
jmespath==0.10.0
JPype1==1.3.0
jsonschema==3.2.0
lazy-object-proxy==1.6.0
lockfile==0.12.2
Mako==1.1.5
Markdown==3.3.4
MarkupSafe==1.1.1
marshmallow==3.14.0
marshmallow-enum==1.5.1
marshmallow-oneofschema==3.0.1
marshmallow-sqlalchemy==0.26.1
mccabe==0.6.1
more-itertools==8.10.0
mypy==0.812
mypy-extensions==0.4.3
numpy==1.21.4
openapi-schema-validator==0.1.5
openapi-spec-validator==0.3.1
packaging==21.2
pandas==1.3.4
paramiko==2.8.0
pendulum==2.1.2
pluggy==0.13.1
prison==0.2.1
psutil==5.8.0
psycopg2-binary==2.9.1
pure-sasl==0.6.2
py==1.11.0
pyasn1==0.4.8
pycparser==2.21
Pygments==2.10.0
PyHive==0.6.4
PyJWT==1.7.1
pylint==2.7.4
PyNaCl==1.4.0
pyparsing==2.4.7
pyrsistent==0.18.0
pysftp==0.2.9
pytest==5.2.2
pytest-responses==0.5.0
python-daemon==2.3.0
python-dateutil==2.8.2
python-nvd3==0.15.0
python-slugify==4.0.1
python3-openid==3.2.0
pytz==2021.3
pytzdata==2020.1
PyYAML==5.4.1
requests==2.26.0
requests-toolbelt==0.9.1
responses==0.15.0
rfc3986==1.5.0
rich==10.13.0
rsa==4.7.2
s3transfer==0.4.2
sasl==0.3.1
setproctitle==1.2.2
six==1.16.0
sniffio==1.2.0
SQLAlchemy==1.3.23
SQLAlchemy-JSONField==1.0.0
SQLAlchemy-Utils==0.37.9
sshtunnel==0.4.0
swagger-ui-bundle==0.0.9
tableau-api-lib==0.1.14
tabulate==0.8.9
tenacity==8.0.1
termcolor==1.1.0
text-unidecode==1.3
thrift==0.15.0
thrift-sasl==0.4.3
toml==0.10.2
typed-ast==1.4.3
typeguard==2.13.0
typing-extensions==3.10.0.2
unicodecsv==0.14.1
urllib3==1.26.7
watchtower==0.7.3
wcwidth==0.2.5
webencodings==0.5.1
Werkzeug==1.0.1
wrapt==1.12.1
WTForms==3.0.0
zipp==3.6.0
```
### Deployment
Virtualenv installation
### Deployment details
Hey Airflow,
while developing new dags etc today without changing any underlying
infrastructure the following happened when running:
```bash
airflow db init
airflow db upgrade
```
Our Dockerfile
```yaml
FROM python:3.8-slim
# Airflow
ARG ENV_FILE
ARG PRIVATE_SSH_KEY_FILE
ENV PIP_VERSION=20.2.4
ENV LANGUAGE="en_US.UTF-8"
ENV LANG="en_US.UTF-8"
ENV LC_ALL="en_US.UTF-8"
ENV LC_CTYPE="en_US.UTF-8"
ENV LC_MESSAGES="en_US.UTF-8"
ENV AWS_DEFAULT_REGION="eu-central-1"
RUN apt-get update -y
RUN apt-get install -y locales
RUN sed -i 's/^# en_US.UTF-8 UTF-8$/en_US.UTF-8 UTF-8/g' /etc/locale.gen \
&& locale-gen \
&& update-locale LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8
ENV AIRFLOW_HOME=/usr/local/around-airflow
RUN mkdir -p ${AIRFLOW_HOME}
COPY requirements.txt ${AIRFLOW_HOME}/requirements.txt
RUN apt-get install -y build-essential ssh jq libffi-dev libssl-dev
libsasl2-dev && \
pip3 install --upgrade pip==${PIP_VERSION}&& \
pip3 install --no-cache -r ${AIRFLOW_HOME}/requirements.txt && \
apt-get purge -y build-essential && \
apt-get autoremove -y --purge && \
apt-get clean
RUN useradd -d ${AIRFLOW_HOME} airflow
COPY scripts ${AIRFLOW_HOME}/scripts
COPY tests ${AIRFLOW_HOME}/tests
COPY generated_airflow.cfg ${AIRFLOW_HOME}/airflow.cfg
COPY dags ${AIRFLOW_HOME}/dags
COPY $ENV_FILE ${AIRFLOW_HOME}/.env
COPY mypy.ini .pylintrc ${AIRFLOW_HOME}/
RUN mkdir -p ${AIRFLOW_HOME}/.ssh
COPY $PRIVATE_SSH_KEY_FILE ${AIRFLOW_HOME}/.ssh/id_rsa
RUN chmod 400 ${AIRFLOW_HOME}/.ssh/id_rsa
COPY .airflowignore ${AIRFLOW_HOME}/.airflowignore
RUN chown -R airflow ${AIRFLOW_HOME}
EXPOSE 8080
USER airflow
WORKDIR ${AIRFLOW_HOME}
ENTRYPOINT ["/bin/bash", "-l", "-c"]
CMD ["bash scripts/entrypoint.sh"]
```
This is unexpected behaviour since we didn't change any pip package versions
nor added any packages requirements.txt
### What happened
```
DB: sqlite:////usr/local/around-airflow/airflow.db
300[2021-11-08 12:27:48,868] {{db.py:674}} INFO - Creating tables
301INFO [alembic.runtime.migration] Context impl SQLiteImpl.
302INFO [alembic.runtime.migration] Will assume non-transactional DDL.
303Traceback (most recent call last):
304 File "/usr/local/bin/airflow", line 8, in <module>
305 sys.exit(main())
306 File "/usr/local/lib/python3.8/site-packages/airflow/__main__.py", line
40, in main
307 args.func(args)
308 File
"/usr/local/lib/python3.8/site-packages/airflow/cli/cli_parser.py", line 48, in
command
309 return func(*args, **kwargs)
310 File
"/usr/local/lib/python3.8/site-packages/airflow/cli/commands/db_command.py",
line 31, in initdb
311 db.initdb()
312 File "/usr/local/lib/python3.8/site-packages/airflow/utils/db.py", line
549, in initdb
313 upgradedb()
314 File "/usr/local/lib/python3.8/site-packages/airflow/utils/db.py", line
684, in upgradedb
315 command.upgrade(config, 'heads')
316 File "/usr/local/lib/python3.8/site-packages/alembic/command.py", line
320, in upgrade
317 script.run_env()
318 File "/usr/local/lib/python3.8/site-packages/alembic/script/base.py",
line 563, in run_env
319 util.load_python_file(self.dir, "env.py")
320 File "/usr/local/lib/python3.8/site-packages/alembic/util/pyfiles.py",
line 92, in load_python_file
321 module = load_module_py(module_id, path)
322 File "/usr/local/lib/python3.8/site-packages/alembic/util/pyfiles.py",
line 108, in load_module_py
323 spec.loader.exec_module(module) # type: ignore
324 File "<frozen importlib._bootstrap_external>", line 783, in exec_module
325 File "<frozen importlib._bootstrap>", line 219, in
_call_with_frames_removed
326 File
"/usr/local/lib/python3.8/site-packages/airflow/migrations/env.py", line 108,
in <module>
327 run_migrations_online()
328 File
"/usr/local/lib/python3.8/site-packages/airflow/migrations/env.py", line 102,
in run_migrations_online
329 context.run_migrations()
330 File "<string>", line 8, in run_migrations
331 File
"/usr/local/lib/python3.8/site-packages/alembic/runtime/environment.py", line
851, in run_migrations
332 self.get_context().run_migrations(**kw)
333 File
"/usr/local/lib/python3.8/site-packages/alembic/runtime/migration.py", line
608, in run_migrations
334 for step in self._migrations_fn(heads, self):
335 File "/usr/local/lib/python3.8/site-packages/alembic/command.py", line
309, in upgrade
336 return script._upgrade_revs(revision, rev)
337 File "/usr/local/lib/python3.8/site-packages/alembic/script/base.py",
line 439, in _upgrade_revs
338 for script in reversed(list(revs))
339 File
"/usr/local/lib/python3.8/site-packages/alembic/script/revision.py", line 793,
in iterate_revisions
340 revisions, heads = fn(
341 File
"/usr/local/lib/python3.8/site-packages/alembic/script/revision.py", line 1393,
in _collect_upgrade_revisions
342 targets: Collection["Revision"] = self._parse_upgrade_target(
343 File
"/usr/local/lib/python3.8/site-packages/alembic/script/revision.py", line 1193,
in _parse_upgrade_target
344 return self.get_revisions(target)
345 File
"/usr/local/lib/python3.8/site-packages/alembic/script/revision.py", line 527,
in get_revisions
346 resolved_id, branch_label = self._resolve_revision_number(
347 File
"/usr/local/lib/python3.8/site-packages/alembic/script/revision.py", line 747,
in _resolve_revision_number
348 self._revision_map
349 File
"/usr/local/lib/python3.8/site-packages/sqlalchemy/util/langhelpers.py", line
893, in __get__
350 obj.__dict__[self.__name__] = result = self.fget(obj)
351 File
"/usr/local/lib/python3.8/site-packages/alembic/script/revision.py", line 189,
in _revision_map
352 for revision in self._generator():
353 File "/usr/local/lib/python3.8/site-packages/alembic/script/base.py",
line 136, in _load_revisions
354 script = Script._from_filename(self, vers, file_)
355 File "/usr/local/lib/python3.8/site-packages/alembic/script/base.py",
line 999, in _from_filename
356 module = util.load_python_file(dir_, filename)
357 File "/usr/local/lib/python3.8/site-packages/alembic/util/pyfiles.py",
line 92, in load_python_file
358 module = load_module_py(module_id, path)
359 File "/usr/local/lib/python3.8/site-packages/alembic/util/pyfiles.py",
line 108, in load_module_py
360 spec.loader.exec_module(module) # type: ignore
361 File "<frozen importlib._bootstrap_external>", line 783, in exec_module
362 File "<frozen importlib._bootstrap>", line 219, in
_call_with_frames_removed
363 File
"/usr/local/lib/python3.8/site-packages/airflow/migrations/versions/82b7c48c147f_remove_can_read_permission_on_config_.py",
line 28, in <module>
364 from airflow.www.app import create_app
365 File "/usr/local/lib/python3.8/site-packages/airflow/www/app.py", line
23, in <module>
366 from flask_appbuilder import SQLA
367 File
"/usr/local/lib/python3.8/site-packages/flask_appbuilder/__init__.py", line 6,
in <module>
368 from .base import AppBuilder # noqa: F401
369 File "/usr/local/lib/python3.8/site-packages/flask_appbuilder/base.py",
line 8, in <module>
370 from .api.manager import OpenApiManager
371 File
"/usr/local/lib/python3.8/site-packages/flask_appbuilder/api/manager.py", line
7, in <module>
372 from flask_appbuilder.baseviews import BaseView
373 File
"/usr/local/lib/python3.8/site-packages/flask_appbuilder/baseviews.py", line
21, in <module>
374 from .forms import GeneralModelConverter
375 File
"/usr/local/lib/python3.8/site-packages/flask_appbuilder/forms.py", line 16, in
<module>
376 from .fields import EnumField, QuerySelectField,
QuerySelectMultipleField
377 File
"/usr/local/lib/python3.8/site-packages/flask_appbuilder/fields.py", line 6, in
<module>
378 from wtforms.compat import string_types, text_type
379ModuleNotFoundError: No module named 'wtforms.compat'
```
### What you expected to happen
I expected to build airflow as usual
### How to reproduce
_No response_
### Anything else
_No response_
### Are you willing to submit PR?
- [ ] Yes I am willing to submit a PR!
### Code of Conduct
- [X] I agree to follow this project's [Code of
Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]