Skip to content

IOException (temporary DB) when closing the program #1

@protron

Description

@protron

The program mostly works, but after comparing two similar big files (1140KB each), when I close the program I consistently get following the exception (exception translated from Spanish):
The process cannot access the file '...\Temp\sqlitecompare\...9808.db' because it is being used by another process.

I saw it failing many times with those big files. But doesn't happen with the liron levi's version of this program, neither with tiny files.

Here is the scompare.log:

INFO|1|25/01/2018 9:22 a. m.,9|SQLiteTurbo.Program.Main(0)|===========================================================================
INFO|1|25/01/2018 9:22 a. m.,71|SQLiteTurbo.Program.Main(0)| SQLite Compare [3.0 p0 build 0]
INFO|1|25/01/2018 9:22 a. m.,71|SQLiteTurbo.Program.Main(0)|===========================================================================
DEBUG|CompareWorker thread|25/01/2018 9:22 a. m.,793|SQLiteTurbo.CompareWorker.NotifyPrimaryProgress(0)|CompareWorker.NotifyPrimaryProgress(False,0,Parsing DB schema of C:\Users\xxxxxxxx\myfolder\2018-01-24.db...)
DEBUG|CompareWorker thread|25/01/2018 9:22 a. m.,82|SQLiteTurbo.CompareWorker.NotifyPrimaryProgress(0)|CompareWorker.NotifyPrimaryProgress(False,10,Parsing DB schema of C:\Users\xxxxxxxx\myfolder\2018-01-05.db...)
DEBUG|CompareWorker thread|25/01/2018 9:22 a. m.,97|SQLiteTurbo.CompareWorker.NotifyPrimaryProgress(0)|CompareWorker.NotifyPrimaryProgress(False,20,Comparing schema information ...)
DEBUG|CompareWorker thread|25/01/2018 9:22 a. m.,129|SQLiteTurbo.CompareWorker.NotifyPrimaryProgress(0)|CompareWorker.NotifyPrimaryProgress(False,50,Comparing table data ...)
DEBUG|CompareWorker thread|25/01/2018 9:22 a. m.,129|SQLiteTurbo.CompareWorker.NotifyPrimaryProgress(0)|CompareWorker.NotifyPrimaryProgress(False,56,Comparing data for table [android_metadata]..)
DEBUG|CompareWorker thread|25/01/2018 9:22 a. m.,175|SQLiteTurbo.CompareWorker.NotifyPrimaryProgress(0)|CompareWorker.NotifyPrimaryProgress(False,62,Comparing data for table [expense_report]..)
DEBUG|CompareWorker thread|25/01/2018 9:22 a. m.,283|SQLiteTurbo.CompareWorker.NotifyPrimaryProgress(0)|CompareWorker.NotifyPrimaryProgress(False,68,Comparing data for table [expense_category]..)
DEBUG|CompareWorker thread|25/01/2018 9:22 a. m.,352|SQLiteTurbo.CompareWorker.NotifyPrimaryProgress(0)|CompareWorker.NotifyPrimaryProgress(False,75,Comparing data for table [expense_repeating]..)
DEBUG|CompareWorker thread|25/01/2018 9:22 a. m.,634|SQLiteTurbo.CompareWorker.NotifyPrimaryProgress(0)|CompareWorker.NotifyPrimaryProgress(False,81,Comparing data for table [expense_budget]..)
DEBUG|CompareWorker thread|25/01/2018 9:22 a. m.,657|SQLiteTurbo.CompareWorker.NotifyPrimaryProgress(0)|CompareWorker.NotifyPrimaryProgress(False,87,Comparing data for table [expense_payee_payer]..)
DEBUG|CompareWorker thread|25/01/2018 9:22 a. m.,679|SQLiteTurbo.CompareWorker.NotifyPrimaryProgress(0)|CompareWorker.NotifyPrimaryProgress(False,93,Comparing data for table [expense_preference]..)
DEBUG|CompareWorker thread|25/01/2018 9:22 a. m.,748|SQLiteTurbo.CompareWorker.NotifyPrimaryProgress(0)|CompareWorker.NotifyPrimaryProgress(False,100,Comparing data for table [expense_note]..)
DEBUG|CompareWorker thread|25/01/2018 9:22 a. m.,764|SQLiteTurbo.CompareWorker.NotifyPrimaryProgress(0)|CompareWorker.NotifyPrimaryProgress(True,100,Finished comparison)
DEBUG|1|25/01/2018 9:22 a. m.,769|SQLiteTurbo.ProgressDialog._worker_ProgressChanged(0)|Closing the progress dialog...
DEBUG|1|25/01/2018 9:22 a. m.,776|SQLiteTurbo.ProgressDialog._worker_ProgressChanged(0)|Closed the progress dialog.
ERROR|1|25/01/2018 9:23 a. m.,163|SQLiteTurbo.TableChanges.Dispose(0)|El proceso no puede obtener acceso al archivo 'C:\Users\xxxxxxxx\AppData\Local\Temp\sqlitecompare\expense_report_G_8d2d1bb1_158c_4c7b_a256_a4189c886e4a_G_8586847239252859808.db' porque está siendo utilizado en otro proceso.
   en System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
   en System.IO.File.InternalDelete(String path, Boolean checkHost)
   en SQLiteTurbo.TableChanges.Dispose(Boolean disposing)
ERROR|1|25/01/2018 9:23 a. m.,163|SQLiteTurbo.Program.Application_ThreadException(0)|El proceso no puede obtener acceso al archivo 'C:\Users\xxxxxxxx\AppData\Local\Temp\sqlitecompare\expense_report_G_8d2d1bb1_158c_4c7b_a256_a4189c886e4a_G_8586847239252859808.db' porque está siendo utilizado en otro proceso.
   en System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
   en System.IO.File.InternalDelete(String path, Boolean checkHost)
   en SQLiteTurbo.TableChanges.Dispose(Boolean disposing)
   en SQLiteTurbo.MainForm.CleanupSchemaView()
   en System.Windows.Forms.Form.OnFormClosing(FormClosingEventArgs e)
   en System.Windows.Forms.Form.WmClose(Message& m)
   en System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions