[gnome-flashback] SIGSEGV, after error in 'GfCrtcMode' land? (#72)
- From: Thomas Schwinge <thomas schwinge name>
- To: gnome-flashback-list gnome org
- Subject: [gnome-flashback] SIGSEGV, after error in 'GfCrtcMode' land? (#72)
- Date: Mon, 22 Feb 2021 23:02:39 +0100
Hi!
I'm certainly able to compile code, operate a debugger, etc. -- but I
don't have any meaningful experience with GNOME internals, so I'd
appreciate any input you may have about how to start debugging this
issue. Thanks!
Grüße
Thomas
| Date: Wed, 17 Feb 2021 21:25:39 +0000
| From: Thomas Schwinge <gitlab-issues gnome org>
| To: thomas schwinge name
| Subject: gnome-flashback | SIGSEGV, after error in 'GfCrtcMode' land? (#72)
|
| Thomas Schwinge created an issue: https://gitlab.gnome.org/GNOME/gnome-flashback/-/issues/72
|
|
|
| This is with up-to-date 32-bit x86 Debian GNU/Linux testing, running on a IBM ThinkPad T42. :-) (Yes,
that's a few years old.)
|
| Current GNOME is "a bit slow" on that one, so I thought I'd give gnome-flashback a try.
|
| With Debian gnome-flashback 3.38.0-1 I immediately run into a SIGSEGV, after what seems to be an "error in
`GfCrtcMode` land"?
|
| Reproduced when rebuilt that from sources, and gnome-flashback-dbgsym installed:
|
| $ gdb -q /usr/bin/gnome-flashback
| Reading symbols from /usr/bin/gnome-flashback...
| Reading symbols from /usr/lib/debug/.build-id/4c/c91e7308a1debe17c8c18495bb1db881b4b89d.debug...
| (gdb) r
| Starting program: /usr/bin/gnome-flashback
| [Thread debugging using libthread_db enabled]
| Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1".
| [New Thread 0xb37ccb40 (LWP 10305)]
| [New Thread 0xb2fcbb40 (LWP 10306)]
| [New Thread 0xb23ffb40 (LWP 10307)]
|
| (gnome-flashback:10286): gnome-flashback-WARNING **: 21:24:03.564: Failed to check if session has
entered the Running phase: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name
org.gnome.SessionManager was not provided by any .service files
| [New Thread 0xb1bfeb40 (LWP 10308)]
|
| (gnome-flashback:10286): GLib-GObject-CRITICAL **: 21:24:03.691: g_object_new_is_valid_property: object
class 'GfCrtcMode' has no property named '1024x768'
|
| (gnome-flashback:10286): GLib-CRITICAL **: 21:24:03.692: g_ref_count_inc: assertion 'rc != NULL' failed
|
| (gnome-flashback:10286): GLib-GObject-CRITICAL **: 21:24:03.692: g_object_new_is_valid_property: object
class 'GfCrtcMode' has no property named '800x600'
|
| (gnome-flashback:10286): GLib-CRITICAL **: 21:24:03.693: g_ref_count_inc: assertion 'rc != NULL' failed
|
| (gnome-flashback:10286): GLib-GObject-CRITICAL **: 21:24:03.694: g_object_new_is_valid_property: object
class 'GfCrtcMode' has no property named '848x480'
|
| (gnome-flashback:10286): GLib-CRITICAL **: 21:24:03.694: g_ref_count_inc: assertion 'rc != NULL' failed
|
| (gnome-flashback:10286): GLib-GObject-CRITICAL **: 21:24:03.695: g_object_new_is_valid_property: object
class 'GfCrtcMode' has no property named '720x480'
|
| (gnome-flashback:10286): GLib-CRITICAL **: 21:24:03.695: g_ref_count_inc: assertion 'rc != NULL' failed
|
| (gnome-flashback:10286): GLib-GObject-CRITICAL **: 21:24:03.696: g_object_new_is_valid_property: object
class 'GfCrtcMode' has no property named '640x480'
|
| (gnome-flashback:10286): GLib-CRITICAL **: 21:24:03.696: g_ref_count_inc: assertion 'rc != NULL' failed
|
| (gnome-flashback:10286): GLib-GObject-CRITICAL **: 21:24:03.697: g_object_new_is_valid_property: object
class 'GfCrtcXrandr' has no property named 'P\u000fY'
|
| (gnome-flashback:10286): GLib-GObject-CRITICAL **: 21:24:03.697: g_object_new_is_valid_property: object
class 'GfCrtcXrandr' has no property named 'P\u000fY'
|
| (gnome-flashback:10286): GLib-GObject-CRITICAL **: 21:24:03.700: g_object_new_is_valid_property: object
class 'GfOutputXrandr' has no property named 'P\u000fY'
|
| (gnome-flashback:10286): GLib-CRITICAL **: 21:24:03.700: g_ref_count_inc: assertion 'rc != NULL' failed
|
| Thread 1 "gnome-flashback" received signal SIGSEGV, Segmentation fault.
| 0x0041b734 in gf_gpu_get_backend (self=0x0) at gf-gpu.c:202
| warning: Source file is more recent than executable.
| 202 return priv->backend;
| (gdb) print priv
| $1 = (GfGpuPrivate *) 0xfffffff0
| (gdb) list
| 197 {
| 198 GfGpuPrivate *priv;
| 199
| 200 priv = gf_gpu_get_instance_private (self);
| 201
| 202 return priv->backend;
| 203 }
| [...]
| (gdb) print priv
| $1 = (GfGpuPrivate *) 0xfffffff0
| (gdb) bt
| #0 0x0041b734 in gf_gpu_get_backend (self=0x0) at gf-gpu.c:202
| #1 0x0043209e in xdisplay_from_gpu (gpu=<optimized out>) at gf-output-xrandr.c:51
| #2 xdisplay_from_output (output=output@entry=0x543ee8) at gf-output-xrandr.c:61
| #3 0x004328ae in output_get_boolean_property (propname=0x4a6c44
"_GNOME_FLASHBACK_PRESENTATION_OUTPUT", output=0x543ee8) at gf-output-xrandr.c:600
| #4 output_get_presentation_xrandr (output=0x543ee8) at gf-output-xrandr.c:624
| #5 gf_output_xrandr_new (gpu_xrandr=<optimized out>, xrandr_output=<optimized out>,
output_id=<optimized out>, primary_output=<optimized out>) at gf-output-xrandr.c:890
| #6 0x004292b3 in gf_gpu_xrandr_read_current (gpu=0x582410, error=0xbfffe4f8) at gf-gpu-xrandr.c:206
| #7 0x0041b689 in gf_gpu_read_current (gpu=0x582410, error=0xbfffe4f8) at gf-gpu-private.h:29
| #8 0x0041b92c in gf_monitor_manager_real_read_current_state (manager=0x5a2040) at
gf-monitor-manager.c:2035
| #9 0x0043075a in gf_monitor_manager_xrandr_read_current_state (manager=0x5a2040) at
gf-monitor-manager-xrandr.c:796
| #10 0x0041cc28 in gf_monitor_manager_setup (manager=0x5a2040) at gf-monitor-manager.c:2312
| #11 0x0041aed2 in gf_backend_real_post_init (backend=0x529fd0) at gf-backend.c:133
| #12 0x0041b129 in gf_backend_new (type=GF_BACKEND_TYPE_X11_CM) at gf-backend.c:199
| #13 0x004194dc in gf_application_init (application=0x53b9f0) at gf-application.c:322
| #14 0xb6c7859f in g_type_create_instance () at /lib/i386-linux-gnu/libgobject-2.0.so.0
| #15 0xb6c5e7cf in () at /lib/i386-linux-gnu/libgobject-2.0.so.0
| #16 0xb6c5fc0c in g_object_new_with_properties () at /lib/i386-linux-gnu/libgobject-2.0.so.0
| #17 0xb6c604d7 in g_object_new () at /lib/i386-linux-gnu/libgobject-2.0.so.0
| #18 0x0041983f in gf_application_new () at gf-application.c:359
| #19 0x00419f3a in session_ready_cb (session=0x54ec90, is_session_running=1, main_data=0xbfffebc0) at
gf-main.c:146
| #20 0xb6c5970a in () at /lib/i386-linux-gnu/libgobject-2.0.so.0
| #21 0xb6c71c2c in g_signal_emit_valist () at /lib/i386-linux-gnu/libgobject-2.0.so.0
| #22 0xb6c71db5 in g_signal_emit () at /lib/i386-linux-gnu/libgobject-2.0.so.0
| #23 0x0041a9e6 in is_session_running_cb (source_object=0x53b9d8, res=0x57fe00, user_data=0x54ec90) at
gf-session.c:236
| #24 0xb6d4ebe2 in () at /lib/i386-linux-gnu/libgio-2.0.so.0
| #25 0xb6d4f92b in () at /lib/i386-linux-gnu/libgio-2.0.so.0
| #26 0xb6db9a77 in () at /lib/i386-linux-gnu/libgio-2.0.so.0
| #27 0xb6d4ebe2 in () at /lib/i386-linux-gnu/libgio-2.0.so.0
| #28 0xb6d4f92b in () at /lib/i386-linux-gnu/libgio-2.0.so.0
| #29 0xb6dae252 in () at /lib/i386-linux-gnu/libgio-2.0.so.0
| #30 0xb6d4ebe2 in () at /lib/i386-linux-gnu/libgio-2.0.so.0
| #31 0xb6d4ec3b in () at /lib/i386-linux-gnu/libgio-2.0.so.0
| #32 0xb6b4d7a4 in g_main_context_dispatch () at /lib/i386-linux-gnu/libglib-2.0.so.0
| #33 0xb6b4db69 in () at /lib/i386-linux-gnu/libglib-2.0.so.0
| #34 0xb6b4dec1 in g_main_loop_run () at /lib/i386-linux-gnu/libglib-2.0.so.0
| #35 0x0041856a in main (argc=<optimized out>, argv=<optimized out>) at gf-main.c:203
|
| If I hack around this with `return NULL` for `self == NULL`, a similar crash happens elsewhere, and so on.
So it seems we simple aren't meant to see `self == NULL`, etc. -- something seems to go wrong earlier ("error
in `GfCrtcMode` land?"), and we then work here in some inconsistent/invalid state.
|
| I'll try to work though this, but as I have no GNOME etc. sources experience, I'll appreciate any pointers
and help.
[Date Prev][Date Next] [Thread Prev][Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]