darktable-org / darktable

darktable is an open source photography workflow application and raw developer
https://www.darktable.org
GNU General Public License v3.0
9.77k stars 1.14k forks source link

DT 4.6.1 crashes with SegFault when trying to open import dialog #17318

Open heikofalk opened 2 months ago

heikofalk commented 2 months ago

Describe the bug

Starting with a freshly installed computer (Lenovo ThinkPad X13, kubuntu 24.04 LTS amd64, darktable 4.6.1 from ubuntu, German locale) without any existing configuration files ($HOME/.config/darktable does not exist), I start darktable in the shell. The main window comes up properly. Clicking on the Import ("Importieren" in the German locale) entry in the leftmost menu properly unfolds this part of the menu. And when then hitting the "import..." button ("importieren..."), darktable directly crashes. The attached backtrace seems to indicate that libpango crashes.

Steps to reproduce

  1. rm -rf $HOME/.config/darktable
  2. darktable &
  3. Hit "import" entry from left menu
  4. Click on "import..." button
  5. Segmentation fault

Expected behavior

Open a file selection dialog where to choose the images to be imported.

Logfile | Screenshot | Screencast

darktable_bt_85T7R2.txt

Commit

No response

Where did you obtain darktable from?

distro packaging

darktable version

4.6.1

What OS are you using?

Linux

What is the version of your OS?

kubuntu 24.04 LTS amd64

Describe your system?

Lenovo ThinkPad X13, 32G RAM, built-in Intel graphics, X11, libgtk-3-0t64 version 3.24.41-4ubuntu1.1

Are you using OpenCL GPU in darktable?

None

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

heikofalk commented 2 months ago

Sure, is attached. dt.log

When I explicitly unset the German locale (export LANG=; export LC_ALL=) and start darktable afterwards, the GUI comes up all in English and the import menu and the file selection dialog then show up correctly without crash.

victoryforce commented 2 months ago

Please check if this issue exists in version 4.8.1. The easiest way to do this is to download an AppImage, set the executable bit to it, and launch.

heikofalk commented 2 months ago

Dear Victor,

I just played a bit with the 4.8.1 AppImage. When I start it as follows, with a completely "clean" environment, the import dialog comes up and DT does not crash:

rm -rf $HOME/.config/darktable ./darktable-4.8.1-x86_64.AppImage > dt481.ok.log 2>&1

The OK log file dt481.ok.log is attached here, everything looks fine. dt481.ok.log A screenshot of the DT main window is also attached, just for information. Everything looks clean, but I observe some locale mixture (menus all in English, explanation text in the center all German, German locale in my environment, DT settings also report German user interface). I don't know if this has any meaning, just want to mention it here. Screenshot ok

However, when I start the AppImage without removing my prior pre-4.8.1config directory:

cp -R $HOME/.config/darktable.orig $HOME/.config/darktable ./darktable-4.8.1-x86_64.AppImage > dt481.fail.log 2>&1

then DT 4.8.1 starts with the dialog to update the database, and then shows its main window with all my existing Sony Alpha styles, etc (Screenshot attached, too). Screenshot fail And then, hitting "add to library..." again leads to a crash. Backtrace and full log are attached. darktable_bt_KQ9VS2.txt dt481.fail.log

Best,

Heiko

ralfbrown commented 1 month ago

The crash is happening when attempting to do font layout, but since it happens deep inside Gtk and those libraries have no debugging info it's not possible to determine the ultimate cause. My guess is that you have some interaction between the active font with the old config and a specific character or characters in some file's or directory's name.

The screenshots don't show an obviously different theme, but I would compare the themes set for the two configurations ("general" tab in the global preferences dialog, probably "Allgemeines" in German) since that affects the fonts used.