diff mbox series

[meta-xfce,master] tumbler: fix segfault on startup when built without any plugins

Message ID 20260226064416.778823-1-peng.zhang1.cn@windriver.com
State New
Headers show
Series [meta-xfce,master] tumbler: fix segfault on startup when built without any plugins | expand

Commit Message

Peng Zhang Feb. 26, 2026, 6:44 a.m. UTC
From: Zhang Peng <peng.zhang1.cn@windriver.com>

tumbler default build without any plugins. In this situation, when
xfce desktop startup, tumblerd will segfault as following:

```
tumblerd[1138]: segfault at 30 ip 00007fc5dc169fb0 sp 00007ffd03ee3be8 error 4 in libglib-2.0.so.0.8600.3
[aefb0,7fc5dc0da000+a0000] likely on CPU 2 (core 4, socket 0)
```
Backport upstream fix to handle cases where there are no plugins gracefully

Signed-off-by: Zhang Peng <peng.zhang1.cn@windriver.com>
---
 ...here-there-are-no-plugins-gracefully.patch | 58 +++++++++++++++++++
 .../recipes-xfce/tumbler/tumbler_4.20.1.bb    |  1 +
 2 files changed, 59 insertions(+)
 create mode 100644 meta-xfce/recipes-xfce/tumbler/files/0001-Handle-cases-where-there-are-no-plugins-gracefully.patch

Comments

patchtest@automation.yoctoproject.org Feb. 26, 2026, 7 a.m. UTC | #1
Thank you for your submission. Patchtest identified one
or more issues with the patch. Please see the log below for
more information:

---
Testing patch /home/patchtest/share/mboxes/meta-xfce-master-tumbler-fix-segfault-on-startup-when-built-without-any-plugins.patch

FAIL: test target mailing list: Series sent to the wrong mailing list or some patches from the series correspond to different mailing lists (test_mbox.TestMbox.test_target_mailing_list)

PASS: test CVE tag format (test_patch.TestPatch.test_cve_tag_format)
PASS: test Signed-off-by presence (test_mbox.TestMbox.test_signed_off_by_presence)
PASS: test Signed-off-by presence (test_patch.TestPatch.test_signed_off_by_presence)
PASS: test Upstream-Status presence (test_patch.TestPatch.test_upstream_status_presence_format)
PASS: test author valid (test_mbox.TestMbox.test_author_valid)
PASS: test commit message presence (test_mbox.TestMbox.test_commit_message_presence)
PASS: test commit message user tags (test_mbox.TestMbox.test_commit_message_user_tags)
PASS: test mbox format (test_mbox.TestMbox.test_mbox_format)
PASS: test non-AUH upgrade (test_mbox.TestMbox.test_non_auh_upgrade)
PASS: test shortlog format (test_mbox.TestMbox.test_shortlog_format)
PASS: test shortlog length (test_mbox.TestMbox.test_shortlog_length)

SKIP: pretest pylint: No python related patches, skipping test (test_python_pylint.PyLint.pretest_pylint)
SKIP: test bugzilla entry format: No bug ID found (test_mbox.TestMbox.test_bugzilla_entry_format)
SKIP: test pylint: No python related patches, skipping test (test_python_pylint.PyLint.test_pylint)
SKIP: test series merge on head: Merge test is disabled for now (test_mbox.TestMbox.test_series_merge_on_head)

---

Please address the issues identified and
submit a new revision of the patch, or alternatively, reply to this
email with an explanation of why the patch should be accepted. If you
believe these results are due to an error in patchtest, please submit a
bug at https://bugzilla.yoctoproject.org/ (use the 'Patchtest' category
under 'Yocto Project Subprojects'). For more information on specific
failures, see: https://wiki.yoctoproject.org/wiki/Patchtest. Thank
you!
diff mbox series

Patch

