Danny
07/16/2020, 9:14 PMdagster
db are running the query LISTEN "run_events"
. I think 100 is the max clients setting for the postgres docker image I'm running, so it might be opening as many as it can get. Is that normal?dagster_1 | ERROR:root:(psycopg2.OperationalError) FATAL: sorry, too many clients already
dagster_1 |
dagster_1 | (Background on this error at: <http://sqlalche.me/e/13/e3q8>)
dagster_1 | Traceback (most recent call last):
dagster_1 | File "/usr/local/lib/python3.7/site-packages/sqlalchemy/engine/base.py", line 2339, in _wrap_pool_connect
dagster_1 | return fn()
dagster_1 | File "/usr/local/lib/python3.7/site-packages/sqlalchemy/pool/base.py", line 364, in connect
dagster_1 | return _ConnectionFairy._checkout(self)
dagster_1 | File "/usr/local/lib/python3.7/site-packages/sqlalchemy/pool/base.py", line 778, in _checkout
dagster_1 | fairy = _ConnectionRecord.checkout(pool)
dagster_1 | File "/usr/local/lib/python3.7/site-packages/sqlalchemy/pool/base.py", line 495, in checkout
dagster_1 | rec = pool._do_get()
dagster_1 | File "/usr/local/lib/python3.7/site-packages/sqlalchemy/pool/impl.py", line 239, in _do_get
dagster_1 | return self._create_connection()
dagster_1 | File "/usr/local/lib/python3.7/site-packages/sqlalchemy/pool/base.py", line 309, in _create_connection
dagster_1 | return _ConnectionRecord(self)
dagster_1 | File "/usr/local/lib/python3.7/site-packages/sqlalchemy/pool/base.py", line 440, in __init__
dagster_1 | self.__connect(first_connect_check=True)
dagster_1 | File "/usr/local/lib/python3.7/site-packages/sqlalchemy/pool/base.py", line 661, in __connect
dagster_1 | pool.logger.debug("Error on connect(): %s", e)
dagster_1 | File "/usr/local/lib/python3.7/site-packages/sqlalchemy/util/langhelpers.py", line 69, in __exit__
dagster_1 | exc_value, with_traceback=exc_tb,
dagster_1 | File "/usr/local/lib/python3.7/site-packages/sqlalchemy/util/compat.py", line 178, in raise_
dagster_1 | raise exception
dagster_1 | File "/usr/local/lib/python3.7/site-packages/sqlalchemy/pool/base.py", line 656, in __connect
dagster_1 | connection = pool._invoke_creator(self)
dagster_1 | File "/usr/local/lib/python3.7/site-packages/sqlalchemy/engine/strategies.py", line 114, in connect
dagster_1 | return dialect.connect(*cargs, **cparams)
dagster_1 | File "/usr/local/lib/python3.7/site-packages/sqlalchemy/engine/default.py", line 493, in connect
dagster_1 | return self.dbapi.connect(*cargs, **cparams)
dagster_1 | File "/usr/local/lib/python3.7/site-packages/psycopg2/__init__.py", line 127, in connect
dagster_1 | conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
dagster_1 | psycopg2.OperationalError: FATAL: sorry, too many clients already
dagster_1 |
dagster_1 |
dagster_1 | The above exception was the direct cause of the following exception:
dagster_1 |
dagster_1 | Traceback (most recent call last):
dagster_1 | File "/usr/local/lib/python3.7/site-packages/dagster_celery/core_execution_loop.py", line 108, in core_celery_execution_loop
dagster_1 | step_key=step.key,
dagster_1 | File "/usr/local/lib/python3.7/site-packages/dagster/core/events/__init__.py", line 644, in engine_event
dagster_1 | step_key=step_key,
dagster_1 | File "/usr/local/lib/python3.7/site-packages/dagster/core/events/__init__.py", line 199, in from_pipeline
dagster_1 | log_pipeline_event(pipeline_context, event, step_key)
dagster_1 | File "/usr/local/lib/python3.7/site-packages/dagster/core/events/__init__.py", line 138, in log_pipeline_event
dagster_1 | step_key=step_key,
dagster_1 | File "/usr/local/lib/python3.7/site-packages/dagster/core/log_manager.py", line 262, in debug
dagster_1 | return self._log(logging.DEBUG, msg, kwargs)
dagster_1 | File "/usr/local/lib/python3.7/site-packages/dagster/core/log_manager.py", line 232, in _log
dagster_1 | logger_.log(level, message, extra=extra)
dagster_1 | File "/usr/local/lib/python3.7/logging/__init__.py", line 1444, in log
dagster_1 | self._log(level, msg, args, **kwargs)
dagster_1 | File "/usr/local/lib/python3.7/logging/__init__.py", line 1514, in _log
dagster_1 | self.handle(record)
dagster_1 | File "/usr/local/lib/python3.7/logging/__init__.py", line 1524, in handle
dagster_1 | self.callHandlers(record)
dagster_1 | File "/usr/local/lib/python3.7/logging/__init__.py", line 1586, in callHandlers
dagster_1 | hdlr.handle(record)
dagster_1 | File "/usr/local/lib/python3.7/logging/__init__.py", line 894, in handle
dagster_1 | self.emit(record)
dagster_1 | File "/usr/local/lib/python3.7/site-packages/dagster/core/instance/__init__.py", line 120, in emit
dagster_1 | self._instance.handle_new_event(event)
dagster_1 | File "/usr/local/lib/python3.7/site-packages/dagster/core/instance/__init__.py", line 868, in handle_new_event
dagster_1 | self._event_storage.store_event(event)
dagster_1 | File "/usr/local/lib/python3.7/site-packages/dagster_postgres/event_log/event_log.py", line 92, in store_event
dagster_1 | sql_statement.returning(SqlEventLogStorageTable.c.run_id, SqlEventLogStorageTable.c.id)
dagster_1 | File "/usr/local/lib/python3.7/site-packages/sqlalchemy/engine/base.py", line 2237, in execute
dagster_1 | connection = self._contextual_connect(close_with_result=True)
dagster_1 | File "/usr/local/lib/python3.7/site-packages/sqlalchemy/engine/base.py", line 2305, in _contextual_connect
dagster_1 | self._wrap_pool_connect(self.pool.connect, None),
dagster_1 | File "/usr/local/lib/python3.7/site-packages/sqlalchemy/engine/base.py", line 2343, in _wrap_pool_connect
dagster_1 | e, dialect, self
dagster_1 | File "/usr/local/lib/python3.7/site-packages/sqlalchemy/engine/base.py", line 1585, in _handle_dbapi_exception_noconnection
dagster_1 | sqlalchemy_exception, with_traceback=exc_info[2], from_=e
dagster_1 | File "/usr/local/lib/python3.7/site-packages/sqlalchemy/util/compat.py", line 178, in raise_
dagster_1 | raise exception
dagster_1 | File "/usr/local/lib/python3.7/site-packages/sqlalchemy/engine/base.py", line 2339, in _wrap_pool_connect
dagster_1 | return fn()
dagster_1 | File "/usr/local/lib/python3.7/site-packages/sqlalchemy/pool/base.py", line 364, in connect
dagster_1 | return _ConnectionFairy._checkout(self)
dagster_1 | File "/usr/local/lib/python3.7/site-packages/sqlalchemy/pool/base.py", line 778, in _checkout
dagster_1 | fairy = _ConnectionRecord.checkout(pool)
dagster_1 | File "/usr/local/lib/python3.7/site-packages/sqlalchemy/pool/base.py", line 495, in checkout
dagster_1 | rec = pool._do_get()
dagster_1 | File "/usr/local/lib/python3.7/site-packages/sqlalchemy/pool/impl.py", line 239, in _do_get
dagster_1 | return self._create_connection()
dagster_1 | File "/usr/local/lib/python3.7/site-packages/sqlalchemy/pool/base.py", line 309, in _create_connection
dagster_1 | return _ConnectionRecord(self)
dagster_1 | File "/usr/local/lib/python3.7/site-packages/sqlalchemy/pool/base.py", line 440, in __init__
dagster_1 | self.__connect(first_connect_check=True)
dagster_1 | File "/usr/local/lib/python3.7/site-packages/sqlalchemy/pool/base.py", line 661, in __connect
dagster_1 | pool.logger.debug("Error on connect(): %s", e)
dagster_1 | File "/usr/local/lib/python3.7/site-packages/sqlalchemy/util/langhelpers.py", line 69, in __exit__
dagster_1 | exc_value, with_traceback=exc_tb,
dagster_1 | File "/usr/local/lib/python3.7/site-packages/sqlalchemy/util/compat.py", line 178, in raise_
dagster_1 | raise exception
dagster_1 | File "/usr/local/lib/python3.7/site-packages/sqlalchemy/pool/base.py", line 656, in __connect
dagster_1 | connection = pool._invoke_creator(self)
dagster_1 | File "/usr/local/lib/python3.7/site-packages/sqlalchemy/engine/strategies.py", line 114, in connect
dagster_1 | return dialect.connect(*cargs, **cparams)
dagster_1 | File "/usr/local/lib/python3.7/site-packages/sqlalchemy/engine/default.py", line 493, in connect
dagster_1 | return self.dbapi.connect(*cargs, **cparams)
dagster_1 | File "/usr/local/lib/python3.7/site-packages/psycopg2/__init__.py", line 127, in connect
dagster_1 | conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
wait_for_run_slot
function here: https://github.com/dagster-io/dagster/issues/2716#issue-656821567. Don't imagine a lot of setups do this, so thought I'd mention this. If there's any reason why this would stop working >0.8.5, that would probably be the answermax
07/16/2020, 10:55 PMprha
07/16/2020, 10:57 PMmax
07/16/2020, 11:12 PMDagsterInstance.get
context.instance
Danny
07/16/2020, 11:16 PMmax
07/16/2020, 11:17 PMDanny
07/16/2020, 11:19 PMLISTEN "run_events"
. Unfortunately I don't have the knowledge of dagster internals to tease this out, any help would be appreciated!
I'll soon update the repo I used to track this down https://github.com/dbendelman/dagster-testing so that you guys can easily repro locally using this bad commit versus the one immediately before.max
07/20/2020, 5:59 PMdaniel
07/20/2020, 6:03 PMDanny
07/20/2020, 6:04 PMdaniel
07/20/2020, 6:06 PM