Bug #1026
Quasselcore doesn't handle interrupted PostgreSQL connection
0%
Description
When quasselcore is using PostgreSQL and the database connection is interrupted for whatever reason while the core is running (service restart, network interruption when using a non-local PostgreSQL server), the core does no longer work properly until it is restarted:
- No new messages appear in connected clients
- Newly connected clients don't received backlog, even though the GUI pretends backlog fetch is happening (no error message)
- The core log fills with QsqlQuery errors like this:
2010-09-26 11:00:43 Error: unhandled Error in QSqlQuery!
2010-09-26 11:00:43 Error: last Query: EXECUTE quassel_1 (147, 500)
2010-09-26 11:00:43 Error: executed Query:
2010-09-26 11:00:43 Error: bound Values:
2010-09-26 11:00:43 Error: Error Number: -1
2010-09-26 11:00:43 Error: Error Message: FEHLER: vorbereitete Anweisung �»quassel_1�« existiert nichtQPSQL: Es konnte keine Abfrage erzeugt werden
2010-09-26 11:00:43 Error: Driver Message: QPSQL: Es konnte keine Abfrage erzeugt werden
2010-09-26 11:00:43 Error: DB Message: FEHLER: vorbereitete Anweisung �»quassel_1�« existiert nicht
I would expect quasselcore to perform a reconnect if it loses database connection, and proceed like normal.
Related issues
History
#1 Updated by TerrorBite about 14 years ago
Confirming this bug.
It appears that the core will reconnect to the database, however it does not set back up Quassel's prepared statements (apparently this is only done at core startup). As a result, any database operation that relies on a prepared statement will fail after the database connection is interrupted, since those statements no longer exist in the database engine.
#2 Updated by TerrorBite almost 13 years ago
This is a duplicate of #1044, please close.
#3 Updated by johu almost 13 years ago
- Status changed from New to Closed