Bug 679256 - [abrt] geeqie-1.0-4.fc14: file_cache_get: assertion failed: (fc && fd) (SIGABRT)
Summary: [abrt] geeqie-1.0-4.fc14: file_cache_get: assertion failed: (fc && fd) (SIGABRT)
Alias: None
Product: Fedora
Classification: Fedora
Component: geeqie
Version: 14
Hardware: All
OS: Unspecified
Target Milestone: ---
Assignee: Michael Schwendt
QA Contact: Fedora Extras Quality Assurance
URL: https://sourceforge.net/tracker/?func...
Whiteboard: abrt_hash:df204d8863ed5bc2a95f439e059...
Depends On:
TreeView+ depends on / blocked
Reported: 2011-02-22 03:54 UTC by Dariusz Garbowski
Modified: 2011-03-13 21:19 UTC (History)
1 user (show)

Fixed In Version: geeqie-1.0-9.fc14
Doc Type: Bug Fix
Doc Text:
Clone Of:
Last Closed: 2011-03-13 21:19:52 UTC

Attachments (Terms of Use)
File: backtrace (11.56 KB, text/plain)
2011-02-22 03:54 UTC, Dariusz Garbowski
no flags Details

Description Dariusz Garbowski 2011-02-22 03:54:29 UTC
abrt version: 1.1.17
architecture: x86_64
Attached file: backtrace, 11833 bytes
cmdline: geeqie
comment: After restarting Geeqie I found out that the new directory has been created.
component: geeqie
Attached file: coredump, 9998336 bytes
crash_function: file_cache_get
executable: /usr/bin/geeqie
package: geeqie-1.0-4.fc14
rating: 4
reason: Process /usr/bin/geeqie was killed by signal 6 (SIGABRT)
release: Fedora release 14 (Laughlin)
time: 1298346358
uid: 1001

How to reproduce
1.Using List View of directories attempted to create new directory (right mouse button -> New Folder...).
2.Entered the name of the new directory and pressed Return key.
3.Geeqie crashed.

Comment 1 Dariusz Garbowski 2011-02-22 03:54:30 UTC
Created attachment 480046 [details]
File: backtrace

Comment 2 Michael Schwendt 2011-02-22 10:47:50 UTC
> #5  0x000000000044f056 in file_cache_put (fc=0x0, fd=0x29d0690, size=1)
> at filecache.c:110

The fc=0x0 looks suspicious as it won't work, because the called functions require a valid FileCacheData pointer:

| void file_cache_put(FileCacheData *fc, FileData *fd, gulong size)
| {
| 	FileCacheEntry *fe;
| 	if (file_cache_get(fc, fd)) return;

| gboolean file_cache_get(FileCacheData *fc, FileData *fd)
| {
| 	GList *work;
| 	g_assert(fc && fd);

The "New folder" test-case isn't 100%, though. Here it doesn't crash. It's likely the same or similar race-condition in directory loading/refreshing.

Comment 3 Michael Schwendt 2011-02-22 11:01:01 UTC
There's something missing in the backtrace (for reasons I will need to track down, too).

The code path between image-load.c and file_cache_put() enters exif-common.c, where it chooses not to create a new FileCache if a file path is not readable. Later, however, it expects the FileCache to be usable and crashes on the 0 ptr:

| ExifData *exif_read_fd(FileData *fd)
| {
|	gchar *sidecar_path;
| 	if (!fd || !is_readable_file(fd->path)) return NULL;
| 	if (!exif_cache) exif_cache = file_cache_new(exif_release_cb, 4);

| void exif_free_fd(FileData *fd, ExifData *exif)
| {
| 	if (!fd) return;
| 	g_assert(fd->exif == exif);
| 	file_cache_put(exif_cache, fd, 1);

Comment 4 Fedora Update System 2011-03-05 10:44:52 UTC
geeqie-1.0-9.fc14 has been submitted as an update for Fedora 14.

Comment 5 Fedora Update System 2011-03-05 23:02:31 UTC
geeqie-1.0-9.fc14 has been pushed to the Fedora 14 testing repository.  If problems still persist, please make note of it in this bug report.
 If you want to test the update, you can install it with 
 su -c 'yum --enablerepo=updates-testing update geeqie'.  You can provide feedback for this update here: https://admin.fedoraproject.org/updates/geeqie-1.0-9.fc14

Comment 6 Fedora Update System 2011-03-13 21:19:35 UTC
geeqie-1.0-9.fc14 has been pushed to the Fedora 14 stable repository.  If problems still persist, please make note of it in this bug report.

Note You need to log in before you can comment on or make changes to this bug.