Bug 2241946 - [abrt] mate-applets: XChangeProperty(): stickynotes-applet killed by SIGSEGV
Summary: [abrt] mate-applets: XChangeProperty(): stickynotes-applet killed by SIGSEGV
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: mate-applets
Version: 39
Hardware: x86_64
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Wolfgang Ulbrich
QA Contact: Fedora Extras Quality Assurance
URL: https://retrace.fedoraproject.org/faf...
Whiteboard: abrt_hash:17fc603e98f6ecd15085a32c7c8...
: 2241898 (view as bug list)
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2023-10-03 14:53 UTC by Wolfgang Ulbrich
Modified: 2023-11-03 18:31 UTC (History)
4 users (show)

Fixed In Version: mate-applets-1.26.1-6.fc39
Clone Of:
Environment:
Last Closed: 2023-11-03 18:31:22 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)
File: proc_pid_status (1.43 KB, text/plain)
2023-10-03 14:53 UTC, Wolfgang Ulbrich
no flags Details
File: maps (4.00 KB, text/plain)
2023-10-03 14:53 UTC, Wolfgang Ulbrich
no flags Details
File: limits (1.29 KB, text/plain)
2023-10-03 14:53 UTC, Wolfgang Ulbrich
no flags Details
File: environ (1.65 KB, text/plain)
2023-10-03 14:53 UTC, Wolfgang Ulbrich
no flags Details
File: open_fds (1.21 KB, text/plain)
2023-10-03 14:53 UTC, Wolfgang Ulbrich
no flags Details
File: mountinfo (3.15 KB, text/plain)
2023-10-03 14:54 UTC, Wolfgang Ulbrich
no flags Details
File: os_info (731 bytes, text/plain)
2023-10-03 14:54 UTC, Wolfgang Ulbrich
no flags Details
File: cpuinfo (2.80 KB, text/plain)
2023-10-03 14:54 UTC, Wolfgang Ulbrich
no flags Details
File: core_backtrace (17.88 KB, text/plain)
2023-10-03 14:54 UTC, Wolfgang Ulbrich
no flags Details
File: exploitable (101 bytes, text/plain)
2023-10-03 14:54 UTC, Wolfgang Ulbrich
no flags Details
File: dso_list (659 bytes, text/plain)
2023-10-03 14:54 UTC, Wolfgang Ulbrich
no flags Details
File: backtrace (73.07 KB, text/plain)
2023-10-03 14:54 UTC, Wolfgang Ulbrich
no flags Details

Description Wolfgang Ulbrich 2023-10-03 14:53:50 UTC
Description of problem:
New notes do not appear on screen, sometimes applet crashes. 

Reproducible: Always

Steps to Reproduce:
1. add stricky notes to panel
2. New note
3.
Actual Results:  
Nothing. Only after pressing "new note", mouseover shows that the invisible notes are counted. 

Expected Results:  
New note on screen 

and mate's "unexpected close" message appears. 

Version-Release number of selected component:
mate-applets-1.26.1-5.fc39

Additional info:
reporter:       libreport-2.17.11
type:           CCpp
reason:         stickynotes-applet killed by SIGSEGV
journald_cursor: s=2d388f66e6284132af7a248cf60bfbac;i=3d24;b=6420b7afc2594c1d87805b5993c116ff;m=2ba57cc4;t=606d0d80f9ccc;x=3f19256a312f2f23
executable:     /usr/libexec/mate-applets/stickynotes-applet
cmdline:        /usr/libexec/mate-applets/stickynotes-applet
cgroup:         0::/user.slice/user-1000.slice/user/app.slice/app-dbus\x2d:1.2\x2dorg.mate.panel.applet.StickyNotesAppletFactory.slice/dbus-:1.2-org.mate.panel.applet.StickyNotesAppletFactory
rootdir:        /
uid:            1000
kernel:         6.5.5-300.fc39.x86_64
package:        mate-applets-1.26.1-5.fc39
runlevel:       N 5
backtrace_rating: 4
crash_function: XChangeProperty

