devgonvarun opened a new issue, #60271:
URL: https://github.com/apache/airflow/issues/60271

   ### Apache Airflow version
   
   Other Airflow 3 version (please specify below)
   
   ### If "Other Airflow 3 version" selected, which one?
   
   3.1.3
   
   ### What happened?
   
   All connections to the metadata db in airflow 3 should happen via the api 
server pod but when we enforced egress policies on worker namespace, I found 
that the worker pods fail when the postgres metadata db is not whitelisted in 
network policies. After the ip and port of the metadata db is whitelisted then 
the worker pod successfully executes and finishes otherwise the following was 
seen. 
   
   Worker pod logs: 
   ’’’
   kubectl logs helloworlddag-print-task1-z61tn3s8 -n airflowadmins
   Defaulted container "worker" out of: worker, git-sync-init (init)
   ....................
   ERROR! Maximum number of retries (20) reached.
   
   Last check result:
   $ airflow db check
   
/home/airflow/.local/lib/python3.12/site-packages/airflow/providers/fab/auth_manager/fab_auth_manager.py:108
 RemovedInAirflow4Warning: The airflow.security.permissions module is 
deprecated; please see 
https://airflow.apache.org/docs/apache-airflow/stable/security/deprecated_permissions.html
   2026-01-08T09:10:53.665341Z [warning  ] Failed to log action 
