Hi,
I am trying to create approx. 6500 products and I a getting the following error from my docker containers after ~3500 successful creations:
worker_1 | [2021-04-13 11:10:52,356: ERROR/ForkPoolWorker-3] Task saleor.product.tasks.update_product_minimal_variant_price_task[b79268d0-a93e-45ca-90a2-b41e9f962d1f] raised unexpected: DoesNotExist('Product matching query does not exist.')
worker_1 | Traceback (most recent call last):
worker_1 | File "/usr/local/lib/python3.8/site-packages/celery/app/trace.py", line 409, in trace_task
worker_1 | R = retval = fun(*args, **kwargs)
worker_1 | File "/usr/local/lib/python3.8/site-packages/celery/app/trace.py", line 701, in protected_call
worker_1 | return self.run(*args, **kwargs)
worker_1 | File "/app/saleor/product/tasks.py", line 46, in update_product_minimal_variant_price_task
worker_1 | product = Product.objects.get(pk=product_pk)
worker_1 | File "/usr/local/lib/python3.8/site-packages/django/db/models/manager.py", line 85, in manager_method
worker_1 | return getattr(self.get_queryset(), name)(*args, **kwargs)
worker_1 | File "/usr/local/lib/python3.8/site-packages/django/db/models/query.py", line 429, in get
worker_1 | raise self.model.DoesNotExist(
worker_1 | saleor.product.models.Product.DoesNotExist: Product matching query does not exist.
worker_1 | [2021-04-13 11:10:52,363: INFO/MainProcess] Received task: saleor.plugins.webhook.tasks.trigger_webhooks_for_event[bdd782ae-70a6-4f57-b830-c53d568636cc]
api_1 | [13/Apr/2021 11:10:52] "POST /graphql/ HTTP/1.1" 200 93
worker_1 | [2021-04-13 11:10:52,367: INFO/ForkPoolWorker-3] Task saleor.plugins.webhook.tasks.trigger_webhooks_for_event[bdd782ae-70a6-4f57-b830-c53d568636cc] succeeded in 0.003574000000298838s: None
db_1 | 2021-04-13 11:10:52.372 UTC [3828] FATAL: sorry, too many clients already
api_1 | Traceback (most recent call last):
api_1 | File "/usr/local/lib/python3.8/site-packages/promise/promise.py", line 489, in _resolve_from_executor
api_1 | executor(resolve, reject)
api_1 | File "/usr/local/lib/python3.8/site-packages/promise/promise.py", line 756, in executor
api_1 | return resolve(f(*args, **kwargs))
api_1 | File "/usr/local/lib/python3.8/site-packages/graphql/execution/middleware.py", line 75, in make_it_promise
api_1 | return next(*args, **kwargs)
api_1 | File "/app/saleor/graphql/core/mutations.py", line 290, in mutate
api_1 | if not cls.check_permissions(info.context):
api_1 | File "/app/saleor/graphql/core/mutations.py", line 281, in check_permissions
api_1 | if app:
api_1 | File "/usr/local/lib/python3.8/site-packages/django/utils/functional.py", line 240, in inner
api_1 | self._setup()
api_1 | File "/usr/local/lib/python3.8/site-packages/django/utils/functional.py", line 376, in _setup
api_1 | self._wrapped = self._setupfunc()
api_1 | File "/app/saleor/graphql/middleware.py", line 66, in
api_1 | request.app = SimpleLazyObject(lambda: get_app(auth_token))
api_1 | File "/app/saleor/graphql/middleware.py", line 50, in get_app
api_1 | return qs.first()
api_1 | File "/usr/local/lib/python3.8/site-packages/django/db/models/query.py", line 678, in first
api_1 | for obj in (self if self.ordered else self.order_by('pk'))[:1]:
api_1 | File "/usr/local/lib/python3.8/site-packages/django/db/models/query.py", line 287, in iter
api_1 | self._fetch_all()
api_1 | File "/usr/local/lib/python3.8/site-packages/django/db/models/query.py", line 1308, in _fetch_all
api_1 | self._result_cache = list(self._iterable_class(self))
api_1 | File "/usr/local/lib/python3.8/site-packages/django/db/models/query.py", line 53, in iter
api_1 | results = compiler.execute_sql(chunked_fetch=self.chunked_fetch, chunk_size=self.chunk_size)
api_1 | File "/usr/local/lib/python3.8/site-packages/django/db/models/sql/compiler.py", line 1154, in execute_sql
api_1 | cursor = self.connection.cursor()
api_1 | File "/usr/local/lib/python3.8/site-packages/django/utils/asyncio.py", line 26, in inner
api_1 | return func(*args, **kwargs)
api_1 | File "/usr/local/lib/python3.8/site-packages/django/db/backends/base/base.py", line 259, in cursor
api_1 | return self._cursor()
api_1 | File "/usr/local/lib/python3.8/site-packages/django/db/backends/base/base.py", line 235, in _cursor
api_1 | self.ensure_connection()
api_1 | File "/usr/local/lib/python3.8/site-packages/django/utils/asyncio.py", line 26, in inner
api_1 | return func(*args, **kwargs)
api_1 | File "/usr/local/lib/python3.8/site-packages/django/db/backends/base/base.py", line 219, in ensure_connection
api_1 | self.connect()
api_1 | File "/usr/local/lib/python3.8/site-packages/django/db/utils.py", line 90, in exit
api_1 | raise dj_exc_value.with_traceback(traceback) from exc_value
api_1 | File "/usr/local/lib/python3.8/site-packages/django/db/backends/base/base.py", line 219, in ensure_connection
api_1 | self.connect()
api_1 | File "/usr/local/lib/python3.8/site-packages/django/utils/asyncio.py", line 26, in inner
api_1 | return func(*args, **kwargs)
api_1 | File "/usr/local/lib/python3.8/site-packages/django/db/backends/base/base.py", line 200, in connect
api_1 | self.connection = self.get_new_connection(conn_params)
api_1 | File "/usr/local/lib/python3.8/site-packages/django/utils/asyncio.py", line 26, in inner
api_1 | return func(*args, **kwargs)
api_1 | File "/usr/local/lib/python3.8/site-packages/django/db/backends/postgresql/base.py", line 187, in get_new_connection
api_1 | connection = Database.connect(**conn_params)
api_1 | File "/usr/local/lib/python3.8/site-packages/psycopg2/init.py", line 127, in connect
api_1 | conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
api_1 | graphql.error.located_error.GraphQLLocatedError: FATAL: sorry, too many clients already
api_1 |
api_1 |
api_1 | ERROR saleor.graphql.errors.unhandled A query failed unexpectedly [PID:9:Thread-3795]
api_1 | Traceback (most recent call last):
api_1 | File "/usr/local/lib/python3.8/site-packages/django/db/backends/base/base.py", line 219, in ensure_connection
api_1 | self.connect()
api_1 | File "/usr/local/lib/python3.8/site-packages/django/utils/asyncio.py", line 26, in inner
api_1 | return func(*args, **kwargs)
api_1 | File "/usr/local/lib/python3.8/site-packages/django/db/backends/base/base.py", line 200, in connect
api_1 | self.connection = self.get_new_connection(conn_params)
api_1 | File "/usr/local/lib/python3.8/site-packages/django/utils/asyncio.py", line 26, in inner
api_1 | return func(*args, **kwargs)
api_1 | File "/usr/local/lib/python3.8/site-packages/django/db/backends/postgresql/base.py", line 187, in get_new_connection
api_1 | connection = Database.connect(**conn_params)
api_1 | File "/usr/local/lib/python3.8/site-packages/psycopg2/init.py", line 127, in connect
api_1 | conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
api_1 | psycopg2.OperationalError: FATAL: sorry, too many clients already
api_1 |
api_1 |
api_1 | The above exception was the direct cause of the following exception:
api_1 |
api_1 | Traceback (most recent call last):
api_1 | File "/usr/local/lib/python3.8/site-packages/promise/promise.py", line 489, in _resolve_from_executor
api_1 | executor(resolve, reject)
api_1 | File "/usr/local/lib/python3.8/site-packages/promise/promise.py", line 756, in executor
api_1 | return resolve(f(*args, **kwargs))
api_1 | File "/usr/local/lib/python3.8/site-packages/graphql/execution/middleware.py", line 75, in make_it_promise
api_1 | return next(*args, **kwargs)
api_1 | File "/app/saleor/graphql/core/mutations.py", line 290, in mutate
api_1 | if not cls.check_permissions(info.context):
api_1 | File "/app/saleor/graphql/core/mutations.py", line 281, in check_permissions
api_1 | if app:
api_1 | File "/usr/local/lib/python3.8/site-packages/django/utils/functional.py", line 240, in inner
api_1 | self._setup()
api_1 | File "/usr/local/lib/python3.8/site-packages/django/utils/functional.py", line 376, in _setup
api_1 | self._wrapped = self._setupfunc()
api_1 | File "/app/saleor/graphql/middleware.py", line 66, in
api_1 | request.app = SimpleLazyObject(lambda: get_app(auth_token))
api_1 | File "/app/saleor/graphql/middleware.py", line 50, in get_app
api_1 | return qs.first()
api_1 | File "/usr/local/lib/python3.8/site-packages/django/db/models/query.py", line 678, in first
api_1 | for obj in (self if self.ordered else self.order_by('pk'))[:1]:
api_1 | File "/usr/local/lib/python3.8/site-packages/django/db/models/query.py", line 287, in iter
api_1 | self._fetch_all()
api_1 | File "/usr/local/lib/python3.8/site-packages/django/db/models/query.py", line 1308, in _fetch_all
api_1 | self._result_cache = list(self._iterable_class(self))
api_1 | File "/usr/local/lib/python3.8/site-packages/django/db/models/query.py", line 53, in iter
api_1 | results = compiler.execute_sql(chunked_fetch=self.chunked_fetch, chunk_size=self.chunk_size)
api_1 | File "/usr/local/lib/python3.8/site-packages/django/db/models/sql/compiler.py", line 1154, in execute_sql
api_1 | cursor = self.connection.cursor()
api_1 | File "/usr/local/lib/python3.8/site-packages/django/utils/asyncio.py", line 26, in inner
api_1 | return func(*args, **kwargs)
api_1 | File "/usr/local/lib/python3.8/site-packages/django/db/backends/base/base.py", line 259, in cursor
api_1 | return self._cursor()
api_1 | File "/usr/local/lib/python3.8/site-packages/django/db/backends/base/base.py", line 235, in _cursor
api_1 | self.ensure_connection()
api_1 | File "/usr/local/lib/python3.8/site-packages/django/utils/asyncio.py", line 26, in inner
api_1 | return func(*args, **kwargs)
api_1 | File "/usr/local/lib/python3.8/site-packages/django/db/backends/base/base.py", line 219, in ensure_connection
api_1 | self.connect()
api_1 | File "/usr/local/lib/python3.8/site-packages/django/db/utils.py", line 90, in exit
api_1 | raise dj_exc_value.with_traceback(traceback) from exc_value
api_1 | File "/usr/local/lib/python3.8/site-packages/django/db/backends/base/base.py", line 219, in ensure_connection
api_1 | self.connect()
api_1 | File "/usr/local/lib/python3.8/site-packages/django/utils/asyncio.py", line 26, in inner
api_1 | return func(*args, **kwargs)
api_1 | File "/usr/local/lib/python3.8/site-packages/django/db/backends/base/base.py", line 200, in connect
api_1 | self.connection = self.get_new_connection(conn_params)
api_1 | File "/usr/local/lib/python3.8/site-packages/django/utils/asyncio.py", line 26, in inner
api_1 | return func(*args, **kwargs)
api_1 | File "/usr/local/lib/python3.8/site-packages/django/db/backends/postgresql/base.py", line 187, in get_new_connection
api_1 | connection = Database.connect(**conn_params)
api_1 | File "/usr/local/lib/python3.8/site-packages/psycopg2/init.py", line 127, in connect
api_1 | conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
api_1 | django.db.utils.OperationalError: FATAL: sorry, too many clients already
api_1 |
It seems like an error from Postgre because too many requests were made and too many client connections are open. However, I don't know how to increase that number. Do you have any idea?