Bug 413648

Summary: Dolphin File-Manager Doesn't Create Thumbnails when Using the 'gtk2' Style of 'qtstyleplugins'
Product: [Applications] dolphin Reporter: Jamie Michelle <ladyjamie>
Component: generalAssignee: Dolphin Bug Assignee <dolphin-bugs-null>
Status: RESOLVED WORKSFORME    
Severity: normal CC: fabian, kfm-devel
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Arch Linux   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Jamie Michelle 2019-10-30 20:45:04 UTC
Hi, everyone. When the Arch Linux-based package 'qt5-styleplugins' is used and the environment variable QT_QPA_PLATFORMTHEME= is set on "gtk2", or "qt5ct" with its interface set on Appearance > Style: gtk2, the Dolphin file-manager will not create new thumbnails, although thumbnails that were previously created (such as with Thunar, or Dolphin not using "gtk2") will be shown. This problem doesn't occur with the other styles of 'qtstyleplugins'.

I traced this problem back to GLib. The problem was introduced with the following package, and remains in later versions:

glib2-2.62.1-1-x86_64.pkg.tar.xz

The following version and previous versions work properly:

glib2-2.60.6-1-x86_64.pkg.tar.xz

However, using this previous version breaks some (but not all) GTK+ 3 programs.

How I tracked the problem to GLib was that I replaced (using 'downgrade') with previous known working versions any package that I thought might be connected to Dolphin's thumbnailing or its theming (including Dolphin itself), yet nothing had any effect. Then I thought to start Dolphin in a 'uxterm' in order to see the output. That's when I saw that GLib was outputting errors that were causing '/usr/lib/qt/plugins/kf5/kio/thumbnail.so' to crash. Upon seeing that, when I replaced the GLib package as related above, thumbnailing worked.

What I take the GLib error messages (involving 'platform_get_argv0' in the output) to mean is that GLib doesn't recognize the platform "gtk2", and that then causes 'thumbnail.so' to crash. Thus, in order for 'thumbnail.so' to work, apparently it requires GLib not to exit with error messages like that upon not recognizing the platform.

I here provide links to three PNGs of 'uxterm' output when Dolphin is started in it. 'Dolphin-thumbnailing-working-Windows-style-via-qt5ct.png' is when the 'qt5ct' program is set on the "Windows" style, and thumbnailing works. 'Dolphin-thumbnailing-failing-gtk2-style-via-qt5ct.png' is when the 'qt5ct' program is set on the "gtk2" style, and thumbnailing doesn't work. 'Dolphin-thumbnailing-failing-gtk2-style-direct.png' is when QT_QPA_PLATFORMTHEME= is directly set on "gtk2", and thumbnailing doesn't work.

* Dolphin-thumbnailing-working-Windows-style-via-qt5ct.png , https://ibb.co/TWBqj4f , https://archive.is/VTMQO .

* Dolphin-thumbnailing-failing-gtk2-style-via-qt5ct.png , https://ibb.co/VYd1145 , https://archive.is/5As1p .

* Dolphin-thumbnailing-failing-gtk2-style-direct.png , https://ibb.co/7ypN042 , https://archive.is/lPQkw .

Whether the style is set via the 'qt5ct' program or is directly set with QT_QPA_PLATFORMTHEME= doesn't matter to this problem. If "gtk2" is the style, thumbnailing fails either way, yet every other style works.

