Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 273884 - media-gfx/eog-2.26.2 segfaults all the time with media-libs/libexif-0.6.17
Summary: media-gfx/eog-2.26.2 segfaults all the time with media-libs/libexif-0.6.17
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] GNOME (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Gentoo Linux Gnome Desktop Team
URL: https://bugzilla.gnome.org/show_bug.c...
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-06-12 15:23 UTC by Nicholas Doyle
Modified: 2009-07-06 16:56 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
backtrace (eog-backtrace.log,3.57 KB, text/plain)
2009-07-04 02:04 UTC, Frank
Details
Patch to fix race condition (eog-2.26.2-exif-race.patch,1.10 KB, patch)
2009-07-04 12:17 UTC, Frank
Details | Diff
corresponding ebuild (eog-2.26.2.ebuild,1.85 KB, text/plain)
2009-07-04 12:19 UTC, Frank
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Nicholas Doyle 2009-06-12 15:23:35 UTC
Eye of Gnome is segfaulting for me consistently under normal use. I manage to crash it simply by cycling through photos in a folder. I get this backtrace which suggests libexif is the culprit:

(gdb) bt
#0  0x00007f4d5e92b46e in exif_content_get_entry () from /usr/lib/libexif.so.12
#1  0x000000000044f53b in eog_exif_util_get_value ()
#2  0x00007f4d53979caf in ?? ()
   from /usr/lib64/eog/plugins/libstatusbar-date.so
#3  0x00007f4d5e28823f in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#4  0x00007f4d5e29e25b in ?? () from /usr/lib/libgobject-2.0.so.0
#5  0x00007f4d5e29f2d1 in g_signal_emit_valist ()
   from /usr/lib/libgobject-2.0.so.0
#6  0x00007f4d5e29f7c3 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#7  0x00007f4d5fd4ff0d in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#8  0x000000000043ed17 in eog_thumb_view_select_single ()
#9  0x00007f4d5e28823f in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#10 0x00007f4d5e29dcda in ?? () from /usr/lib/libgobject-2.0.so.0
#11 0x00007f4d5e29f2d1 in g_signal_emit_valist ()
   from /usr/lib/libgobject-2.0.so.0
#12 0x00007f4d5e29f7c3 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#13 0x00007f4d5fcb6ec3 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#14 0x00007f4d5fe3fc99 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#15 0x00007f4d5e28823f in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#16 0x00007f4d5e29dcda in ?? () from /usr/lib/libgobject-2.0.so.0
#17 0x00007f4d5e29f2d1 in g_signal_emit_valist ()
   from /usr/lib/libgobject-2.0.so.0
#18 0x00007f4d5e29f7c3 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#19 0x00007f4d5fcd09ad in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#20 0x00007f4d5e28823f in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#21 0x00007f4d5e29d5c2 in ?? () from /usr/lib/libgobject-2.0.so.0
#22 0x00007f4d5e29f2d1 in g_signal_emit_valist ()
   from /usr/lib/libgobject-2.0.so.0
#23 0x00007f4d5e29f7c3 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#24 0x00007f4d5fccf63d in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#25 0x00007f4d5fd7a658 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#26 0x00007f4d5e28823f in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#27 0x00007f4d5e29d9bd in ?? () from /usr/lib/libgobject-2.0.so.0
#28 0x00007f4d5e29f15c in g_signal_emit_valist ()
   from /usr/lib/libgobject-2.0.so.0
#29 0x00007f4d5e29f7c3 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#30 0x00007f4d5fe8218e in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#31 0x00007f4d5fd72f03 in gtk_propagate_event ()
   from /usr/lib/libgtk-x11-2.0.so.0
#32 0x00007f4d5fd74023 in gtk_main_do_event ()
   from /usr/lib/libgtk-x11-2.0.so.0
#33 0x00007f4d5f9f1d7c in ?? () from /usr/lib/libgdk-x11-2.0.so.0
#34 0x00007f4d5dfd0e19 in g_main_context_dispatch ()
   from /usr/lib/libglib-2.0.so.0
#35 0x00007f4d5dfd44d0 in ?? () from /usr/lib/libglib-2.0.so.0
#36 0x00007f4d5dfd499d in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
#37 0x00007f4d5fd74437 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#38 0x00000000004209f9 in main ()
Comment 1 Nicholas Doyle 2009-06-12 15:35:03 UTC
The versions I am using:
media-libs/libexif-0.6.17  USE="doc nls"
media-gfx/eog-2.26.2  USE="dbus doc exif lcms python -debug -xmp"

Compiling eog without the exif USE flag stops the segfaults (but obviously removes exif support).
Comment 2 Gilles Dartiguelongue (RETIRED) gentoo-dev 2009-06-13 23:43:27 UTC
please read [1] and provide a complete backtrace.

[1] http://www.gentoo.org/proj/en/qa/backtraces.xml
Comment 3 Nicholas Doyle 2009-06-14 16:50:14 UTC
Here is a more complete backtrace:


Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7f0f90049750 (LWP 18958)]
0x00007f0f8dacdaf7 in exif_content_get_entry (content=0x1a50e60, tag=EXIF_TAG_DATE_TIME_ORIGINAL) at exif-content.c:200
200	exif-content.c: No such file or directory.
	in exif-content.c
