GLib-GObject-CRITICAL and GLib-GObject-WARNING messages

I am using gtk 4.6.2

I am seeing some critical and warning messages with the following code.

#include <glib/gi18n.h>
#include <gtk/gtk.h>

GtkWidget *window = NULL;

static void dialog_response( GtkDialog *dialog, int response, gpointer user_data )
{
	switch( response )
	{
		case GTK_RESPONSE_YES:
			fprintf( stderr, "%s %d GTK_RESPONSE_YES\n", __func__, __LINE__ );
			gtk_window_destroy( GTK_WINDOW( window ) );
			break;
		case GTK_RESPONSE_NO:
			fprintf( stderr, "%s %d GTK_RESPONSE_NO\n", __func__, __LINE__ );
			gtk_window_destroy( GTK_WINDOW( dialog ) );
			break;
	}
}

static void close_req_handler()
{
	GtkWidget *dialog = gtk_dialog_new_with_buttons( "Alert", GTK_WINDOW( window ), GTK_DIALOG_MODAL|GTK_DIALOG_DESTROY_WITH_PARENT,
			"Yes", GTK_RESPONSE_YES,
			"No", GTK_RESPONSE_NO,
			NULL
			);
	if( g_signal_connect( dialog, "response", G_CALLBACK(dialog_response), NULL ) <= 0 )
	{
		fprintf( stderr, "Unable to connect\n" );
		exit(1);
	}
	gtk_widget_show( dialog );
}

static void activate( GtkApplication *app, gpointer user_data )
{
	window = gtk_application_window_new( app );
	if( g_signal_connect( window, "close_request", G_CALLBACK(close_req_handler), NULL ) <= 0 )
	{
		fprintf( stderr, "Unable to connect\n" );
		exit(1);
	}
	gtk_widget_show( window );
}

int main( int argc, char **argv )
{
	GtkApplication *app = gtk_application_new ("my.own.application", G_APPLICATION_FLAGS_NONE);
	if( g_signal_connect( app, "activate", G_CALLBACK( activate ), NULL ) <= 0 )
	{
		fprintf( stderr, "Unable to connect\n" );
		exit(1);
	}
	int status = g_application_run( G_APPLICATION( app ), argc, argv);
	g_object_unref( app );
	return status;
}

I am seeing the following messages:

$ gcc dialog.c `pkg-config --cflags --libs gtk4` && ./a.out 
Unsupported modifier, resource creation failed.
XXX: resource creation failed
Unsupported modifier, resource creation failed.
XXX: resource creation failed
Unsupported modifier, resource creation failed.
XXX: resource creation failed
dialog_response 15 GTK_RESPONSE_NO
Unsupported modifier, resource creation failed.
XXX: resource creation failed
Unsupported modifier, resource creation failed.
XXX: resource creation failed
Unsupported modifier, resource creation failed.
XXX: resource creation failed
dialog_response 15 GTK_RESPONSE_NO
dialog_response 11 GTK_RESPONSE_YES

(a.out:16045): GLib-GObject-WARNING **: 20:06:37.603: instance with invalid (NULL) class pointer

(a.out:16045): GLib-GObject-CRITICAL **: 20:06:37.603: g_signal_handlers_disconnect_matched: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed

(a.out:16045): GLib-GObject-WARNING **: 20:06:37.603: instance with invalid (NULL) class pointer

(a.out:16045): GLib-GObject-CRITICAL **: 20:06:37.603: g_signal_handlers_disconnect_matched: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed

(a.out:16045): GLib-GObject-WARNING **: 20:06:37.603: instance with invalid (NULL) class pointer

(a.out:16045): GLib-GObject-CRITICAL **: 20:06:37.603: g_signal_handlers_disconnect_matched: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed

(a.out:16045): GLib-GObject-WARNING **: 20:06:37.603: instance with invalid (NULL) class pointer

(a.out:16045): GLib-GObject-CRITICAL **: 20:06:37.603: g_signal_handlers_disconnect_matched: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed

