joxeankoret / diaphora

Diaphora, the most advanced Free and Open Source program diffing tool.
http://diaphora.re
GNU Affero General Public License v3.0
3.58k stars 371 forks source link

sqlite3.OperationalError: database or disk is full #224

Closed Chrys4lisfag closed 2 years ago

Chrys4lisfag commented 3 years ago

I am getting this error when comparing two sql databases tho i have lot of free space. I guess there is kind of a limit (I compare kinda big bins)

Is there a way to change this limit somewhere?

joxeankoret commented 2 years ago

When do you get that error: at exporting or diffing time?

Chrys4lisfag commented 2 years ago

When diffing two exported sql. Sadly, I forgot to check at what diffing method it appears (closer to last one I think)

Chrys4lisfag commented 2 years ago

If you need something to check, tell me and I will start analysis again. Also, when this error occurs, it gets stuck at running "python script" and you can't even cancel it. The only way to terminate IDA in task manager. I tried to wait 48h but it just got stuck after that error

Chrys4lisfag commented 2 years ago

The size of both sql's are ~3.9gb and ~3.9gb as well

joxeankoret commented 2 years ago

Uhm... I believe I know the reason. Give me some time to verify on my end (withouth having you to send me some ~8 GB of databases or corresponding).

joxeankoret commented 2 years ago

OK, I think I know: your temporary directory volume/drive might be too small for the big queries it needs to issue. Try changing the $TMP, $TMPDIR or whatever applies in your operating system. Otherwise, I believe I will need to play with some SQLite pragmas (like "pragma temp_store = 2;").

Chrys4lisfag commented 2 years ago

Yeah, I was googling the error and there were different answers as to check disk space or some specific for sqllite like to change max_page_count variable.

I checked my disk space when I got that error and I had 100gb of free space on disk C:\ where current temp folder is located (I am Windows user btw). So I think I had enough space that time and I never heard that temp folder size itself was limited.

I will double check it with moving temp folder to D drive with 500gb free space but stil doubt it is the case

Chrys4lisfag commented 2 years ago

It is strange but it worked this time. It still was trying to create temp files in %appdata% folder tho I moved TMP and TEMP path in Windows to D drive.

I as well deleted some files from C drive to empty some space so I had ~150gb free this time. Idk what happened could it really make 100gb of cache last time?

Not fully sure what helped me. Was it emptying the drive or moving tmp folder or other magic but now it works. Thanks!

joxeankoret commented 2 years ago

You are welcome! BTW: remember to save the diffing results so you don't need to redo the diffing again :)