This problem is quite unfortunate because I use the "gtk2" style for Qt 5 programs, and Dolphin is my primary file-manager. Further, this breaks my Computing Machine desktop-environment theme ( https://www.pling.com/p/1315191/ ).

Can this problem please be fixed? Thank you for your time on this matter!
Comment 1 Fabian Vogt 2019-10-31 12:17:09 UTC
Please try it with a style which works fine and post the output of "hexdump -C /proc/$(pgrep -n thumbnail.so)/cmdline".

I cannot reproduce the issue here with glib2 2.62.1 here on Tumbleweed, cmdline is always terminated with a nullbyte.
Comment 2 Jamie Michelle 2019-11-04 20:08:58 UTC
(In reply to Fabian Vogt from comment #1)
> Please try it with a style which works fine and post the output of "hexdump
> -C /proc/$(pgrep -n thumbnail.so)/cmdline".
> 
> I cannot reproduce the issue here with glib2 2.62.1 here on Tumbleweed,
> cmdline is always terminated with a nullbyte.

Hi, Fabian Vogt. My apologies for not responding sooner. Here is the output of your command:

$ hexdump -C /proc/$(pgrep -n thumbnail.so)/cmdline
00000000  42 4f 4f 54 5f 49 4d 41  47 45 3d 2f 62 6f 6f 74  |BOOT_IMAGE=/boot|
00000010  2f 76 6d 6c 69 6e 75 7a  2d 34 2e 31 34 2d 78 38  |/vmlinuz-4.14-x8|
00000020  36 5f 36 34 20 72 6f 6f  74 3d 55 55 49 44 3d 32  |6_64 root=UUID=2|
00000030  61 63 38 31 65 36 34 2d  66 30 61 39 2d 34 66 64  |ac81e64-f0a9-4fd|
00000040  64 2d 61 38 65 63 2d 63  66 34 36 37 36 33 33 31  |d-a8ec-cf4676331|
00000050  66 62 61 20 72 77 20 71  75 69 65 74 20 63 72 79  |fba rw quiet cry|
00000060  70 74 64 65 76 69 63 65  3d 55 55 49 44 3d 39 62  |ptdevice=UUID=9b|
00000070  38 66 35 33 33 30 2d 62  39 61 31 2d 34 34 62 37  |8f5330-b9a1-44b7|
00000080  2d 62 63 64 31 2d 36 35  37 36 38 37 30 30 34 39  |-bcd1-6576870049|
00000090  32 66 3a 6c 75 6b 73 2d  39 62 38 66 35 33 33 30  |2f:luks-9b8f5330|
000000a0  2d 62 39 61 31 2d 34 34  62 37 2d 62 63 64 31 2d  |-b9a1-44b7-bcd1-|
000000b0  36 35 37 36 38 37 30 30  34 39 32 66 20 72 6f 6f  |65768700492f roo|
000000c0  74 3d 2f 64 65 76 2f 6d  61 70 70 65 72 2f 6c 75  |t=/dev/mapper/lu|
000000d0  6b 73 2d 39 62 38 66 35  33 33 30 2d 62 39 61 31  |ks-9b8f5330-b9a1|
000000e0  2d 34 34 62 37 2d 62 63  64 31 2d 36 35 37 36 38  |-44b7-bcd1-65768|
000000f0  37 30 30 34 39 32 66 20  72 65 73 75 6d 65 3d 2f  |700492f resume=/|
00000100  64 65 76 2f 6d 61 70 70  65 72 2f 6c 75 6b 73 2d  |dev/mapper/luks-|
00000110  39 62 38 66 35 33 33 30  2d 62 39 61 31 2d 34 34  |9b8f5330-b9a1-44|
00000120  62 37 2d 62 63 64 31 2d  36 35 37 36 38 37 30 30  |b7-bcd1-65768700|
00000130  34 39 32 66 0a                                    |492f.|
00000135


Also, the following threads are relevant to this problem:

* Jamie Michelle, "Recent Versions of GLib Break Dolphin File-Manager's Thumbnailing when Using 'gtk2' Style", Oct. 29, 2019, https://gitlab.gnome.org/GNOME/glib/issues/1923 .

Simon McVittie, "goption: Relax assertion to avoid being broken by kdeinit5", Oct. 31, 2019, https://gitlab.gnome.org/GNOME/glib/commit/15a5c2dcf8edacbf7e105c97bd1f34295b1f2a98 .
Comment 3 Fabian Vogt 2019-11-04 20:31:07 UTC
(In reply to Jamie Michelle from comment #2)
> (In reply to Fabian Vogt from comment #1)
> > Please try it with a style which works fine and post the output of "hexdump
> > -C /proc/$(pgrep -n thumbnail.so)/cmdline".
> > 
> > I cannot reproduce the issue here with glib2 2.62.1 here on Tumbleweed,
> > cmdline is always terminated with a nullbyte.
> 
> Hi, Fabian Vogt. My apologies for not responding sooner. Here is the output
> of your command:
> 
> $ hexdump -C /proc/$(pgrep -n thumbnail.so)/cmdline
> 00000000  42 4f 4f 54 5f 49 4d 41  47 45 3d 2f 62 6f 6f 74 
> |BOOT_IMAGE=/boot|

Unfortunately thumbnail.so was not running at that point so you dumped /proc/cmdline instead...
Can you try again? You should get different output.
 
> Also, the following threads are relevant to this problem:
> 
> * Jamie Michelle, "Recent Versions of GLib Break Dolphin File-Manager's
> Thumbnailing when Using 'gtk2' Style", Oct. 29, 2019,
> https://gitlab.gnome.org/GNOME/glib/issues/1923 .

Apparently a GLib dev had a look at our code as well:

> More specifically, it looks like kdeinit5 overwrites the memory occupied by the elements of argv, which in turn changes /proc/self/cmdline (although I can't see how it would end up non-terminated).

So he can't spot the bug either...

> Simon McVittie, "goption: Relax assertion to avoid being broken by
> kdeinit5", Oct. 31, 2019,
> https://gitlab.gnome.org/GNOME/glib/commit/
> 15a5c2dcf8edacbf7e105c97bd1f34295b1f2a98 .

Ok, so it's fixed upstream in glib, that's good news.
Comment 4 Bug Janitor Service 2019-11-19 04:33:09 UTC
Dear Bug Submitter,

This bug has been in NEEDSINFO status with no change for at least
15 days. Please provide the requested information as soon as
possible and set the bug status as REPORTED. Due to regular bug
tracker maintenance, if the bug is still in NEEDSINFO status with
no change in 30 days the bug will be closed as RESOLVED > WORKSFORME
due to lack of needed information.

For more information about our bug triaging procedures please read the
wiki located here:
https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

If you have already provided the requested information, please
mark the bug as REPORTED so that the KDE team knows that the bug is
ready to be confirmed.

Thank you for helping us make KDE software even better for everyone!
Comment 5 Bug Janitor Service 2019-12-04 04:33:11 UTC
This bug has been in NEEDSINFO status with no change for at least
30 days. The bug is now closed as RESOLVED > WORKSFORME
due to lack of needed information.

For more information about our bug triaging procedures please read the
wiki located here:
https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

Thank you for helping us make KDE software even better for everyone!