Unable to understand why those messages are showing up. Is there a way to get rid of them ?

This may not be the cause of those messages, but there is a problem with your code: the handler for GtkWindow's "close-request" signal must return a Boolean value.

Yes: you use a debugger, like GDB, and run your process under it, after exporting G_DEBUG=fatal-warnings in your environment, e.g.

G_DEBUG=fatal-warnings gdb --args ./a.out

Then the process will be interrupted at the first warning, and you will be able to see the call stack that led to that warning. There are various tutorials on how to use GDB.

These warnings are troubling, and may indicate some problem with your toolchain.

You should also learn to add compile warnings for your code, like -Wall -Wextra; C is a terrible language, but running the compiler without warnings is just going to cost you time and effort later.

1 Like
$ export G_DEBUG=fatal-warnings
$ gcc -g dialog.c `pkg-config --cflags --libs gtk4`
$ gdb ./a.out 
GNU gdb (Ubuntu 12.0.90-0ubuntu1) 12.0.90
Copyright (C) 2022 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ./a.out...
(gdb) r
Starting program: /home/lokesh/Desktop/ttk_gui/a.out 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7ffff552c640 (LWP 5600)]
[New Thread 0x7ffff4d2b640 (LWP 5601)]
[New Thread 0x7fffeffff640 (LWP 5602)]
[New Thread 0x7fffef7fe640 (LWP 5603)]
[Thread 0x7fffeffff640 (LWP 5602) exited]
[New Thread 0x7fffeffff640 (LWP 5604)]
[New Thread 0x7fffecda5640 (LWP 5605)]
[New Thread 0x7fffe23e1640 (LWP 5606)]
[New Thread 0x7fffe1be0640 (LWP 5607)]
[New Thread 0x7fffe13df640 (LWP 5608)]
[New Thread 0x7fffe0bde640 (LWP 5609)]
[New Thread 0x7fffd55a2640 (LWP 5610)]
[New Thread 0x7fffd4da1640 (LWP 5611)]
[Thread 0x7fffd55a2640 (LWP 5610) exited]
[Thread 0x7fffd4da1640 (LWP 5611) exited]
[New Thread 0x7fffd4da1640 (LWP 5612)]
[New Thread 0x7fffd55a2640 (LWP 5613)]
[Thread 0x7fffd55a2640 (LWP 5613) exited]
[Thread 0x7fffd4da1640 (LWP 5612) exited]
[Thread 0x7fffef7fe640 (LWP 5603) exited]
[Thread 0x7fffe13df640 (LWP 5608) exited]
[New Thread 0x7fffe13df640 (LWP 5617)]
dialog_response 11 GTK_RESPONSE_YES
[Thread 0x7fffe1be0640 (LWP 5607) exited]

(a.out:5597): GLib-GObject-WARNING **: 19:09:50.256: instance with invalid (NULL) class pointer

Thread 1 "a.out" received signal SIGTRAP, Trace/breakpoint trap.
0x00007ffff7281427 in g_logv () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
(gdb) bt
#0  0x00007ffff7281427 in g_logv () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#1  0x00007ffff72816e3 in g_log () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007ffff75c5eda in g_type_check_instance () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#3  0x00007ffff75b76a8 in g_signal_handlers_disconnect_matched () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#4  0x00007ffff7abe69b in gtk_window_set_transient_for () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#5  0x00007ffff7abfbb1 in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#6  0x00007ffff75aed31 in g_object_unref () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#7  0x00007ffff7c5a74c in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#8  0x00007ffff798430b in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#9  0x00007ffff7ab8d9c in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#10 0x00007ffff7b92a1d in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#11 0x00007ffff7bc4841 in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#12 0x00007ffff75be640 in g_signal_emit_valist () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#13 0x00007ffff75be7a3 in g_signal_emit () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#14 0x00007ffff7c5a9a3 in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#15 0x00007ffff7bd81ae in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#16 0x00007ffff7278d1b in g_main_context_dispatch () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#17 0x00007ffff72cd6f8 in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#18 0x00007ffff72763c3 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#19 0x00007ffff76ccc85 in g_application_run () at /lib/x86_64-linux-gnu/libgio-2.0.so.0
#20 0x00005555555555f8 in main (argc=1, argv=0x7fffffffe0c8) at dialog.c:56
(gdb) c
Continuing.

