GLib-GIO-CRITICAL **: g_dbus_proxy_call_finish_internal: assertion 'error == NULL || *error == NULL' failed

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

GLib-GIO-CRITICAL **: g_dbus_proxy_call_finish_internal: assertion 'error == NULL || *error == NULL' failed

Francesco Pasa
Hi All,

I am debugging the GTK3 port of Thunar. We have a rather serious bug affecting almost all file operations (copy, rename, move, etc), which results in a crash (segfault) of the program. I debugged a little and it seems that the error is coming from the funtion

GVariant *
g_dbus_proxy_call_finish (GDBusProxy *proxy,
                          GAsyncResult *res,
                          GError **error);
which is supposed to return NULL in case of errors, and fill the error pointer with a description of the error. It does return NULL, but the error pointer seems to be uninitialized (the bug goes away if I manually fill the error pointer with some random data and g_error_new).

Does somebody now if this is a bug in glib?

Thanks in advance,
Francesco Pasa



_______________________________________________
Xfce4-dev mailing list
[hidden email]
https://mail.xfce.org/mailman/listinfo/xfce4-dev
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: GLib-GIO-CRITICAL **: g_dbus_proxy_call_finish_internal: assertion 'error == NULL || *error == NULL' failed

Ali Abdallah-3

Hi Francesco,

This effectively can happen, the call might fail and it does not set a reason for the failure. I assume you are initializing your error pointer, you can like the following

...
GError *error = NULL;
result = g_dbus_proxy_call_finish(proxy, res, &error);

if (error != NULL) {
    g_warning("... %s", error->message);
    g_error_free(error);
    return;
}

if (result == NULL) {
  g_warning("Failed with no specific error");
  return;
}
Cheers,
Ali

On 04/29/2017 05:26 PM, Francesco Pasa wrote:
Hi All,

I am debugging the GTK3 port of Thunar. We have a rather serious bug affecting almost all file operations (copy, rename, move, etc), which results in a crash (segfault) of the program. I debugged a little and it seems that the error is coming from the funtion

GVariant *
g_dbus_proxy_call_finish (GDBusProxy *proxy,
                          GAsyncResult *res,
                          GError **error);
which is supposed to return NULL in case of errors, and fill the error pointer with a description of the error. It does return NULL, but the error pointer seems to be uninitialized (the bug goes away if I manually fill the error pointer with some random data and g_error_new).

Does somebody now if this is a bug in glib?

Thanks in advance,
Francesco Pasa




_______________________________________________
Xfce4-dev mailing list
[hidden email]
https://mail.xfce.org/mailman/listinfo/xfce4-dev


_______________________________________________
Xfce4-dev mailing list
[hidden email]
https://mail.xfce.org/mailman/listinfo/xfce4-dev
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: GLib-GIO-CRITICAL **: g_dbus_proxy_call_finish_internal: assertion 'error == NULL || *error == NULL' failed

André Miranda
Hi Ali,
Thanks for the heads up, this was already fixed by Skunnyk:
https://github.com/andreldm/thunar/commit/e2dfd9da9996b53999d1a9934e3f8c6e9f7de209

Cheers,
Andre Miranda

On Tue, May 9, 2017 at 10:08 AM, Ali <[hidden email]> wrote:

Hi Francesco,

This effectively can happen, the call might fail and it does not set a reason for the failure. I assume you are initializing your error pointer, you can like the following

...
GError *error = NULL;
result = g_dbus_proxy_call_finish(proxy, res, &error);

if (error != NULL) {
    g_warning("... %s", error->message);
    g_error_free(error);
    return;
}

if (result == NULL) {
  g_warning("Failed with no specific error");
  return;
}
Cheers,
Ali

On 04/29/2017 05:26 PM, Francesco Pasa wrote:
Hi All,

I am debugging the GTK3 port of Thunar. We have a rather serious bug affecting almost all file operations (copy, rename, move, etc), which results in a crash (segfault) of the program. I debugged a little and it seems that the error is coming from the funtion

GVariant *
g_dbus_proxy_call_finish (GDBusProxy *proxy,
                          GAsyncResult *res,
                          GError **error);
which is supposed to return NULL in case of errors, and fill the error pointer with a description of the error. It does return NULL, but the error pointer seems to be uninitialized (the bug goes away if I manually fill the error pointer with some random data and g_error_new).

Does somebody now if this is a bug in glib?

Thanks in advance,
Francesco Pasa




_______________________________________________
Xfce4-dev mailing list
[hidden email]
https://mail.xfce.org/mailman/listinfo/xfce4-dev


_______________________________________________
Xfce4-dev mailing list
[hidden email]
https://mail.xfce.org/mailman/listinfo/xfce4-dev


_______________________________________________
Xfce4-dev mailing list
[hidden email]
https://mail.xfce.org/mailman/listinfo/xfce4-dev
Loading...