(gdb) bt
#0  0x00007f0f8dacdaf7 in exif_content_get_entry (content=0x1a50e60, tag=EXIF_TAG_DATE_TIME_ORIGINAL) at exif-content.c:200
#1  0x000000000045b423 in eog_exif_util_get_value (exif_data=0x1a50a90, tag_id=36867, buffer=0x7fff98215320 "", buf_size=32) at eog-exif-util.c:183
#2  0x00007f0f82b1bb73 in statusbar_set_date (statusbar=0x1856ce0, view=0x1985000) at eog-statusbar-date-plugin.c:83
#3  0x00007f0f82b1bc13 in selection_changed_cb (view=0x1985000, data=0x1986e50) at eog-statusbar-date-plugin.c:100
#4  0x00007f0f8d42a23f in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#5  0x00007f0f8d44025b in ?? () from /usr/lib/libgobject-2.0.so.0
#6  0x00007f0f8d4412d1 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#7  0x00007f0f8d4417c3 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#8  0x00007f0f8eef9f0d in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#9  0x000000000044734d in eog_thumb_view_select_single (thumbview=0x1985000, change=EOG_THUMB_VIEW_SELECT_RIGHT) at eog-thumb-view.c:868
#10 0x000000000042bcb3 in eog_window_cmd_go_next (action=0x0, user_data=0x17a6000) at eog-window.c:3364
#11 0x000000000042e8f2 in eog_window_key_press (widget=0x17a6000, event=0x1a6cc10) at eog-window.c:4520
#12 0x00007f0f8ef24658 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#13 0x00007f0f8d42a23f in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#14 0x00007f0f8d43f9bd in ?? () from /usr/lib/libgobject-2.0.so.0
#15 0x00007f0f8d44115c in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#16 0x00007f0f8d4417c3 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#17 0x00007f0f8f02c18e in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#18 0x00007f0f8ef1cfdd in gtk_propagate_event () from /usr/lib/libgtk-x11-2.0.so.0
#19 0x00007f0f8ef1e023 in gtk_main_do_event () from /usr/lib/libgtk-x11-2.0.so.0
#20 0x00007f0f8eb9bd7c in ?? () from /usr/lib/libgdk-x11-2.0.so.0
#21 0x00007f0f8d172e19 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#22 0x00007f0f8d176488 in ?? () from /usr/lib/libglib-2.0.so.0
#23 0x00007f0f8d17697d in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
#24 0x00007f0f8ef1e437 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#25 0x00000000004213fb in main (argc=1, argv=0x7fff98216078) at main.c:240
Comment 4 Gilles Dartiguelongue (RETIRED) gentoo-dev 2009-06-17 20:33:01 UTC
I need to insist, your backtrace is still missing symbols.
Comment 5 Romain Perier (RETIRED) gentoo-dev 2009-06-17 20:43:40 UTC
Summary:  Add -ggdb into your CFLAGS (to have a complete backtrace) and also add "splitdebug" into your FEATURES (make.conf), then re-emerge , re-try and re-attach the backtrace, please.

thanks :)
Comment 6 Frank 2009-07-03 07:16:06 UTC
I just wanted to report, that I have the same error. 

Right now I don't have the time to rebuild my system with ggdb so I can't provide a backtrace. 
Comment 7 Romain Perier (RETIRED) gentoo-dev 2009-07-03 23:04:35 UTC
(In reply to comment #6)
> I just wanted to report, that I have the same error. 
> 
> Right now I don't have the time to rebuild my system with ggdb so I can't
> provide a backtrace. 
> 

Not rebuild you entire system, actually just some symbols from gtk are missing, so you just need to rebuild gtk with -ggdb.
Comment 8 Frank 2009-07-04 02:04:52 UTC
Created attachment 196564 [details]
backtrace

I hope this backtrace helps more.
Took me some time to recompile the needed libs, but I hope, it's all that you need.
Comment 9 Frank 2009-07-04 12:13:34 UTC
This seems to be the same bug as https://bugzilla.gnome.org/show_bug.cgi?id=583448
Comment 10 Frank 2009-07-04 12:17:57 UTC
Created attachment 196624 [details, diff]
Patch to fix race condition

Applying the patch from http://git.gnome.org/cgit/eog/patch/?id=06ada2d5f6106c4e85c2b02dbaadc70638b8206a should fix the problem. Please test the attached approach to fix the problem.
Comment 11 Frank 2009-07-04 12:19:02 UTC
Created attachment 196625 [details]
corresponding ebuild

The correspondig ebuild to include the proposed patch.
Comment 12 Romain Perier (RETIRED) gentoo-dev 2009-07-04 14:31:39 UTC
Your backtrace isn't the same as upstream bug, your crash happens into eog_exif_util_get_value() apparently when it calls exif_content_get_entry.

The upstream crash happens into eog_image_get_exif_info.
Comment 13 Frank 2009-07-04 15:40:38 UTC
Yes, you are right. 

I meant, the cause is the same as in the upstream bug. One of the bugs marked as duplicate (https://bugzilla.gnome.org/show_bug.cgi?id=584971) has a similar backtrace.

According to the upstream developer, it seems to be a bug caused by a race condition. Therefore more than one backtrace can produce the same error. My testcase did not produce any errors after applying the proposed patch.

Sorry, if the documentation was not correct. To avoid confusion the next time: Should I rather have linked the bug which was a duplicate?
Comment 14 Romain Perier (RETIRED) gentoo-dev 2009-07-05 18:29:39 UTC
Now it's clear, URL field updated containing this link,
thanks.
Comment 15 Romain Perier (RETIRED) gentoo-dev 2009-07-05 18:33:25 UTC
> According to the upstream developer, it seems to be a bug caused by a race
> condition. Therefore more than one backtrace can produce the same error. My
> testcase did not produce any errors after applying the proposed patch.

Read the comment posted by Felix (developer) in more details, normally this bug should be fixed when eog-2.26.3 will be available, and it's already available since 1st July :) .

Comment 16 Romain Perier (RETIRED) gentoo-dev 2009-07-06 16:56:54 UTC
2.26.3 bumped into the main tree, this release bugfix should fix your crash and another. If your problem is still present, feel free to reopen this bug.

Thanks for reporting ;)