(a.out:5597): GLib-GObject-CRITICAL **: 19:10:30.050: g_signal_handlers_disconnect_matched: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
[Thread 0x7fffe0bde640 (LWP 5609) exited]

Thread 1 "a.out" received signal SIGTRAP, Trace/breakpoint trap.
0x00007ffff7281427 in g_logv () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
(gdb) bt
#0  0x00007ffff7281427 in g_logv () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#1  0x00007ffff72816e3 in g_log () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007ffff75b76c6 in g_signal_handlers_disconnect_matched () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#3  0x00007ffff7abe69b in gtk_window_set_transient_for () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#4  0x00007ffff7abfbb1 in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#5  0x00007ffff75aed31 in g_object_unref () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#6  0x00007ffff7c5a74c in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#7  0x00007ffff798430b in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#8  0x00007ffff7ab8d9c in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#9  0x00007ffff7b92a1d in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#10 0x00007ffff7bc4841 in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#11 0x00007ffff75be640 in g_signal_emit_valist () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#12 0x00007ffff75be7a3 in g_signal_emit () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#13 0x00007ffff7c5a9a3 in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#14 0x00007ffff7bd81ae in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#15 0x00007ffff7278d1b in g_main_context_dispatch () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#16 0x00007ffff72cd6f8 in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#17 0x00007ffff72763c3 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#18 0x00007ffff76ccc85 in g_application_run () at /lib/x86_64-linux-gnu/libgio-2.0.so.0
#19 0x00005555555555f8 in main (argc=1, argv=0x7fffffffe0c8) at dialog.c:56
(gdb) c
Continuing.

(a.out:5597): GLib-GObject-WARNING **: 19:10:38.738: instance with invalid (NULL) class pointer

Thread 1 "a.out" received signal SIGTRAP, Trace/breakpoint trap.
0x00007ffff7281427 in g_logv () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
(gdb) bt
#0  0x00007ffff7281427 in g_logv () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#1  0x00007ffff72816e3 in g_log () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007ffff75c5eda in g_type_check_instance () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#3  0x00007ffff75b76a8 in g_signal_handlers_disconnect_matched () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#4  0x00007ffff7abe6bb in gtk_window_set_transient_for () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#5  0x00007ffff7abfbb1 in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#6  0x00007ffff75aed31 in g_object_unref () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#7  0x00007ffff7c5a74c in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#8  0x00007ffff798430b in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#9  0x00007ffff7ab8d9c in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#10 0x00007ffff7b92a1d in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#11 0x00007ffff7bc4841 in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#12 0x00007ffff75be640 in g_signal_emit_valist () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#13 0x00007ffff75be7a3 in g_signal_emit () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#14 0x00007ffff7c5a9a3 in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#15 0x00007ffff7bd81ae in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#16 0x00007ffff7278d1b in g_main_context_dispatch () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#17 0x00007ffff72cd6f8 in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#18 0x00007ffff72763c3 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#19 0x00007ffff76ccc85 in g_application_run () at /lib/x86_64-linux-gnu/libgio-2.0.so.0
#20 0x00005555555555f8 in main (argc=1, argv=0x7fffffffe0c8) at dialog.c:56
(gdb) c
Continuing.

(a.out:5597): GLib-GObject-CRITICAL **: 19:10:42.833: g_signal_handlers_disconnect_matched: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed

Thread 1 "a.out" received signal SIGTRAP, Trace/breakpoint trap.
0x00007ffff7281427 in g_logv () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
(gdb) bt
#0  0x00007ffff7281427 in g_logv () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#1  0x00007ffff72816e3 in g_log () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007ffff75b76c6 in g_signal_handlers_disconnect_matched () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#3  0x00007ffff7abe6bb in gtk_window_set_transient_for () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#4  0x00007ffff7abfbb1 in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#5  0x00007ffff75aed31 in g_object_unref () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#6  0x00007ffff7c5a74c in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#7  0x00007ffff798430b in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#8  0x00007ffff7ab8d9c in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#9  0x00007ffff7b92a1d in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#10 0x00007ffff7bc4841 in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#11 0x00007ffff75be640 in g_signal_emit_valist () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#12 0x00007ffff75be7a3 in g_signal_emit () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#13 0x00007ffff7c5a9a3 in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#14 0x00007ffff7bd81ae in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#15 0x00007ffff7278d1b in g_main_context_dispatch () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#16 0x00007ffff72cd6f8 in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#17 0x00007ffff72763c3 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#18 0x00007ffff76ccc85 in g_application_run () at /lib/x86_64-linux-gnu/libgio-2.0.so.0
#19 0x00005555555555f8 in main (argc=1, argv=0x7fffffffe0c8) at dialog.c:56
(gdb) c
Continuing.

(a.out:5597): GLib-GObject-WARNING **: 19:10:47.121: instance with invalid (NULL) class pointer

Thread 1 "a.out" received signal SIGTRAP, Trace/breakpoint trap.
0x00007ffff7281427 in g_logv () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
(gdb) bt
#0  0x00007ffff7281427 in g_logv () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#1  0x00007ffff72816e3 in g_log () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007ffff75c5eda in g_type_check_instance () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#3  0x00007ffff75b76a8 in g_signal_handlers_disconnect_matched () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#4  0x00007ffff7abe6db in gtk_window_set_transient_for () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#5  0x00007ffff7abfbb1 in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#6  0x00007ffff75aed31 in g_object_unref () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#7  0x00007ffff7c5a74c in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#8  0x00007ffff798430b in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#9  0x00007ffff7ab8d9c in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#10 0x00007ffff7b92a1d in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#11 0x00007ffff7bc4841 in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#12 0x00007ffff75be640 in g_signal_emit_valist () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#13 0x00007ffff75be7a3 in g_signal_emit () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#14 0x00007ffff7c5a9a3 in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#15 0x00007ffff7bd81ae in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#16 0x00007ffff7278d1b in g_main_context_dispatch () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#17 0x00007ffff72cd6f8 in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#18 0x00007ffff72763c3 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#19 0x00007ffff76ccc85 in g_application_run () at /lib/x86_64-linux-gnu/libgio-2.0.so.0
#20 0x00005555555555f8 in main (argc=1, argv=0x7fffffffe0c8) at dialog.c:56
(gdb) c
Continuing.

(a.out:5597): GLib-GObject-CRITICAL **: 19:10:50.081: g_signal_handlers_disconnect_matched: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed

Thread 1 "a.out" received signal SIGTRAP, Trace/breakpoint trap.
0x00007ffff7281427 in g_logv () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
(gdb) bt
#0  0x00007ffff7281427 in g_logv () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#1  0x00007ffff72816e3 in g_log () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007ffff75b76c6 in g_signal_handlers_disconnect_matched () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#3  0x00007ffff7abe6db in gtk_window_set_transient_for () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#4  0x00007ffff7abfbb1 in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#5  0x00007ffff75aed31 in g_object_unref () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#6  0x00007ffff7c5a74c in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#7  0x00007ffff798430b in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#8  0x00007ffff7ab8d9c in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#9  0x00007ffff7b92a1d in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#10 0x00007ffff7bc4841 in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#11 0x00007ffff75be640 in g_signal_emit_valist () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#12 0x00007ffff75be7a3 in g_signal_emit () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#13 0x00007ffff7c5a9a3 in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#14 0x00007ffff7bd81ae in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#15 0x00007ffff7278d1b in g_main_context_dispatch () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#16 0x00007ffff72cd6f8 in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#17 0x00007ffff72763c3 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#18 0x00007ffff76ccc85 in g_application_run () at /lib/x86_64-linux-gnu/libgio-2.0.so.0
#19 0x00005555555555f8 in main (argc=1, argv=0x7fffffffe0c8) at dialog.c:56
(gdb) c
Continuing.

