Unstable - Error when trying to over write sqlite file

John Ralls jralls at ceridwen.us
Sat Oct 28 10:22:56 EDT 2017



> On Oct 28, 2017, at 5:49 AM, Robert Fewell <14ubobit at gmail.com> wrote:
> 
> Hi,
> 
> This cropped up while doing some tests...
> Start Gnucash with --nofile, take all default options and when saving use
> sqlite3 option and appropriate file name, close Gnucash.
> Start Gnucash again with --nofile, again take all default options and when
> saving use sqlite3 again with the same file name, dialogue appears asking
> if you want to overwrite, say yes and then this dialogue appears..
> 
> "The server URL at /root/unstable-sql3-1.gnucash experienced an error or
> encountered bad or corrupt data", close
> 
> In the trace file entries like these are present...
> 
> * 13:30:11  CRIT <gnc.engine.sx> gnc_sx_get_sxes_referencing_account:
> assertion 'sxactions != NULL' failed
> * 13:30:21  WARN <gnc.backend.dbi> [GncDbiBackend<Type>::session_begin()]
> Might clobber, no force
> * 13:30:24  CRIT <gnc.backend.dbi> [error_handler()] DBI error: 1: table
> versions already exists
> * 13:30:24  CRIT <gnc.backend.dbi> [GncDbiSqlConnection::create_table()]
> Error in dbi_result_free() result
> * 13:30:24  CRIT <gnc.backend.dbi> [error_handler()] DBI error: 19: UNIQUE
> constraint failed: versions.table_name
> * 13:30:24  CRIT <gnc.backend.dbi>
> [GncDbiSqlConnection::execute_nonselect_statement()] Error executing SQL
> INSERT INTO versions VALUES('Gnucash',2070000)
> * 13:30:24  CRIT <gnc.backend.sql>
> [GncSqlBackend::execute_nonselect_statement()] SQL error: INSERT INTO
> versions VALUES('Gnucash',2070000)
> * 13:30:24  CRIT <gnc.backend.sql> [GncSqlBackend::set_table_version()] SQL
> error: INSERT INTO versions VALUES('Gnucash',2070000)
> * 13:30:24  CRIT <gnc.backend.dbi> [error_handler()] DBI error: 19: UNIQUE
> constraint failed: versions.table_name
> * 13:30:24  CRIT <gnc.backend.dbi>
> [GncDbiSqlConnection::execute_nonselect_statement()] Error executing SQL
> INSERT INTO versions VALUES('Gnucash-Resave',19920)
> 
> Should I raise a bug for this ?

Yes, please. It’s a design oversight: There’s nothing in the SQL backend code to do a drop database when the user says to overwrite it.

Regards,
John Ralls


More information about the gnucash-devel mailing list