Truncated backtrace:
Thread no. 1 (21 frames)
 #0 XChangeProperty at /usr/src/debug/libX11-1.8.6-2.fc39.x86_64/src/ChProp.c:46
 #1 set_icon_geometry at /usr/src/debug/mate-applets-1.26.1-5.fc39.x86_64/stickynotes/stickynotes.c:63
 #2 stickynote_set_visible at /usr/src/debug/mate-applets-1.26.1-5.fc39.x86_64/stickynotes/stickynotes.c:749
 #3 stickynote_show_notes at /usr/src/debug/mate-applets-1.26.1-5.fc39.x86_64/stickynotes/stickynotes_applet_callbacks.c:74
 #4 stickynote_toggle_notes_visible at /usr/src/debug/mate-applets-1.26.1-5.fc39.x86_64/stickynotes/stickynotes_applet_callbacks.c:81
 #5 applet_button_cb at /usr/src/debug/mate-applets-1.26.1-5.fc39.x86_64/stickynotes/stickynotes_applet_callbacks.c:95
 #6 _gtk_marshal_BOOLEAN__BOXED at gtk/gtkmarshalers.c:84
 #8 signal_emit_unlocked_R.isra.0 at ../gobject/gsignal.c:3980
 #9 signal_emit_valist_unlocked at ../gobject/gsignal.c:3625
 #12 gtk_widget_event_internal.part.0.lto_priv.0 at ../gtk/gtkwidget.c:7812
 #13 propagate_event_up at ../gtk/gtkmain.c:2588
 #14 propagate_event at ../gtk/gtkmain.c:2691
 #15 gtk_propagate_event at ../gtk/gtkmain.c:2725
 #16 gtk_main_do_event at ../gtk/gtkmain.c:1921
 #18 _gdk_event_emit at ../gdk/gdkevents.c:73
 #20 gdk_event_source_dispatch.lto_priv at ../gdk/x11/gdkeventsource.c:354
 #22 g_main_context_dispatch_unlocked at ../glib/gmain.c:4284
 #23 g_main_context_iterate_unlocked.isra.0 at ../glib/gmain.c:4349
 #25 gtk_main at ../gtk/gtkmain.c:1329
 #26 _mate_panel_applet_factory_main_internal at /usr/src/debug/mate-panel-1.26.3-3.fc39.x86_64/libmate-panel-applet/mate-panel-applet.c:2459
 #27 mate_panel_applet_factory_main at /usr/src/debug/mate-panel-1.26.3-3.fc39.x86_64/libmate-panel-applet/mate-panel-applet.c:2487

Comment 1 Wolfgang Ulbrich 2023-10-03 14:53:54 UTC
Created attachment 1991851 [details]
File: proc_pid_status

Comment 2 Wolfgang Ulbrich 2023-10-03 14:53:55 UTC
Created attachment 1991852 [details]
File: maps

Comment 3 Wolfgang Ulbrich 2023-10-03 14:53:57 UTC
Created attachment 1991853 [details]
File: limits

Comment 4 Wolfgang Ulbrich 2023-10-03 14:53:58 UTC
Created attachment 1991854 [details]
File: environ

Comment 5 Wolfgang Ulbrich 2023-10-03 14:53:59 UTC
Created attachment 1991855 [details]
File: open_fds

Comment 6 Wolfgang Ulbrich 2023-10-03 14:54:01 UTC
Created attachment 1991856 [details]
File: mountinfo

Comment 7 Wolfgang Ulbrich 2023-10-03 14:54:03 UTC
Created attachment 1991857 [details]
File: os_info

Comment 8 Wolfgang Ulbrich 2023-10-03 14:54:05 UTC
Created attachment 1991858 [details]
File: cpuinfo

Comment 9 Wolfgang Ulbrich 2023-10-03 14:54:06 UTC
Created attachment 1991859 [details]
File: core_backtrace

Comment 10 Wolfgang Ulbrich 2023-10-03 14:54:08 UTC
Created attachment 1991860 [details]
File: exploitable

Comment 11 Wolfgang Ulbrich 2023-10-03 14:54:09 UTC
Created attachment 1991861 [details]
File: dso_list

Comment 12 Wolfgang Ulbrich 2023-10-03 14:54:11 UTC
Created attachment 1991862 [details]
File: backtrace

Comment 13 Wolfgang Ulbrich 2023-10-03 14:58:00 UTC
*** Bug 2241898 has been marked as a duplicate of this bug. ***

Comment 14 Wolfgang Ulbrich 2023-10-03 20:27:30 UTC
Original description from https://bugzilla.redhat.com/show_bug.cgi?id=2241898

```
New notes do not appear on screen, sometimes applet crashes. 



Reproducible: Always

Steps to Reproduce:
1. add stricky notes to panel
2. New note
3.
Actual Results:  
Nothing. Only after pressing "new note", mouseover shows that the invisible notes are counted. 


Expected Results:  
New note on screen 

gdb attached to the Fedora 39 rpm non debug version shows:
Thread 1 "stickynotes-app" received signal SIGSEGV, Segmentation fault.
0x00007f47fed565fd in XChangeProperty () from /lib64/libX11.so.6

and mate's "unexpected close" message appears. 


New version 1.27 from git works but runs unstable, crashes when closing and opening notes.

Installing old version mate-applets-1.26.1-3.fc38.x86_64 solves the problem in the current F39 beta version.
```

