psycopg2.OperationalError error - PullRequest
       8

psycopg2.OperationalError error

0 голосов
/ 10 марта 2020

Я создал Python flask веб-приложение и развернул его на Azure App service, используя gunicorn. Веб-приложение использует flask_sqlalchemy для подключения к базе данных PostgreSQL, которая также развернута на Azure Database for PostgreSQL server.

. Иногда я получаю сообщение об ошибке ниже, когда веб-приложение вставляет «маленький» запрос строка с шестью полями:

sqlalchemy.exc.InvalidRequestError: This Session's transaction has been rolled back due to a previous exception during flush. To begin a new transaction with this Session, first issue Session.rollback(). 
Original exception was: (psycopg2.OperationalError) SSL SYSCALL error: EOF detected

[SQL: INSERT INTO <table>]
[parameters: <row's parameters>]
(Background on this error at: http://sqlalche.me/e/e3q8) (Background on this error at: http://sqlalche.me/e/7s2a)

Пока веб-приложение все еще было развернуто, я перезапустил сервер базы данных и обнаружил, что падение соединения приводит к ошибке. Если я затем перезапущу службу приложения, проблема будет решена.

При локальном развертывании веб-приложения и отключении базы данных я получаю немного другую ошибку:

sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) server closed the connection unexpectedly
    This probably means the server terminated abnormally
    before or while processing the request.

[SQL: INSERT INTO <table>]
[parameters: <row's parameters>]
(Background on this error at: http://sqlalche.me/e/e3q8)

Следуя советам SQLAlchemy , я изменил соединение с базой данных на:

db = SQLAlchemy(engine_options={"pool_pre_ping": True})

Это решило проблему для локально развернутого веб-приложения, но такое же сообщение об ошибке все еще появляется для развернутого веб-приложения Azure.

Любой совет?

заморозка в пунктах:

aniso8601==8.0.0
atomicwrites==1.3.0
attrs==19.3.0
certifi==2019.11.28
cffi==1.14.0
chardet==3.0.4
Click==7.0
colorama==0.4.3
cryptography==2.8
Flask==1.1.1
flask-restx==0.1.1
Flask-SQLAlchemy==2.4.1
idna==2.8
importlib-metadata==1.5.0
itsdangerous==1.1.0
Jinja2==2.11.1
jsonschema==3.2.0
jwt==0.6.1
MarkupSafe==1.1.1
more-itertools==8.2.0
numpy==1.18.1
packaging==20.1
pandas==1.0.1
pluggy==0.13.1
psycopg2==2.8.4
py==1.8.1
pycparser==2.19
PyJWT==1.7.1
pyparsing==2.4.6
pyrsistent==0.15.7
pytest==5.3.5
python-dateutil==2.8.1
pytz==2019.3
requests==2.22.0
scipy==1.4.1
six==1.14.0
SQLAlchemy==1.3.13
urllib3==1.25.8
wcwidth==0.1.8
Werkzeug==0.16.1
wincertstore==0.2
zipp==3.0.0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...