After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 628732 - GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed
GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' fa...
Status: RESOLVED FIXED
Product: Gnumeric
Classification: Applications
Component: Charting
git master
Other Linux
: Normal normal
: ---
Assigned To: Jean Bréfort
Jody Goldberg
Depends on:
Blocks:
 
 
Reported: 2010-09-03 19:37 UTC by Andreas J. Guelzow
Modified: 2010-09-04 11:10 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
sample spreadsheet (116.37 KB, application/vnd.oasis.opendocument.spreadsheet)
2010-09-03 19:37 UTC, Andreas J. Guelzow
Details

Description Andreas J. Guelzow 2010-09-03 19:37:46 UTC
Created attachment 169456 [details]
sample spreadsheet

new gnumeric
open the attached ODF file
quit

The console shows:
GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed

I have marked this as a charting issue since the problem appears deep in the charting library, when a hash table is freed, but of course it could as easily be the result of some error when importing the ODF file.

This issue seems to be specifically related to the fill image included in the chart in this file.
Comment 1 Andreas J. Guelzow 2010-09-03 19:39:50 UTC


  • #0 g_log
    from /lib/libglib-2.0.so.0
  • #1 g_return_if_fail_warning
    from /lib/libglib-2.0.so.0
  • #2 g_object_unref
    from /usr/lib/libgobject-2.0.so.0
  • #3 ??
    from /lib/libglib-2.0.so.0
  • #4 g_hash_table_remove_all
    from /lib/libglib-2.0.so.0
  • #5 g_hash_table_destroy
    from /lib/libglib-2.0.so.0
  • #6 go_doc_finalize
    at go-doc.c line 109
  • #7 workbook_finalize
    at workbook.c line 161
  • #8 g_object_unref
    from /usr/lib/libgobject-2.0.so.0
  • #9 wbcg_close_if_user_permits
    at wbc-gtk.c line 1845
  • #10 wbc_gtk_close
    at wbc-gtk.c line 1892

Comment 2 Morten Welinder 2010-09-03 20:12:09 UTC
We need reference overship annotations for 

go_doc_get_image
go_doc_add_image
go_doc_image_fetch
Comment 3 Jean Bréfort 2010-09-03 21:41:04 UTC
The GOStyle should own a reference to the image. This might be an ODF import issue.

Morten, I don't understand, overship?
Comment 4 Andreas J. Guelzow 2010-09-03 22:32:48 UTC
Jean, I think Morten means "ownership".

In the ODF import we have:

pixbuf = gdk_pixbuf_loader_get_pixbuf (loader);
g_object_ref (G_OBJECT (pixbuf));
if (style->fill.image.image != NULL)
	g_object_set (G_OBJECT (style->fill.image.image),
		"pixbuf", pixbuf, NULL);
else
	style->fill.image.image = go_image_new_from_pixbuf (pixbuf);

so I could see it responsible for a leak (of pixbuf) but not how it could be responsible for this issue.

By the way the "else" clause is used in this specific situation.
Comment 5 Morten Welinder 2010-09-03 23:18:25 UTC
I would like docs for whether the caller owns a reference to the result.
Comment 6 Jean Bréfort 2010-09-04 11:10:05 UTC
This problem has been fixed in our software repository. The fix will go into the next software release. Thank you for your bug report.