GNOME Bugzilla – Bug 378546
Crash after exiting slideshow. (I was viewing it over a freenx session, so the fade-in/fade-out effects are disabled.)
Last modified: 2007-05-28 12:23:30 UTC
Distribution: Fedora Core release 5 (Bordeaux) Package: gthumb Severity: Normal Version: GNOME2.14.3 2.9.0 Gnome-Distributor: Red Hat, Inc Synopsis: Crash after exiting slideshow. (I was viewing it over a freenx session, so the fade-in/fade-out effects are disabled.) Bugzilla-Product: gthumb Bugzilla-Component: general Bugzilla-Version: 2.9.0 BugBuddy-GnomeVersion: 2.0 (2.14.1) Description: Description of the crash: The slideshow crashes fairly frequently for me, at least over the freenx session. Steps to reproduce the crash: 1. Select all the items in a folder 2. Start a slideshow. 3. End the slide show. How often does this happen? Only sometimes. Other times, I just get this error dumped to the console: GLib-GObject-WARNING **: invalid uninstantiatable type `(null)' in cast to `GThumbPreloader' Debugging Information: Backtrace was generated from '/usr/local/bin/gthumb' Using host libthread_db library "/lib/libthread_db.so.1". `shared object read from target memory' has disappeared; keeping its symbols. [Thread debugging using libthread_db enabled] [New Thread -1208846656 (LWP 21677)] [New Thread -1560126560 (LWP 21781)] [New Thread -1530754144 (LWP 21780)] [New Thread -1490125920 (LWP 21779)] [New Thread -1441797216 (LWP 21734)] [New Thread -1431307360 (LWP 21733)] [New Thread -1418953824 (LWP 21732)] [New Thread -1407997024 (LWP 21684)] [New Thread -1397507168 (LWP 21683)] [New Thread -1387017312 (LWP 21682)] [New Thread -1376527456 (LWP 21681)] [New Thread -1272857696 (LWP 21679)] [New Thread -1210946656 (LWP 21678)] 0x00970402 in __kernel_vsyscall ()
+ Trace 88821
Thread 1 (Thread -1208846656 (LWP 21677))
------- Bug created by bug-buddy at 2006-11-23 17:37 ------- Unknown version 2.9.0 in product gthumb. Setting version to "2.9.x".
Just a guess... static PreLoader * requested_preloader (GThumbPreloader *gploader) { if (gploader->requested == -1) return NULL; return gploader->loader[gploader->requested]; } Is gploader->requested = NULL for some reason, and should there be a check for that too (in addition to == -1). - Mike
From gdb, using --g-fatal-warnings: GLib-GObject-WARNING **: invalid uninstantiatable type `(null)' in cast to `GThumbPreloader' aborting... Program received signal SIGABRT, Aborted.
+ Trace 88865
Thread NaN (LWP 29537)
Well, there is definitely a problem in gploader_finalize__step2 - a null object is being passed to it, and it isn't testing for it. gthumb_preloader_finalize has some assertions to check for this - I tried copying them to gploader_finalize__step2, but that just results in different assertion errors, like: gploader_finalize__step2: assertion `GTHUMB_IS_PRELOADER (object)' failed Can we just return if the object is null? I don't know what the broader implications are. Paolo, can you look at this? - Mike '
*** Bug 395483 has been marked as a duplicate of this bug. ***
*** Bug 408361 has been marked as a duplicate of this bug. ***
*** Bug 409600 has been marked as a duplicate of this bug. ***
*** Bug 395925 has been marked as a duplicate of this bug. ***
Created attachment 82978 [details] [review] finalize the preloaders when GThumbPreloader finalize is called I reproduce it, without using in freenx. The problem is that, a signal is emitted for a preloader, but because of the load, the signal callback is called after the g_object_unref of the GThumbPreloader.
Thanks Manuel! Patch committed. (Have you seen bug 409799, Manuel? Some sort of memory corruption, that I've bypassed, but the basic problem remains...) - Mike
*** Bug 441330 has been marked as a duplicate of this bug. ***
*** Bug 440480 has been marked as a duplicate of this bug. ***