(a.out:5597): GLib-GObject-WARNING **: 19:10:53.441: instance with invalid (NULL) class pointer

Thread 1 "a.out" received signal SIGTRAP, Trace/breakpoint trap.
0x00007ffff7281427 in g_logv () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
(gdb) bt
#0  0x00007ffff7281427 in g_logv () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#1  0x00007ffff72816e3 in g_log () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007ffff75c5eda in g_type_check_instance () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#3  0x00007ffff75b76a8 in g_signal_handlers_disconnect_matched () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#4  0x00007ffff7abe6fb in gtk_window_set_transient_for () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#5  0x00007ffff7abfbb1 in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#6  0x00007ffff75aed31 in g_object_unref () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#7  0x00007ffff7c5a74c in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#8  0x00007ffff798430b in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#9  0x00007ffff7ab8d9c in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#10 0x00007ffff7b92a1d in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#11 0x00007ffff7bc4841 in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#12 0x00007ffff75be640 in g_signal_emit_valist () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#13 0x00007ffff75be7a3 in g_signal_emit () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#14 0x00007ffff7c5a9a3 in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#15 0x00007ffff7bd81ae in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#16 0x00007ffff7278d1b in g_main_context_dispatch () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#17 0x00007ffff72cd6f8 in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#18 0x00007ffff72763c3 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#19 0x00007ffff76ccc85 in g_application_run () at /lib/x86_64-linux-gnu/libgio-2.0.so.0
#20 0x00005555555555f8 in main (argc=1, argv=0x7fffffffe0c8) at dialog.c:56
(gdb) c
Continuing.

(a.out:5597): GLib-GObject-CRITICAL **: 19:10:56.097: g_signal_handlers_disconnect_matched: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed

Thread 1 "a.out" received signal SIGTRAP, Trace/breakpoint trap.
0x00007ffff7281427 in g_logv () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
(gdb) bt
#0  0x00007ffff7281427 in g_logv () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#1  0x00007ffff72816e3 in g_log () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007ffff75b76c6 in g_signal_handlers_disconnect_matched () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#3  0x00007ffff7abe6fb in gtk_window_set_transient_for () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#4  0x00007ffff7abfbb1 in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#5  0x00007ffff75aed31 in g_object_unref () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#6  0x00007ffff7c5a74c in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#7  0x00007ffff798430b in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#8  0x00007ffff7ab8d9c in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#9  0x00007ffff7b92a1d in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#10 0x00007ffff7bc4841 in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#11 0x00007ffff75be640 in g_signal_emit_valist () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#12 0x00007ffff75be7a3 in g_signal_emit () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#13 0x00007ffff7c5a9a3 in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#14 0x00007ffff7bd81ae in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#15 0x00007ffff7278d1b in g_main_context_dispatch () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#16 0x00007ffff72cd6f8 in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#17 0x00007ffff72763c3 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#18 0x00007ffff76ccc85 in g_application_run () at /lib/x86_64-linux-gnu/libgio-2.0.so.0
#19 0x00005555555555f8 in main (argc=1, argv=0x7fffffffe0c8) at dialog.c:56
(gdb) c

I am seeing the messages are coming from g_signal_handlers_disconnect_matched. But not sure what is the issue.

could you please tell me what is this toolchain and how to fix the problem ?

1 Like

The issue is that the GtkDialog is being finalized after the GtkWindow that is its transient parent has been finalized.

You can avoid it either by not setting GTK_DIALOG_DESTROY_WITH_PARENT (it gets destroyed anyway), or by explicitly unsetting its transient parent before destroying the parent:

