Nautilus crashes (and blocks the entire system) when the user tries to view a gif file's properties.

Bug #918266 reported by Andreu Correa Casablanca
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
exempi (Ubuntu)
New
Undecided
Unassigned

Bug Description

System: Ubuntu 11.10 64 bits, Laptop with Core 2 Duo 2.8Ghz + 4GB RAM + Integrated Intel graphics card

Package version: libexempi3 (2.1.1-1build2)

When I try to open the properties dialog over a GIF file, my computer gets blocked and the memory consumption grows fast as light... (more than 3GB of RAM in 2 seconds).

Stacktrace:
---------------------------------------------------------------------------------
GNU gdb (Ubuntu/Linaro 7.3-0ubuntu2) 7.3-2011.08
Copyright (C) 2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Para las instrucciones de informe de errores, vea:
<http://bugs.launchpad.net/gdb-linaro/>...
Leyendo símbolos desde /usr/bin/nautilus...Leyendo símbolos desde /usr/lib/debug/usr/bin/nautilus...hecho.
hecho.
(gdb) handle SIG33 pass nostop noprint
Signal Stop Print Pass to program Description
SIG33 No No Yes Real-time event 33
(gdb) set pagination 0
(gdb) run 
Starting program: /usr/bin/nautilus
[Depuración de hilo usando libthread_db enabled]
[Nuevo Thread 0x7fffecb01700 (LWP 5133)]
[Nuevo Thread 0x7fffe7fff700 (LWP 5134)]
[Nuevo Thread 0x7fffe77fe700 (LWP 5135)]
Initializing nautilus-gdu extension
** (nautilus:5130): DEBUG: SyncDaemon already running, initializing SyncdaemonDaemon object
[Nuevo Thread 0x7fffd8a1b700 (LWP 5136)]
[Nuevo Thread 0x7fffd7dd0700 (LWP 5137)]

(nautilus:5130): GLib-GObject-CRITICAL **: g_value_get_object: assertion `G_VALUE_HOLDS_OBJECT (value)' failed

(nautilus:5130): GLib-GObject-CRITICAL **: g_value_get_object: assertion `G_VALUE_HOLDS_OBJECT (value)' failed

(nautilus:5130): GLib-GObject-CRITICAL **: g_value_get_object: assertion `G_VALUE_HOLDS_OBJECT (value)' failed

(nautilus:5130): GLib-GObject-CRITICAL **: g_value_get_object: assertion `G_VALUE_HOLDS_OBJECT (value)' failed

(nautilus:5130): GLib-GObject-CRITICAL **: g_value_get_object: assertion `G_VALUE_HOLDS_OBJECT (value)' failed

(nautilus:5130): GLib-GObject-CRITICAL **: g_value_get_object: assertion `G_VALUE_HOLDS_OBJECT (value)' failed

(nautilus:5130): GLib-GObject-CRITICAL **: g_value_get_object: assertion `G_VALUE_HOLDS_OBJECT (value)' failed

(nautilus:5130): GLib-GObject-CRITICAL **: g_value_get_object: assertion `G_VALUE_HOLDS_OBJECT (value)' failed

(nautilus:5130): GLib-GObject-CRITICAL **: g_value_get_object: assertion `G_VALUE_HOLDS_OBJECT (value)' failed
Nautilus-Share-Message: Called "net usershare info" but it failed: La «red compartida» devolvió el error 255: net usershare: cannot open usershare directory /var/lib/samba/usershares. Error No existe el archivo o el directorio
Please ask your system administrator to enable user sharing.

(nautilus:5130): GLib-GObject-CRITICAL **: g_value_get_object: assertion `G_VALUE_HOLDS_OBJECT (value)' failed

(nautilus:5130): GLib-GObject-CRITICAL **: g_value_get_object: assertion `G_VALUE_HOLDS_OBJECT (value)' failed

(nautilus:5130): GLib-GObject-CRITICAL **: g_value_get_object: assertion `G_VALUE_HOLDS_OBJECT (value)' failed

(nautilus:5130): GLib-GObject-CRITICAL **: g_value_get_object: assertion `G_VALUE_HOLDS_OBJECT (value)' failed

(nautilus:5130): GLib-GObject-CRITICAL **: g_value_get_object: assertion `G_VALUE_HOLDS_OBJECT (value)' failed

