Compacting throws exception

Post Reply
peterpix
Posts: 39
Joined: 01 Jun 16 15:36

Compacting throws exception

Post by peterpix » 17 Apr 19 7:54

I compacted for the first time ever the other day (catalogue and thumbs) and it worked well and massively speeded up PSU

Since then whenever I compact (catalogue and thumbs) an exception is notified.

Please could you let me know what I should do about this.

Here is the exception info:

IDI.v4.ApplicationException

----- details -----

ExceptionTimeStamp=2019-04-17T06:40:12.223Z
ExceptionThreadName=Main Thread
ExceptionClass=EDatabaseError
Exception=database or disk is full
Build=4.3.3.2032
Edition=Single
Architecture=64 bit
Platform=Windows
OperationSystem=Windows 10 64bit (Version: 10.0 build 16299)
Display=1920x1080
AvailableMemory=1.4 GB of 7.9 GB
ProcessorCores=4
Trial=no
UptimeSecs=674
SystemID=E6B9A797929A939FC79AA2A3B9B6A7A8
CallStack= $000000010042CC80 DATABASEERROR, line 2264 of ../../../nfreepascal/source/fpc/packages/fcl-db/src/base/db.pas
$0000000100477CBD EXECSQL, line 959 of ../../XOM/idsqlite3conn.pp
$0000000100478C69 EXECUTEPURE, line 1269 of ../../XOM/idsqlite3conn.pp
$000000010071D762 RUNSQL, line 1064 of ../uThumbnailer.pas
$000000010071B126 COMPACT, line 320 of ../uThumbnailer.pas
$0000000100248B66 COMPACTDATABASE, line 10243 of ufmain.pas
$00000001002680FA ASKOPENCATALOG, line 17149 of ufmain.pas
$00000001003702CF CLICK, line 83 of include/menuitem.inc
$0000000100370AF8 DOCLICKED, line 293 of include/menuitem.inc
$0000000100011C33 DISPATCH, line 674 of ../inc/objpas.inc
$000000010031BBF4 DOWINDOWPROC, line 2078 of win32/win32callback.inc
$000000010031D5A7 WINDOWPROC, line 2696 of win32/win32callback.inc
$00007FF9376AB85D
$00007FF9376AB1EF
$000000010031E6CE APPPROCESSMESSAGES, line 407 of win32/win32object.inc
$0000000100067267 HANDLEMESSAGE, line 1278 of include/application.inc
$0000000100067757 RUNLOOP, line 1415 of include/application.inc
DatabaseSystem=SQLite
ActiveCollectionCount=276
ActiveForm= frmMain[TfrmMain]
ActiveForm.ActiveControl= frmMain[TfrmMain]
vxScene1[TvxScene]
ActiveForm.Scene.Focused= Root1[TvxBackground]
loApplication[TvxLayout]
loApplicationContent[TvxLayout]
loCatalogArea[TvxLayout]
loCatalog[TvxLayout]
loCatalogTree[TvxLayout]
[TvxCatalogTreeView]
ActiveForm.Scene.Hovered= Root1[TvxBackground]
loApplication[TvxLayout]
loApplicationContent[TvxLayout]
loClientArea[TvxLayout]
loCollectionViewer[TvxLayout]
[TvxCollectionViewerTabComponent]
[TvxCollectionViewerTabSheet]
[TvxCollectionViewer]
[TvxScrollContent]
[TvxCollectionItem]

Hert
Posts: 5860
Joined: 13 Sep 03 7:24

Re: Compacting throws exception

Post by Hert » 17 Apr 19 8:00

SQLite (the database) reports that there is insufficient diskspace to complete the operation.
database or disk is full
In order to do a compact, you need at least the amount of free diskspace that the database is. e.g. to compact a 1GB database you'll need at least 1GB of free disk space on the same drive as where the database is stored
This is a User-to-User forum which means that users post questions here for other users.
Feature requests, change suggestions, or bugs can be logged in the ticketing system

peterpix
Posts: 39
Joined: 01 Jun 16 15:36

Re: Compacting throws exception

Post by peterpix » 17 Apr 19 8:33

Thanks. Strange as there is plenty of room on the disk.

Mke
Posts: 453
Joined: 15 Jun 14 15:39

Re: Compacting throws exception

Post by Mke » 17 Apr 19 12:24

Compacting the catalogue and thumbs separately may reduce the space required enough to complete the process?

peterpix
Posts: 39
Joined: 01 Jun 16 15:36

Re: Compacting throws exception

Post by peterpix » 17 Apr 19 15:33

Thanks.

I've tried compacting separately but same problem.

Catalogue compacts ok, it's just the thumbs that throw the error.

The error reports that the thumbs db is 7.9 gb, but that the available memory is only 2.2 gb.

Both databases are on my D drive, which has 130 gb of free space.

My C drive has much less free space at 15 gb, but still that's a lot more than 7.9 gb. Not even sure if the C drive is relevant given that the databases are on the D drive.

Not clear what to try next.

Hert
Posts: 5860
Joined: 13 Sep 03 7:24

Re: Compacting throws exception

Post by Hert » 17 Apr 19 15:39

I think that SQLite uses the Windows Temp folder (which will be on your system drive by default) to create the compacted database.

Here's how you can change the Windows Temp folder...make sure to restart the computer after changing the temp folder.
https://www.howtogeek.com/285710/how-to ... her-drive/
This is a User-to-User forum which means that users post questions here for other users.
Feature requests, change suggestions, or bugs can be logged in the ticketing system

peterpix
Posts: 39
Joined: 01 Jun 16 15:36

Re: Compacting throws exception

Post by peterpix » 17 Apr 19 17:22

Thanks, that worked a treat.

And PSU now (after compacting thumbs) loading and ready to go in about 6 seconds (as opposed to 30-60 seconds before compacting the catalogue database, and about 15-20 seconds after compacting that database but before compacting the thumbs db).

My computer seems a little bit zippier overall as well.

On first startup after the changeover there was a nasty looking Javascript error report on login to Windows, but thankfully that went away the second time I restarted, so perhaps whatever that was that was unhappy had to get used to the new configuration.

Post Reply