Comment 15 Wolfgang Ulbrich 2023-10-03 20:58:48 UTC
mate-applets-1.26.1-3.fc38.x86_64 was build against libX11-1.8.3-2.fc38.x86_64.rpm.
A local rebuild of mate-applets against current libX11-1.8.6-1.fc38.x86_64 introduced the same issue in f38.
So chances are high that a change in libx11 causes the issue.

Comment 16 H.Janssen 2023-10-04 08:35:01 UTC
I tried the following:

Installed in F39 fedora:latest container, fc38, with rpm build tools. "dnf builddep" installed everything to build mate-applets, all regards for the packagers. The stickynotes in the homebrew f38 package did not work. 

The release f38 sticky notes is the only one pulling /lib64/libgtksourceview-3.so.0, not the F39 one nor the homemade F38.
"objdump -T" shows in the release F38 stickynotes-applet a lot of undefines which are NOT in the home made F38 and F39, all with "type" in their names. 

If I see it correctly, they are defined as macro in /usr/include/gtk-3.0, so disappear from the extern symbol list. 

Could it be that during the F38 rebuild, using a newer version of gtk libs, an incompatibility with GTK is introduced?



Upstream they already did something, 

  stickynotes: bump gtksourceview 4

GtkSourceBuffer provides the ability to undo or redo the change
to the note text-body.  pluma uses gtksourceview 4, so we don't
need to depend on two versions.

resulting on my system in a working but unstable version after compiling from git, but I have to look into further before sending reports. At least it produces more than invisible windows.

Comment 17 H.Janssen 2023-10-05 07:56:48 UTC
There is a subtile problem in the compilation stage. Key is the inclusion of libgtksourceview.

Steps:
build the F39 mate-applets rpm without cleaning the BUILD folder.
Stickynotes will not work, libgtksourceview is not in "ldd"
cd into the mate-applets BUILD directory and repeat the configure with the same line from configure.log, make stickynotes.
ldd stickynotes-applet shows libgtksourceview, cp to /usr/libexec and the software is funcyional.

I suspect some CPPFLAG, but that's beyong my competence.

Attached: Makefile as created by rpmbuild and makefile after manual configure.

Comment 18 H.Janssen 2023-10-05 08:00:55 UTC
Sorry, see no attach possibility,so here is diff rpm and manually repeated config:

285c285
< CC = gcc
---
> CC = x86_64-redhat-linux-gcc
287,288c287,288
< CFLAGS = -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64   -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer 
< CPP = gcc -E
---
> CFLAGS = -g -O2
> CPP = x86_64-redhat-linux-gcc -E
342c342
< LDFLAGS = -Wl,-z,relro -Wl,--as-needed  -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes 
---
> LDFLAGS = 
361c361
< LT_SYS_LIBRARY_PATH = /usr/lib64:
---
> LT_SYS_LIBRARY_PATH = 
393c393
< PKG_CONFIG_PATH = :/usr/lib64/pkgconfig:/usr/share/pkgconfig
---
> PKG_CONFIG_PATH =

Comment 19 Wolfgang Ulbrich 2023-10-05 09:36:51 UTC
I got same results. Compiling mate-applets from git works for master (1.27) and 1.26 branch in f39 and f38 and stickynotes runs fine.
But building 1.26 or 1.27 as rpm for f38 and f39 gives the error.
I will investigate which compiler flag causes the issue in rpm building.
For the moment you can compile by hand. Use `git checkout 1.26` to switch branch
I used this options same as in rpms.
`./configure --disable-static --with-x --enable-polkit --enable-ipv6 --enable-stickynotes --libexecdir=/usr/libexec/mate-applets --with-dbus-sys=/usr/share/dbus-1/system.d --prefix=/usr` 
The 1.27 version has a weird new default gsettings key.
[rave@mother ~]$ gsettings get org.mate.stickynotes click-hide
false

Needs to be set to false otherwise you can't hide the note with a click on the icon.

Comment 20 H.Janssen 2023-10-05 19:08:15 UTC
Found, I think.

There is a rather weird construction defining a pointer into gsourceview, which can be done always, and in fact no real function call.
You can compile the thing leaving away libgtksourceviewe from LDFLAGS. Compilation succeeds, but you will be punished,it does not work.
You cannot leave away the includes for gtksourceview, because definition of a pointer into it. 

The culprit is in LDFLAGS:

-Wl,--as-needed 

