darktable
darktable copied to clipboard
Darktable 4.6.0 crashes when clicking "show global preferences"
Describe the bug
After upgrading to Darktable 4.6.0, as soon as I click "show global preferences", the application exists.
Steps to reproduce
- Open Darktable (shown in Lighttable mode).
- Click "show global preferences" (the button before the "lighttable" title).
Expected behavior
Open the preferences dialog.
Logfile | Screenshot | Screencast
Commit
No response
Where did you obtain darktable from?
distro packaging
darktable version
4.6.0
What OS are you using?
Linux
What is the version of your OS?
Manjaro
Describe your system?
An updated Manjaro distro. X11.
Are you using OpenCL GPU in darktable?
I dont know
If yes, what is the GPU card and driver?
No response
Please provide additional context if applicable. You can attach files too, but might need to rename to .txt or .zip
No response
Cannot reproduce with 4.7.0+524~g44b346cc0f, Ubuntu 22.04
Did you try launching darktable from the commandline with a fresh configuration ( --configdir <dirname> ) , dirname pointing to an empty or non existing directory. See https://darktable-org.github.io/dtdocs/en/special-topics/program-invocation/darktable/
Can you provide a debug log of the crash ( for example -d common or -d all ) ?
- Launching Darktable with a fresh configuration opens fine. Are there hints in the crash log what's part of my configuration is causing this? (it worked before upgrading just a few days ago)
- Attached is the debug log using
-d all. darktable_bt_TCQWI2.txt
Darktable with a fresh configuration opens fine
Possibly a damaged darktablerc ? You can check this by restoring your old configuration without darktablerc, then launching darktable again. Still crashing ?
You provided a backtrace of the crash. The debug log -d all is the terminal output of darktable before it crashes. You can redirect it to a file, for example darktable -d all > path/to/logfile.txt
I deleted darktablerc, it opened with what seemed to be some default configuration (e.g. not my style settings), but still crashed the same.
Here's a log with -d all directed to file.
log.txt
From the log for me this looks like a problem with your presets. They are saved in data.db. Can you check again with your old configuration but now without data.db ?
Launching without data.db works, I can open the global preferences.
Is there a way to narrow down the issue further?
Inside data.db there is a table presets. One could try to analyze the content of this table. But for this we need an expert for darktables databases...
Does anyone feel addressed ? @TurboGit ?
@esm7 , do you still have an older darktable version? And backups of your databases ( ...-pre-4.6.0 ) ? Can you open the preferences dialog with this version ? In this case, you can also try to narrow down the problem further by exporting your personal presets using Preferences -> Presets -> Export.
Then start darktable 4.6.0 without data.db and try to re-import your exported presets step by step.
I have all the backups (great thing that Darktable saves them) but not quite sure how to install an older Darktable on Manjaro as a rolling release. I'll look into it.
Disclaimer: I never used Manjaro, so I can't tell you for sure if this would work... https://wiki.manjaro.org/index.php/Downgrading_packages#Introduction
Sorry for the holdup. I tried to give this a go but downgrading packages in Manjaro/Arch is a hit or miss, and this time it was a miss... Since the whole distro is rolled as one unit, a downgrade of a single package quickly escalates into a dependency hell. At least that's my experience... I tried with the manjaro-downgrade utility, but starting from an incompatibility with libjxl.so.0.8 and going further, it became too much of a project :( Is there any way to export presets from the command line or without opening the settings window?
presets are contained in ~/.config/darktable/data.db and visible using sqlite3 or sqlitebrowser or ...
Example to just list the content of a table as terminal output (create a backup copy of your database first) :
sqlite3 /path/to/your/data.db "select * from presets"
but consider: the table contains BLOBs (Binary Large Objects) which are not human readable
... or dump the content of table presets into a file with SQL commands
$ sqlite3 /path/to/your/data.db
sqlite> .output /path/to/presets.sql
sqlite> .dump presets
sqlite> .quit
Part of these commands (INSERT INTO) could be used to reimport (part of) your presets into a fresh database.
... or you can use a tool with graphical user interface like SQLiteStudio (only one example of several tools available)
This issue has been marked as stale due to inactivity for the last 60 days. It will be automatically closed in 300 days if no update occurs. Please check if the master branch has fixed it and report again or close the issue.