case GTK_RESPONSE_YES:
    fprintf( stderr, "%s %d GTK_RESPONSE_YES\n", __func__, __LINE__ );
    gtk_window_set_transient_for( GTK_WINDOW( dialog ), NULL);
    gtk_window_destroy( GTK_WINDOW( window ) );
    break;

But I’m not sure how you are supposed to know that!

1 Like

This error is coming from mesa and is probably not the source of the problem, please try to update your mesa drivers.

$ sudo apt -y install mesa-utils
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  mesa-utils-bin
The following NEW packages will be installed:
  mesa-utils mesa-utils-bin
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Need to get 1,118 kB of archives.
After this operation, 2,455 kB of additional disk space will be used.
Get:1 http://in.archive.ubuntu.com/ubuntu jammy/universe amd64 mesa-utils-bin amd64 8.4.0-1ubuntu1 [53.8 kB]
Get:2 http://in.archive.ubuntu.com/ubuntu jammy/universe amd64 mesa-utils amd64 8.4.0-1ubuntu1 [1,065 kB]
Fetched 1,118 kB in 4s (259 kB/s)     
Selecting previously unselected package mesa-utils-bin:amd64.
(Reading database ... 224165 files and directories currently installed.)
Preparing to unpack .../mesa-utils-bin_8.4.0-1ubuntu1_amd64.deb ...
Unpacking mesa-utils-bin:amd64 (8.4.0-1ubuntu1) ...
Selecting previously unselected package mesa-utils.
Preparing to unpack .../mesa-utils_8.4.0-1ubuntu1_amd64.deb ...
Unpacking mesa-utils (8.4.0-1ubuntu1) ...
Setting up mesa-utils-bin:amd64 (8.4.0-1ubuntu1) ...
Setting up mesa-utils (8.4.0-1ubuntu1) ...
Processing triggers for man-db (2.10.2-1) ...
$ gcc dialog.c `pkg-config --cflags --libs gtk4` && ./a.out 
dialog_response 15 GTK_RESPONSE_NO
dialog_response 11 GTK_RESPONSE_YES
$ gcc dialog.c `pkg-config --cflags --libs gtk4` && ./a.out 
Unsupported modifier, resource creation failed.
XXX: resource creation failed
Unsupported modifier, resource creation failed.
XXX: resource creation failed
Unsupported modifier, resource creation failed.
XXX: resource creation failed
dialog_response 15 GTK_RESPONSE_NO
Unsupported modifier, resource creation failed.
XXX: resource creation failed
Unsupported modifier, resource creation failed.
XXX: resource creation failed
Unsupported modifier, resource creation failed.
XXX: resource creation failed
dialog_response 11 GTK_RESPONSE_YES

some times it is showing up and sometimes not. May be something else is the problem

Thanks. Half of the problem solved.

mesa-utils is only the command line tools, on Ubuntu the package with the drivers is called libgl1-mesa-dri.

$ sudo apt -y install libgl1-mesa-dri 
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
libgl1-mesa-dri is already the newest version (22.0.1-1ubuntu2).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

even that is already installed. something else should be the issue.

1 Like

I don’t think so, sometimes I am seeing that same error now with gtk4 and with firefox after updating my mesa drivers. It appears randomly for me so I cannot get a stack trace, if you are able to get one then I suggest reporting it to mesa.

with the sample program I posted, most of the times, I am able to see that error. Regarding trace, I just know how to put a break point in my code and get the trace. But I am not aware how to get trace for this error message.
How ever, I have one observation.

compile the above sample code with gcc -g dialog.c pkg-config --cflags --libs gtk4
execute ./a.out
try closing using alt+F4

once the dialog pops up, press ESC ( popup disappears )
OR
with the help of tab button put the focus on NO button and press space bar.
( intention is avoid mouse. Use just keyboard )

repeat two three times you will definitely see the error log.

1 Like

The same here about these warnings, and just with GTK4, IIRC (not sure), only on wayland.

Archlinux

  • mesa 22.1.0-1
  • gtk4 1:4.6.4-1
  • vulkan-intel 22.1.0-1
  • intel-media-driver 22.4.2-1
  • wayland 1.20.0-2

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.