(psycopg2.OperationalError) connection to server at "10.237.***.15", port 6432 
failed: server closed the connection unexpectedly
        This probably means the server terminated abnormally
        before or while processing the request.
   
   (Background on this error at: https://sqlalche.me/e/14/e3q8) 
[airflow.utils.cli_action_loggers] loc=cli_action_loggers.py:156
   Traceback (most recent call last):
     File 
"/home/airflow/.local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", 
line 3371, in _wrap_pool_connect
       return fn()
              ^^^^
     File 
"/home/airflow/.local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", 
line 327, in connect
       return _ConnectionFairy._checkout(self)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     File 
"/home/airflow/.local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", 
line 894, in _checkout
       fairy = _ConnectionRecord.checkout(pool)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     File 
"/home/airflow/.local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", 
line 493, in checkout
       rec = pool._do_get()
             ^^^^^^^^^^^^^^
     File 
"/home/airflow/.local/lib/python3.12/site-packages/sqlalchemy/pool/impl.py", 
line 256, in _do_get
       return self._create_connection()
              ^^^^^^^^^^^^^^^^^^^^^^^^^
     File 
"/home/airflow/.local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", 
line 273, in _create_connection
       return _ConnectionRecord(self)
              ^^^^^^^^^^^^^^^^^^^^^^^
     File 
"/home/airflow/.local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", 
line 388, in __init__
       self.__connect()
     File 
"/home/airflow/.local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", 
line 690, in __connect
       with util.safe_reraise():
            ^^^^^^^^^^^^^^^^^^^
     File 
"/home/airflow/.local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py",
 line 70, in __exit__
       compat.raise_(
     File 
"/home/airflow/.local/lib/python3.12/site-packages/sqlalchemy/util/compat.py", 
line 211, in raise_
       raise exception
     File 
"/home/airflow/.local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", 
line 686, in __connect
       self.dbapi_connection = connection = pool._invoke_creator(self)
                                            ^^^^^^^^^^^^^^^^^^^^^^^^^^
     File 
"/home/airflow/.local/lib/python3.12/site-packages/sqlalchemy/engine/create.py",
 line 574, in connect
       return dialect.connect(*cargs, **cparams)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     File 
"/home/airflow/.local/lib/python3.12/site-packages/sqlalchemy/engine/default.py",
 line 598, in connect
       return self.dbapi.connect(*cargs, **cparams)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     File 
"/home/airflow/.local/lib/python3.12/site-packages/psycopg2/__init__.py", line 
122, in connect
       conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   psycopg2.OperationalError: connection to server at "10.237.***.15", port 
6432 failed: server closed the connection unexpectedly
        This probably means the server terminated abnormally
        before or while processing the request.
   
   
   The above exception was the direct cause of the following exception:
   
   Traceback (most recent call last):
     File "/home/airflow/.local/bin/airflow", line 7, in <module>
       sys.exit(main())
                ^^^^^^
     File 
"/home/airflow/.local/lib/python3.12/site-packages/airflow/__main__.py", line 
55, in main
       args.func(args)
     File 
"/home/airflow/.local/lib/python3.12/site-packages/airflow/cli/cli_config.py", 
line 49, in command
       return func(*args, **kwargs)
              ^^^^^^^^^^^^^^^^^^^^^
     File 
"/home/airflow/.local/lib/python3.12/site-packages/airflow/utils/cli.py", line 
114, in wrapper
       return f(*args, **kwargs)
              ^^^^^^^^^^^^^^^^^^
     File 
"/home/airflow/.local/lib/python3.12/site-packages/airflow/utils/providers_configuration_loader.py",
 line 54, in wrapped_function
       return func(*args, **kwargs)
              ^^^^^^^^^^^^^^^^^^^^^
     File 
"/home/airflow/.local/lib/python3.12/site-packages/airflow/cli/commands/db_command.py",
 line 278, in check
       for attempt in Retrying(
                      ^^^^^^^^^
     File 
"/home/airflow/.local/lib/python3.12/site-packages/tenacity/__init__.py", line 
445, in __iter__
       do = self.iter(retry_state=retry_state)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     File 
"/home/airflow/.local/lib/python3.12/site-packages/tenacity/__init__.py", line 
378, in iter
       result = action(retry_state)
                ^^^^^^^^^^^^^^^^^^^
     File 
"/home/airflow/.local/lib/python3.12/site-packages/tenacity/__init__.py", line 
420, in exc_check
       raise retry_exc.reraise()
             ^^^^^^^^^^^^^^^^^^^
     File 
"/home/airflow/.local/lib/python3.12/site-packages/tenacity/__init__.py", line 
187, in reraise
       raise self.last_attempt.result()
             ^^^^^^^^^^^^^^^^^^^^^^^^^^
     File "/usr/python/lib/python3.12/concurrent/futures/_base.py", line 449, 
in result
       return self.__get_result()
              ^^^^^^^^^^^^^^^^^^^
     File "/usr/python/lib/python3.12/concurrent/futures/_base.py", line 401, 
in __get_result
       raise self._exception
     File 
"/home/airflow/.local/lib/python3.12/site-packages/airflow/cli/commands/db_command.py",
 line 285, in check
       db.check()
     File 
"/home/airflow/.local/lib/python3.12/site-packages/airflow/utils/session.py", 
line 100, in wrapper
       return func(*args, session=session, **kwargs)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     File 
"/home/airflow/.local/lib/python3.12/site-packages/airflow/utils/db.py", line 
1321, in check
       session.execute(text("select 1 as is_alive;"))
     File 
"/home/airflow/.local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", 
line 1716, in execute
       conn = self._connection_for_bind(bind)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     File 
"/home/airflow/.local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", 
line 1555, in _connection_for_bind
       return self._transaction._connection_for_bind(
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     File 
"/home/airflow/.local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", 
line 750, in _connection_for_bind
       conn = bind.connect()
              ^^^^^^^^^^^^^^
     File 
"/home/airflow/.local/lib/python3.12/site-packages/sqlalchemy/future/engine.py",
 line 412, in connect
       return super(Engine, self).connect()
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     File 
"/home/airflow/.local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", 
line 3325, in connect
       return self._connection_cls(self, close_with_result=close_with_result)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     File 
"/home/airflow/.local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", 
line 96, in __init__
       else engine.raw_connection()
            ^^^^^^^^^^^^^^^^^^^^^^^
     File 
"/home/airflow/.local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", 
line 3404, in raw_connection
       return self._wrap_pool_connect(self.pool.connect, _connection)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     File 
"/home/airflow/.local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", 
line 3374, in _wrap_pool_connect
       Connection._handle_dbapi_exception_noconnection(
     File 
"/home/airflow/.local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", 
line 2208, in _handle_dbapi_exception_noconnection
       util.raise_(
     File 
"/home/airflow/.local/lib/python3.12/site-packages/sqlalchemy/util/compat.py", 
line 211, in raise_
       raise exception
     File 
"/home/airflow/.local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", 
line 3371, in _wrap_pool_connect
       return fn()
              ^^^^
     File 
"/home/airflow/.local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", 
line 327, in connect
       return _ConnectionFairy._checkout(self)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     File 
"/home/airflow/.local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", 
line 894, in _checkout
       fairy = _ConnectionRecord.checkout(pool)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     File 
"/home/airflow/.local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", 
line 493, in checkout
       rec = pool._do_get()
             ^^^^^^^^^^^^^^
     File 
"/home/airflow/.local/lib/python3.12/site-packages/sqlalchemy/pool/impl.py", 
line 256, in _do_get
       return self._create_connection()
              ^^^^^^^^^^^^^^^^^^^^^^^^^
     File 
"/home/airflow/.local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", 
line 273, in _create_connection
       return _ConnectionRecord(self)
              ^^^^^^^^^^^^^^^^^^^^^^^
     File 
"/home/airflow/.local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", 
line 388, in __init__
       self.__connect()
     File 
"/home/airflow/.local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", 
line 690, in __connect
       with util.safe_reraise():
            ^^^^^^^^^^^^^^^^^^^
     File 
"/home/airflow/.local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py",
 line 70, in __exit__
       compat.raise_(
     File 
"/home/airflow/.local/lib/python3.12/site-packages/sqlalchemy/util/compat.py", 
line 211, in raise_
       raise exception
     File 
"/home/airflow/.local/lib/python3.12/site-packages/sqlalchemy/pool/base.py", 
line 686, in __connect
       self.dbapi_connection = connection = pool._invoke_creator(self)
                                            ^^^^^^^^^^^^^^^^^^^^^^^^^^
     File 
"/home/airflow/.local/lib/python3.12/site-packages/sqlalchemy/engine/create.py",
 line 574, in connect
       return dialect.connect(*cargs, **cparams)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     File 
"/home/airflow/.local/lib/python3.12/site-packages/sqlalchemy/engine/default.py",
 line 598, in connect
       return self.dbapi.connect(*cargs, **cparams)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     File 
"/home/airflow/.local/lib/python3.12/site-packages/psycopg2/__init__.py", line 
122, in connect
       conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to 
server at "10.237.***.15", port 6432 failed: server closed the connection 
unexpectedly
        This probably means the server terminated abnormally
        before or while processing the request.
   
   (Background on this error at: https://sqlalche.me/e/14/e3q8)
   
   ’’’
   
   ### What you think should happen instead?
   
   Worker pod should not fail when the egress rules to block connections to 
postgres metadata applied on the worker namespace. 
   
   ### How to reproduce
   
   Deploy airflow using the official helm chart in multi namespace mode where 
airflow control plane pods are in "controlplane" namespace with no egress rules 
and kubernetes executor worker pods are spawned in a "worker" namespace with 
egress rules blocking network to the postgres metadata db. 
   
   ### Operating System
   
   Debian GNU/Linux 12 (bookworm)
   
   ### Versions of Apache Airflow Providers
   
   apache-airflow-providers-amazon==9.16.0
   apache-airflow-providers-celery==3.13.0
   apache-airflow-providers-cncf-kubernetes==10.9.0
   apache-airflow-providers-common-compat==1.8.0
   apache-airflow-providers-common-io==1.6.4
   apache-airflow-providers-common-messaging==2.0.0
   apache-airflow-providers-common-sql==1.28.2
   apache-airflow-providers-docker==4.4.4
   apache-airflow-providers-elasticsearch==6.3.4
   apache-airflow-providers-fab==3.0.2
   apache-airflow-providers-ftp==3.13.2
   apache-airflow-providers-git==0.0.9
   apache-airflow-providers-google==18.1.0
   apache-airflow-providers-grpc==3.8.2
   apache-airflow-providers-hashicorp==4.3.3
   apache-airflow-providers-http==5.4.0
   apache-airflow-providers-jdbc==5.2.3
   apache-airflow-providers-microsoft-azure==12.8.0
   apache-airflow-providers-mysql==6.3.4
   apache-airflow-providers-odbc==4.10.2
   apache-airflow-providers-openlineage==2.7.3
   apache-airflow-providers-oracle==4.2.0
   apache-airflow-providers-postgres==6.4.0
   apache-airflow-providers-redis==4.3.2
   apache-airflow-providers-sendgrid==4.1.4
   apache-airflow-providers-sftp==5.4.1
   apache-airflow-providers-slack==9.4.0
   apache-airflow-providers-smtp==2.3.1
   apache-airflow-providers-snowflake==6.6.0
   apache-airflow-providers-ssh==4.1.5
   apache-airflow-providers-standard==1.9.1
   
   ### Deployment
   
   Official Apache Airflow Helm Chart
   
   ### Deployment details
   
   _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]

Reply via email to