This flag causes the lib to be not loaded if it is not needed. But not loaded means not working, so this is wrong in this special case.

I do not know yet how to fiddle this in the spec file, problably STICKYNOTES_LIBS could be a environment variable.

Learned a lot again..... 
Hope a working mate-applets in the F39 release, this is a minor change if you know how to do it.

Comment 21 H.Janssen 2023-10-06 06:15:10 UTC
The way it works:

diff mate-applets.spec mate-applets.spec.org 
18c18
< Release:        6%{?dist}
---
> Release:        5%{?dist}
89,92c89
< #remove as-needed flag in stickynotes Makefile to force libgtksourceview loading
< f=stickynotes/Makefile
< ftemp=$(mktemp $f.XXXXXX)
< sed '/^LDFLAGS = / s/-Wl,--as-needed//' <$f >$ftemp && mv $ftemp $f 
---
> 


I compared with a F37 VM:
Cause is update of gtksourcebuffer, where gtk_source_buffer_get_type() is replaced by a macro and the binding to the library becomes dangling.

Comment 22 Wolfgang Ulbrich 2023-10-06 10:26:40 UTC
Nice, i replaced -Wl,--as-needed with -Wl,--no-as-needed in rpm and this works for me.
`sed -i /LDFLAGS/s/--as-needed/--no-as-needed/g stickynotes/Makefile`
StickyNotes is one of the applets which i don't use for myself.
Can you please test this scratch build for f39?
https://koji.fedoraproject.org/koji/taskinfo?taskID=107125865
If it works for you i will push it to fedora.

Comment 23 H.Janssen 2023-10-06 13:56:59 UTC
Yes, notes appear again !

Nevertheless, it's a bit weird, C++ classes from C, I've to look into it, I have no experience with GTK.
There seems to be an introspection layer in between, so may be any function is addressed via table lookup and instance address instead of linker... Something to study. I'll try the new version too, thanks for the hind with the strange parameter.

Thanks and kind regards,

Comment 24 Fedora Update System 2023-10-06 14:31:12 UTC
FEDORA-2023-356c4e9544 has been submitted as an update to Fedora 39. https://bodhi.fedoraproject.org/updates/FEDORA-2023-356c4e9544

Comment 25 Fedora Update System 2023-10-07 02:32:53 UTC
FEDORA-2023-356c4e9544 has been pushed to the Fedora 39 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --refresh --advisory=FEDORA-2023-356c4e9544`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2023-356c4e9544

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 26 Wolfgang Ulbrich 2023-10-07 19:11:12 UTC
(In reply to H.Janssen from comment #23)
> Yes, notes appear again !
> 
> Nevertheless, it's a bit weird, C++ classes from C, I've to look into it, I
> have no experience with GTK.
> There seems to be an introspection layer in between, so may be any function
> is addressed via table lookup and instance address instead of linker...
> Something to study. I'll try the new version too, thanks for the hind with
> the strange parameter.
> 
> Thanks and kind regards,

If you find issues with 1.27 version please report it at upstream.
It's better to fix them now before a new MATE major release.

Comment 27 H.Janssen 2023-10-08 08:32:14 UTC
1.27 builds easily based on the 1.26 spec, with gtksourcesettings4

Without adapting Makefile, libgtksourcesettings4 is not loaded, so the problem persists.

The notes refuse to hide, but this already reported from a Debian user. With complete installation, there is no crash, but also no hide.

Comment 28 H.Janssen 2023-10-08 08:34:28 UTC
Sorry, gtksourcesettings4 should read libgtksourceview4

Comment 29 Wolfgang Ulbrich 2023-10-08 09:23:27 UTC
Which report from a debian user?
Of cource building 1.27 version as rpm gives the same problem.
This i know already.
I meant building from git and report other issues to upstream.
When build as rpm you need to add
`sed -i /LDFLAGS/s/--as-needed/--no-as-needed/g stickynotes/Makefile`
after configure part in spec file

Comment 30 H.Janssen 2023-10-11 06:10:50 UTC
https://github.com/mate-desktop/mate-applets/issues/650

To my opinion, this new click-hide settings is the other way around, setting it to off means that notes do hide. And it should not mean that the hide menu option disables too... If the problem persists I'll report upstream.

For the moment, I've cpuspeed, network monitor, weather and stickynotes active and all look fine in 1.27.1.

Comment 31 Fedora Update System 2023-11-03 18:31:22 UTC
FEDORA-2023-356c4e9544 has been pushed to the Fedora 39 stable repository.
If problem still persists, please make note of it in this bug report.


Note You need to log in before you can comment on or make changes to this bug.