Jaymon / prom

A PostgreSQL or SQLite orm for Python
MIT License
22 stars 4 forks source link

Recovering from connection error #7

Closed Jaymon closed 8 years ago

Jaymon commented 9 years ago
File "/usr/local/lib/python2.7/dist-packages/prom/query.py", line 573, in get_one
    d = self._query('get_one')
  File "/usr/local/lib/python2.7/dist-packages/prom/query.py", line 682, in _query
    return getattr(i, method_name)(s, self)
  File "/usr/local/lib/python2.7/dist-packages/prom/interface/base.py", line 479, in get_one
    ret = self._get_query(self._get_one, schema, query, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/prom/interface/base.py", line 463, in _get_query
    ret = callback(schema, query, *args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/prom/interface/base.py", line 851, in _get_one
    return self.query(query_str, *query_args, fetchone=True, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/prom/interface/base.py", line 194, in query
    return self._query(query_str, query_args, **query_options)
  File "/usr/local/lib/python2.7/dist-packages/prom/interface/base.py", line 625, in _query
    return ret
  File "/usr/lib/python2.7/contextlib.py", line 35, in __exit__
    self.gen.throw(type, value, traceback)
  File "/usr/local/lib/python2.7/dist-packages/prom/interface/base.py", line 170, in connection
    self.raise_error(e)
  File "/usr/local/lib/python2.7/dist-packages/prom/interface/base.py", line 155, in connection
    yield connection
  File "/usr/local/lib/python2.7/dist-packages/prom/interface/base.py", line 595, in _query
    cur = connection.cursor()
InterfaceError: connection already closed

Prom should be able to recover from this error and only propagate the error if it fails to reconnect N number of times or something.

Jaymon commented 9 years ago

another one

File "/usr/local/lib/python2.7/dist-packages/prom/query.py", line 547, in get
    results = self._query('get')
  File "/usr/local/lib/python2.7/dist-packages/prom/query.py", line 682, in _query
    return getattr(i, method_name)(s, self)
  File "/usr/local/lib/python2.7/dist-packages/prom/interface/base.py", line 494, in get
    ret = self._get_query(self._get, schema, query, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/prom/interface/base.py", line 465, in _get_query
    self.raise_error(e, exc_info)
  File "/usr/local/lib/python2.7/dist-packages/prom/interface/base.py", line 458, in _get_query
    ret = callback(schema, query, *args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/prom/interface/base.py", line 855, in _get
    return self.query(query_str, *query_args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/prom/interface/base.py", line 194, in query
    return self._query(query_str, query_args, **query_options)
  File "/usr/local/lib/python2.7/dist-packages/prom/interface/base.py", line 625, in _query
    return ret
  File "/usr/lib/python2.7/contextlib.py", line 35, in __exit__
    self.gen.throw(type, value, traceback)
  File "/usr/local/lib/python2.7/dist-packages/prom/interface/base.py", line 170, in connection
    self.raise_error(e)
  File "/usr/local/lib/python2.7/dist-packages/prom/interface/base.py", line 155, in connection
    yield connection
  File "/usr/local/lib/python2.7/dist-packages/prom/interface/base.py", line 608, in _query
    cur.execute(query_str, query_args)
  File "/usr/local/lib/python2.7/dist-packages/psycopg2/extras.py", line 223, in execute
    return super(RealDictCursor, self).execute(query, vars)
InterfaceError: server closed the connection unexpectedly
        This probably means the server terminated abnormally
        before or while processing the request.
Jaymon commented 8 years ago

Interesting, I guess I never closed this even though the fix has been in for quite a while.