zodb / relstorage

A backend for ZODB that stores pickles in a relational database.
Other
55 stars 46 forks source link

Yugabyte/PG support working but some timeout issue FATAL: Timed out: Read RPC #396

Closed zopyx closed 1 year ago

zopyx commented 4 years ago

For the first time, Relstorage seems to work with latest Yugabyte 2.1 (default Docker installation). I could bootstrap and create a Plone 5.2/Python 3 installation over Relstorage/Pyscopg2. It is possible to edit and change objects in the ZMI (add/edit DTML methods). However, there seems to be an issue with larger or longer transactions e.g. creating and committing a new Plone site. This give me:

2020-03-11 20:40:20,863 WARNING [relstorage.adapters.postgresql.connmanager:92][waitress] Unable to connect: FATAL: Timed out: Read RPC (request call id 123) to 172.18.0.2:7100 timed out after 1.148s

2020-03-11 20:40:21,804 ERROR   [Zope.SiteErrorLog:252][waitress] 1583955621.7481280.9929664127610605 http://dev2.zopyx.de:12020/@@plone-addsite
Traceback (innermost last):
  Module ZPublisher.WSGIPublisher, line 168, in transaction_pubevents
  Module transaction._manager, line 257, in commit
  Module transaction._manager, line 135, in commit
  Module transaction._transaction, line 282, in commit
  Module transaction._compat, line 45, in reraise
  Module transaction._transaction, line 273, in commit
  Module transaction._transaction, line 464, in _commitResources
  Module transaction.weakset, line 61, in map
  Module transaction._transaction, line 464, in <lambda>
  Module ZODB.Connection, line 757, in afterCompletion
  Module ZODB.Connection, line 737, in newTransaction
  Module relstorage.storage, line 632, in poll_invalidations
  Module relstorage.adapters.connections, line 201, in restart_and_call
  Module relstorage.adapters.connections, line 224, in call
  Module relstorage.adapters.connections, line 148, in _open_connection
  Module relstorage.adapters.connmanager, line 317, in open_for_load
  Module relstorage.adapters.postgresql.connmanager, line 135, in _do_open_for_load
  Module perfmetrics._metric, line 72, in perfmetrics._metric._AbstractMetricImpl.__call__
  Module relstorage.adapters.postgresql.connmanager, line 78, in open
  Module relstorage.adapters.postgresql.drivers.psycopg2, line 101, in connect_with_isolation
psycopg2.OperationalError: FATAL:  Timed out: Read RPC (request call id 123) to 172.18.0.2:7100 timed out after 1.148s
jamadden commented 4 years ago

Thanks for the interesting data point. That traceback is showing a failure to connect to the database server (a socket timed out waiting for a response); RelStorage is connecting to the server because there was no open connection or the previous connection threw an unexpected error (most likely another timeout).