(nautilus:5130): GLib-GObject-CRITICAL **: g_value_get_object: assertion `G_VALUE_HOLDS_OBJECT (value)' failed

(nautilus:5130): GLib-GObject-CRITICAL **: g_value_get_object: assertion `G_VALUE_HOLDS_OBJECT (value)' failed

(nautilus:5130): GLib-GObject-CRITICAL **: g_value_get_object: assertion `G_VALUE_HOLDS_OBJECT (value)' failed

(nautilus:5130): GLib-GObject-CRITICAL **: g_value_get_object: assertion `G_VALUE_HOLDS_OBJECT (value)' failed

(nautilus:5130): GLib-GObject-CRITICAL **: g_value_get_object: assertion `G_VALUE_HOLDS_OBJECT (value)' failed
[Thread 0x7fffd8a1b700 (LWP 5136) terminado]
[Thread 0x7fffd7dd0700 (LWP 5137) terminado]
[Nuevo Thread 0x7fffd7dd0700 (LWP 5138)]
[Nuevo Thread 0x7fffd8a1b700 (LWP 5140)]
[Thread 0x7fffe7fff700 (LWP 5134) terminado]
[Thread 0x7fffd7dd0700 (LWP 5138) terminado]
[Nuevo Thread 0x7fffd7dd0700 (LWP 5143)]
[Thread 0x7fffd7dd0700 (LWP 5143) terminado]
[Thread 0x7fffd8a1b700 (LWP 5140) terminado]

Program received signal SIGINT, Interrupt.
__memset_sse2 () at ../sysdeps/x86_64/multiarch/../memset.S:916
916 ../sysdeps/x86_64/multiarch/../memset.S: No existe el archivo o el directorio.
 in ../sysdeps/x86_64/multiarch/../memset.S
(gdb) backtrace full
#0 __memset_sse2 () at ../sysdeps/x86_64/multiarch/../memset.S:916
No locales.
#1 0x00007ffff0ae0698 in std::string::_M_replace_aux(unsigned long, unsigned long, unsigned long, char) () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
No symbol table info available.
#2 0x00007ffff557ae0b in GIF_MetaHandler::CacheFileData() () from /usr/lib/libexempi.so.3
No symbol table info available.
#3 0x00007ffff5571ff5 in XMPFiles::OpenFile(char const*, unsigned int, unsigned int) () from /usr/lib/libexempi.so.3
No symbol table info available.
#4 0x00007ffff556df94 in WXMPFiles_OpenFile_1 () from /usr/lib/libexempi.so.3
No symbol table info available.
#5 0x00007ffff55340c8 in TXMPFiles<std::string>::OpenFile(char const*, unsigned int, unsigned int) () from /usr/lib/libexempi.so.3
No symbol table info available.
#6 0x00007ffff553444c in TXMPFiles<std::string>::TXMPFiles(char const*, unsigned int, unsigned int) () from /usr/lib/libexempi.so.3
No symbol table info available.
#7 0x00007ffff5533a24 in xmp_files_open_new () from /usr/lib/libexempi.so.3
No symbol table info available.
#8 0x000000000043f123 in load_location (location=0x148c0e0 "file:///home/castarco/Descargas/hosting-acens.gif", page=0x1496020) at nautilus-image-properties-page.c:571
        xf = <optimized out>
        localname = 0x1488de0 "/home/castarco/Descargas/hosting-acens.gif"
        file = 0x149a140
#9 get_property_pages (files=<optimized out>, provider=<optimized out>) at nautilus-image-properties-page.c:663
        file = <optimized out>
        pages = 0x0
        real_page = <optimized out>
        uri = 0x148c0e0 "file:///home/castarco/Descargas/hosting-acens.gif"
        page = 0x1496020
#10 get_property_pages (provider=<optimized out>, files=<optimized out>) at nautilus-image-properties-page.c:626
No locales.
#11 0x000000000045b7e1 in append_extension_pages (window=0x142e010) at nautilus-properties-window.c:4628
        provider = <optimized out>
        pages = <optimized out>
        l = <optimized out>
        providers = 0x142ff00
        p = 0x142ff00
#12 0x0000000000460aa8 in create_properties_window (startup_data=0x13ee560) at nautilus-properties-window.c:4931
        window = 0x142e010
        l = <optimized out>
#13 is_directory_ready_callback (data=0x13ee560, file=<optimized out>) at nautilus-properties-window.c:5069
        new_window = 0x142e010
#14 is_directory_ready_callback (file=<optimized out>, data=0x13ee560) at nautilus-properties-window.c:5057
        startup_data = 0x13ee560
#15 0x000000000049acfc in call_ready_callbacks_at_idle (callback_data=<optimized out>) at nautilus-directory-async.c:1861
        directory = 0xe428f0
        node = <optimized out>
        next = <optimized out>
        callback = 0x112caf0
#16 0x00007ffff443ca5d in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#17 0x00007ffff443d258 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#18 0x00007ffff443d792 in g_main_loop_run () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#19 0x00007ffff6b5fe1d in gtk_main () from /usr/lib/libgtk-3.so.0
No symbol table info available.
#20 0x00007ffff4ffaa4e in g_application_run () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
No symbol table info available.
#21 0x000000000042afe0 in main (argc=1, argv=0x7fffffffe278) at nautilus-main.c:102
        retval = <optimized out>
        application = 0x77b800
(gdb) info registers
rax 0x7ffed6eb5028 140732504166440
rbx 0x148f6c8 21558984
rcx 0xffffffffffffff86 -122
rdx 0x2020202020202020 2314885530818453536
rsi 0x20 32
rdi 0x7fff9cf89fb0 140735826927536
rbp 0xffffffff 0xffffffff
rsp 0x7fffffffdc08 0x7fffffffdc08
r8 0x39f2aff7 972206071
r9 0x180000 1572864
r10 0x8 8
r11 0x7ffff3a23316 140737280881430
r12 0x0 0
r13 0x20 32
r14 0x148f6c8 21558984
r15 0x0 0
rip 0x7ffff3a23913 0x7ffff3a23913 <__memset_sse2+2387>
eflags 0x10206 [ PF IF RF ]
cs 0x33 51
ss 0x2b 43
ds 0x0 0
es 0x0 0
fs 0x0 0
gs 0x0 0
(gdb) x/16i $pc
=> 0x7ffff3a23913 <__memset_sse2+2387>: movntdq %xmm0,0x50(%rdi)
   0x7ffff3a23918 <__memset_sse2+2392>: movntdq %xmm0,0x60(%rdi)
   0x7ffff3a2391d <__memset_sse2+2397>: movntdq %xmm0,0x70(%rdi)
   0x7ffff3a23922 <__memset_sse2+2402>: lea 0x80(%rdi),%rdi
   0x7ffff3a23929 <__memset_sse2+2409>: jge 0x7ffff3a238f0 <__memset_sse2+2352>
   0x7ffff3a2392b <__memset_sse2+2411>: sfence
   0x7ffff3a2392e <__memset_sse2+2414>: add %r8,%rdi
   0x7ffff3a23931 <__memset_sse2+2417>: lea -0x535(%rip),%r11 # 0x7ffff3a23403 <__memset_sse2+1091>
   0x7ffff3a23938 <__memset_sse2+2424>: lea 0xd1001(%rip),%rcx # 0x7ffff3af4940
   0x7ffff3a2393f <__memset_sse2+2431>: movswq (%rcx,%r8,2),%rcx
   0x7ffff3a23944 <__memset_sse2+2436>: lea (%rcx,%r11,1),%r11
   0x7ffff3a23948 <__memset_sse2+2440>: jmpq *%r11
   0x7ffff3a2394b <__memset_sse2+2443>: nopl 0x0(%rax,%rax,1)
   0x7ffff3a23950 <__memset_sse2+2448>: cmp $0x2000,%r8
   0x7ffff3a23957 <__memset_sse2+2455>: jae 0x7ffff3a239e0 <__memset_sse2+2592>
   0x7ffff3a2395d <__memset_sse2+2461>: nopl (%rax)
(gdb) thread apply all backtrace

Hilo 4 (Thread 0x7fffe77fe700 (LWP 5135)):
#0 0x00007ffff3a73773 in __GI___poll (fds=<optimized out>, nfds=<optimized out>, timeout=<optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:87
#1 0x00007ffff443cf68 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2 0x00007ffff443d792 in g_main_loop_run () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3 0x00007fffec0fc9cb in ?? () from /usr/lib/gio/modules/libdconfsettings.so
#4 0x00007ffff44622b6 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#5 0x00007ffff4b4befc in start_thread (arg=0x7fffe77fe700) at pthread_create.c:304
#6 0x00007ffff3a7f89d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#7 0x0000000000000000 in ?? ()

Hilo 2 (Thread 0x7fffecb01700 (LWP 5133)):
#0 0x00007ffff3a73773 in __GI___poll (fds=<optimized out>, nfds=<optimized out>, timeout=<optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:87
#1 0x00007ffff443cf68 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2 0x00007ffff443d792 in g_main_loop_run () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3 0x00007ffff5023516 in ?? () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
#4 0x00007ffff44622b6 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#5 0x00007ffff4b4befc in start_thread (arg=0x7fffecb01700) at pthread_create.c:304
#6 0x00007ffff3a7f89d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#7 0x0000000000000000 in ?? ()

Hilo 1 (Thread 0x7ffff7fc1960 (LWP 5130)):
#0 __memset_sse2 () at ../sysdeps/x86_64/multiarch/../memset.S:916
#1 0x00007ffff0ae0698 in std::string::_M_replace_aux(unsigned long, unsigned long, unsigned long, char) () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#2 0x00007ffff557ae0b in GIF_MetaHandler::CacheFileData() () from /usr/lib/libexempi.so.3
#3 0x00007ffff5571ff5 in XMPFiles::OpenFile(char const*, unsigned int, unsigned int) () from /usr/lib/libexempi.so.3
#4 0x00007ffff556df94 in WXMPFiles_OpenFile_1 () from /usr/lib/libexempi.so.3
#5 0x00007ffff55340c8 in TXMPFiles<std::string>::OpenFile(char const*, unsigned int, unsigned int) () from /usr/lib/libexempi.so.3
#6 0x00007ffff553444c in TXMPFiles<std::string>::TXMPFiles(char const*, unsigned int, unsigned int) () from /usr/lib/libexempi.so.3
#7 0x00007ffff5533a24 in xmp_files_open_new () from /usr/lib/libexempi.so.3
#8 0x000000000043f123 in load_location (location=0x148c0e0 "file:///home/castarco/Descargas/hosting-acens.gif", page=0x1496020) at nautilus-image-properties-page.c:571
#9 get_property_pages (files=<optimized out>, provider=<optimized out>) at nautilus-image-properties-page.c:663
#10 get_property_pages (provider=<optimized out>, files=<optimized out>) at nautilus-image-properties-page.c:626
#11 0x000000000045b7e1 in append_extension_pages (window=0x142e010) at nautilus-properties-window.c:4628
#12 0x0000000000460aa8 in create_properties_window (startup_data=0x13ee560) at nautilus-properties-window.c:4931
#13 is_directory_ready_callback (data=0x13ee560, file=<optimized out>) at nautilus-properties-window.c:5069
#14 is_directory_ready_callback (file=<optimized out>, data=0x13ee560) at nautilus-properties-window.c:5057
#15 0x000000000049acfc in call_ready_callbacks_at_idle (callback_data=<optimized out>) at nautilus-directory-async.c:1861
#16 0x00007ffff443ca5d in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#17 0x00007ffff443d258 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#18 0x00007ffff443d792 in g_main_loop_run () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#19 0x00007ffff6b5fe1d in gtk_main () from /usr/lib/libgtk-3.so.0
#20 0x00007ffff4ffaa4e in g_application_run () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
#21 0x000000000042afe0 in main (argc=1, argv=0x7fffffffe278) at nautilus-main.c:102
(gdb) quit
Una sesión de depuración está activa.

 Inferior 1 [process 5130] will be killed.

¿Salir de cualquier modo? (y o n)
---------------------------------------------------------------------------------

Revision history for this message
Andreu Correa Casablanca (castarco) wrote :
Revision history for this message
Andreu Correa Casablanca (castarco) wrote :

In computers with more CPU power (and more memory), the system don't became blockec, but the properties window take much more time to be loaded with GIF files than with other image types, such as PNG.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.