diff --git a/meta-xfce/recipes-xfce/tumbler/files/0001-Handle-cases-where-there-are-no-plugins-gracefully.patch b/meta-xfce/recipes-xfce/tumbler/files/0001-Handle-cases-where-there-are-no-plugins-gracefully.patch
new file mode 100644
index 0000000000..a4e60f998a
--- /dev/null
+++ b/meta-xfce/recipes-xfce/tumbler/files/0001-Handle-cases-where-there-are-no-plugins-gracefully.patch
@@ -0,0 +1,58 @@ 
+From 95244ee0d1f3184e2c2cae9d33095dc03829b10e Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ga=C3=ABl=20Bonithon?= <gael@xfce.org>
+Date: Fri, 20 Feb 2026 17:07:56 +0100
+Subject: [PATCH] Handle cases where there are no plugins gracefully
+
+Not sure it makes much sense to allow the cache plugin not to be built,
+but then again, why not? It could be replaced by a customized
+implementation, and it has always been possible not to build it, so we
+might as well leave it as it is.
+
+Fixes: #109
+(cherry picked from commit b4f4db4bfc1a45f0a405c4516e38394a44c90fcf)
+
+Upstream-Status: Backport [https://gitlab.xfce.org/xfce/tumbler/-/commit/95244ee0d1f3184e2c2cae9d33095dc03829b10e]
+
+Signed-off-by: Zhang Peng <peng.zhang1.cn@windriver.com>
+---
+ tumbler/tumbler-cache-plugin.c | 5 ++++-
+ tumblerd/tumbler-registry.c    | 7 ++++++-
+ 2 files changed, 10 insertions(+), 2 deletions(-)
+
+diff --git a/tumbler/tumbler-cache-plugin.c b/tumbler/tumbler-cache-plugin.c
+index 50700a3..e308638 100644
+--- a/tumbler/tumbler-cache-plugin.c
++++ b/tumbler/tumbler-cache-plugin.c
+@@ -188,7 +188,10 @@ tumbler_cache_plugin_get_default (void)
+       g_object_add_weak_pointer (G_OBJECT (plugin), (gpointer) &plugin);
+ 
+       if (!g_type_module_use (G_TYPE_MODULE (plugin)))
+-        return NULL;
++        {
++          g_object_unref (plugin);
++          return NULL;
++        }
+     }
+ 
+   return G_TYPE_MODULE (plugin);
+diff --git a/tumblerd/tumbler-registry.c b/tumblerd/tumbler-registry.c
+index 705dbc9..b58e831 100644
+--- a/tumblerd/tumbler-registry.c
++++ b/tumblerd/tumbler-registry.c
+@@ -534,7 +534,12 @@ tumbler_registry_update_supported (TumblerRegistry *registry)
+ 
+   /* abort if there are no thumbnailers */
+   if (thumbnailers == NULL)
+-    return;
++    {
++      /* we need NULL-terminated arrays for the _get_supported() dbus call anyway */
++      registry->uri_schemes = g_new0 (gchar *, 1);
++      registry->mime_types = g_new0 (gchar *, 1);
++      return;
++    }
+ 
+   /* clear visited flag of all thumbnailers */
+   for (lp = thumbnailers; lp != NULL; lp = lp->next)
+-- 
+2.50.0
+
diff --git a/meta-xfce/recipes-xfce/tumbler/tumbler_4.20.1.bb b/meta-xfce/recipes-xfce/tumbler/tumbler_4.20.1.bb
index 7a01882d57..3cbc43fc20 100644
--- a/meta-xfce/recipes-xfce/tumbler/tumbler_4.20.1.bb
+++ b/meta-xfce/recipes-xfce/tumbler/tumbler_4.20.1.bb
@@ -7,6 +7,7 @@  DEPENDS = "xfce4-dev-tools-native libxfce4util"
 
 inherit xfce gtk-doc systemd
 
+SRC_URI += " file://0001-Handle-cases-where-there-are-no-plugins-gracefully.patch"
 SRC_URI[sha256sum] = "87b90df8f30144a292d70889e710c8619d8b8803f0e1db3280a4293367a42eae"
 
 INSANE_SKIP:${PN} = "dev-so"