Opened 6 years ago

Closed 6 years ago

#1650 closed defect (fixed)

removing a client shouldn't close the database connection

Reported by: Dimitar Misev Owned by: Dimitar Misev
Priority: critical Milestone: 9.5
Component: servercomm Version: development
Keywords: Cc: Peter Baumann, Vlad Merticariu
Complexity: Medium

Description

In certain cases a transaction is still active after a rasql query has been evaluated and the rasql command has finished. E.g.

$ rasql -q 'select c from RAS_COLLECTIONNAMES AS c' --out string
...
rasql done.
$ # however in ServerComm (rasserver) a transaction is still active at this point

I still haven't figured out why the transaction is sometimes not deactivated in rasserver.

It may be happening when rasmgr switches to another rasserver for the next rasql query, because it is always followed by no queries until a client cleanup timout of 30 seconds activates a request that cleans up the outstanding transaction.

This would normally be all fine, except that the cleanup method (ServerComm::deleteClientTblEntry) also closes the database connection when the active transaction matches the client id that needs to be cleand up. This should not be done with SQLite at least, otherwise it causes random issues in rasserver.

Change History (1)

comment:1 by Dimitar Misev, 6 years ago

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.