Actions:
|
2013-06-26 02:16 AEST by Glen Starrett - Choosing SQLite for the Audit DB (tested on Windows, haven't tested other OS')
consistently causes the server to crash in some circumstances.
The server crashes when all the following are met:
* Audit plugin is enabled
* Database type is SQLite
* Logging options are selected (tested with all, but probably just need session
if any)
* Name points to a FILENAME (if it is blank or points to non existing file, you
get a normal error message back)
The crash happens with all variations I've found on FILENAME:
* Empty (0 bytes)
* Invalid (a few random bytes)
The crash does NOT happen when FILENAME is:
* Valid (empty that has had "tables created successfully" and test connection
reports "Connection OK")
If "name" is blank or points to a file that does not exist, I get a good message
back:
C:\Users\admin>cvs ls
Audit trigger initialiasation failed: Failed to connect to database
cvsntsrv server: Pre-command check failed |
|
2013-06-26 19:55 AEST by Arthur Barrett - There are a bunch of problems here.
As pointed out in the bug description, the case where the database does not exist at all produces a 'good'
error message.
This is because the settings for which events to audit are NOT read from PServer/registry until AFTER the
database connection is established. So therefore NO events are attempted to be audited but the audit
trigger is enabled which causes a 'safe' error in precommand.
When 'audit sessions' is enabled but the database is 'bad' then we get a crash instead.
A 'simple' answer may be to move the test for database version earlier, but that highlights several issues:
- it's confusing to a 'new' developer that audit enabled but no audit events enabled should result in
failsafe behaviour
- currently the 'version' of the DB (and therefore the DB integrity) is only checked on Windows (not on
linux or mac)
- it would be better to handle cases of NULL gDb in the init trigger
|