#513 Frequent crashes with current release version and git versio

1.0
closed-fixed
PCMan
pcmanfm (123)
7
2014-11-13
2011-12-17
No

I'm running libfm-git and pcmanfm-git on 32bit Arch Linux.
pcmanfm crashes frequently (although it seems to be less often than with the most recent release version).

e.g. if I right-click or middle-click on an empty part of the tab bar, or on the vertical handle between the file view and the Places/Directory Tree view it crashes like this:

================================================
Program received signal SIGSEGV, Segmentation fault.
0x00000000 in ?? ()
(gdb) backtrace
#0 0x00000000 in ?? ()
#1 0xb7b108e2 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#2 0xb76436ad in ?? () from /usr/lib/libgobject-2.0.so.0
#3 0xb7644c5c in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#4 0xb7657858 in ?? () from /usr/lib/libgobject-2.0.so.0
#5 0xb76605b9 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#6 0xb7660913 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#7 0xb7c48b03 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#8 0xb7b0eb3e in gtk_propagate_event () from /usr/lib/libgtk-x11-2.0.so.0
#9 0xb7b0eed0 in gtk_main_do_event () from /usr/lib/libgtk-x11-2.0.so.0
#10 0xb7932078 in ?? () from /usr/lib/libgdk-x11-2.0.so.0
#11 0xb7582fef in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#12 0xb7583720 in ?? () from /usr/lib/libglib-2.0.so.0
#13 0xb7583d2b in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
#14 0xb7b0dc6f in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#15 0x0805241a in main ()
================================================

e.g. if I try to do things (like click the back button) while it is displaying the files in a folder (easiest to reproduce when a folder contains a large number of files, so takes a long time to load) I get crashes like this:

================================================
[New Thread 0xb6e4bb70 (LWP 636)]
[Thread 0xb6e4bb70 (LWP 636) exited]

(pcmanfm:452): Gtk-CRITICAL **: IA__gtk_widget_is_toplevel: assertion `GTK_IS_WIDGET (widget)' failed

(pcmanfm:452): GLib-GObject-CRITICAL **: g_object_get_qdata: assertion `G_IS_OBJECT (object)' failed

(pcmanfm:452): Gtk-CRITICAL **: IA__gtk_widget_is_toplevel: assertion `GTK_IS_WIDGET (widget)' failed

(pcmanfm:452): Gtk-CRITICAL **: IA__gtk_widget_is_toplevel: assertion `GTK_IS_WIDGET (widget)' failed

(pcmanfm:452): GLib-GObject-CRITICAL **: g_object_get_qdata: assertion `G_IS_OBJECT (object)' failed

(pcmanfm:452): GLib-GObject-WARNING **: instance with invalid (NULL) class pointer

(pcmanfm:452): GLib-GObject-CRITICAL **: g_signal_emit_valist: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed

(pcmanfm:452): GLib-GObject-WARNING **: invalid unclassed pointer in cast to `GtkObject'

Program received signal SIGSEGV, Segmentation fault.
0x0805713f in ?? ()
(gdb) backtrace
#0 0x0805713f in ?? ()
#1 0xb7646ca3 in g_cclosure_marshal_VOID__POINTER ()
from /usr/lib/libgobject-2.0.so.0
#2 0xb7644c5c in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#3 0xb7657a10 in ?? () from /usr/lib/libgobject-2.0.so.0
#4 0xb76607a7 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#5 0xb7660913 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#6 0xb7e59b52 in ?? () from /usr/lib/libfm-gtk.so.2
#7 0xb764616c in g_cclosure_marshal_VOID__VOID ()
from /usr/lib/libgobject-2.0.so.0
#8 0xb7644c5c in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#9 0xb7657a10 in ?? () from /usr/lib/libgobject-2.0.so.0
#10 0xb76607a7 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#11 0xb7660913 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#12 0xb79b2b92 in ?? () from /usr/lib/libfm.so.2
#13 0xb764616c in g_cclosure_marshal_VOID__VOID ()
from /usr/lib/libgobject-2.0.so.0
#14 0xb7644c5c in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#15 0xb7657a10 in ?? () from /usr/lib/libgobject-2.0.so.0
#16 0xb76607a7 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#17 0xb7660913 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#18 0xb79ba58d in fm_job_emit_finished () from /usr/lib/libfm.so.2
#19 0xb79ba670 in ?? () from /usr/lib/libfm.so.2
---Type <return> to continue, or q <return> to quit---
#20 0xb757eea0 in ?? () from /usr/lib/libglib-2.0.so.0
#21 0xb7582fef in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#22 0xb7583720 in ?? () from /usr/lib/libglib-2.0.so.0
#23 0xb7583d2b in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
#24 0xb7b0dc6f in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#25 0x0805241a in main ()
================================================

And like this:

================================================
[Thread 0xb4e14b70 (LWP 1233) exited]
[New Thread 0xb4e14b70 (LWP 1234)]

(pcmanfm:639): Gtk-CRITICAL **: IA__gtk_widget_is_toplevel: assertion `GTK_IS_WIDGET (widget)' failed

(pcmanfm:639): GLib-GObject-CRITICAL **: g_object_get_qdata: assertion `G_IS_OBJECT (object)' failed

(pcmanfm:639): Gtk-CRITICAL **: IA__gtk_widget_is_toplevel: assertion `GTK_IS_WIDGET (widget)' failed

(pcmanfm:639): Gtk-CRITICAL **: IA__gtk_widget_is_toplevel: assertion `GTK_IS_WIDGET (widget)' failed

(pcmanfm:639): GLib-GObject-CRITICAL **: g_object_get_qdata: assertion `G_IS_OBJECT (object)' failed

(pcmanfm:639): GLib-GObject-WARNING **: instance with invalid (NULL) class pointer

(pcmanfm:639): GLib-GObject-CRITICAL **: g_signal_emit_valist: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed

(pcmanfm:639): GLib-GObject-WARNING **: invalid unclassed pointer in cast to `GtkObject'

Program received signal SIGSEGV, Segmentation fault.
0xb79b775b in fm_nav_history_get_cur () from /usr/lib/libfm.so.2
(gdb) backtrace
#0 0xb79b775b in fm_nav_history_get_cur () from /usr/lib/libfm.so.2
#1 0x0805713f in ?? ()
#2 0xb7646ca3 in g_cclosure_marshal_VOID__POINTER ()
from /usr/lib/libgobject-2.0.so.0
#3 0xb7644c5c in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#4 0xb7657a10 in ?? () from /usr/lib/libgobject-2.0.so.0
#5 0xb76607a7 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#6 0xb7660913 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#7 0xb7e59b52 in ?? () from /usr/lib/libfm-gtk.so.2
#8 0xb764616c in g_cclosure_marshal_VOID__VOID ()
from /usr/lib/libgobject-2.0.so.0
#9 0xb7644c5c in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#10 0xb7657a10 in ?? () from /usr/lib/libgobject-2.0.so.0
#11 0xb76607a7 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#12 0xb7660913 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#13 0xb79b2b92 in ?? () from /usr/lib/libfm.so.2
#14 0xb764616c in g_cclosure_marshal_VOID__VOID ()
from /usr/lib/libgobject-2.0.so.0
#15 0xb7644c5c in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#16 0xb7657a10 in ?? () from /usr/lib/libgobject-2.0.so.0
#17 0xb76607a7 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#18 0xb7660913 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#19 0xb79ba58d in fm_job_emit_finished () from /usr/lib/libfm.so.2
---Type <return> to continue, or q <return> to quit---
#20 0xb79ba670 in ?? () from /usr/lib/libfm.so.2
#21 0xb757eea0 in ?? () from /usr/lib/libglib-2.0.so.0
#22 0xb7582fef in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#23 0xb7583720 in ?? () from /usr/lib/libglib-2.0.so.0
#24 0xb7583d2b in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
#25 0xb7b0dc6f in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#26 0x0805241a in main ()
================================================

Discussion

  • alister.hood

    alister.hood - 2012-01-07

    I also get the first crash when I right-click on a file or folder in anything other than Detailed list view.
    And if I'm debugging it freezes X, so I need to exit with ctrl+backspace (unless I started it from another TTY, in which case I can switch to that and quit gdb to get rid of it).

     
  • PCMan

    PCMan - 2012-05-09
    • milestone: --> 1.0
    • labels: --> pcmanfm
    • priority: 5 --> 6
    • assigned_to: nobody --> pcmanx
     
  • Lonely Stranger

    Lonely Stranger - 2012-05-18

    I cannot reproduce problem you mentioned. And also there is no certain info in your citation so it's impossible to find out a place of a problem. Could you make libfm & pcmanfm with debugging symbols and get stack info again with it?

     
  • alister.hood

    alister.hood - 2012-05-19

    Oh, I thought it was built with debugging enabled. Maybe I forgot to configure makepkg to not strip it... is this any better?:

    #0 0x00000000 in ?? ()
    #1 0xb7b08762 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
    #2 0xb76246ad in ?? () from /usr/lib/libgobject-2.0.so.0
    #3 0xb7625c5c in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
    #4 0xb7638858 in ?? () from /usr/lib/libgobject-2.0.so.0
    #5 0xb76415b9 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
    #6 0xb7641913 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
    #7 0xb7c40743 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
    #8 0xb7b0692e in gtk_propagate_event () from /usr/lib/libgtk-x11-2.0.so.0
    #9 0xb7b06cc0 in gtk_main_do_event () from /usr/lib/libgtk-x11-2.0.so.0
    #10 0xb792a078 in ?? () from /usr/lib/libgdk-x11-2.0.so.0
    #11 0xb756407f in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
    #12 0xb75647b0 in ?? () from /usr/lib/libglib-2.0.so.0
    #13 0xb7564dbb in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
    #14 0xb7b05a5f in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
    #15 0x0805241a in main (argc=1, argv=0xbffff764) at pcmanfm.c:199

    WIth current git I don't seem to get the second and third crashes anymore.

     
  • Lonely Stranger

    Lonely Stranger - 2012-05-21

    From your backtrace it seems you still not have debug symbols in your libfm, it's where those ?? () come from (at least part of them). Please, install libfm along with debug symbols and redo. Thank you.

     
  • alister.hood

    alister.hood - 2012-05-22

    I thought that thie following output indicated that I do have debug symbols (if not, I can't figure out how to enable them. I tried --enable-debug and CFLAGS="-O0 -g")

    # objdump --syms libfm.so.2.0.0

    libfm.so.2.0.0: file format elf32-i386

    SYMBOL TABLE:
    00000114 l d .note.gnu.build-id 00000000 .note.gnu.build-id
    00000138 l d .gnu.hash 00000000 .gnu.hash
    00000f08 l d .dynsym 00000000 .dynsym
    00003948 l d .dynstr 00000000 .dynstr
    00007372 l d .gnu.version 00000000 .gnu.version
    000078bc l d .gnu.version_r 00000000 .gnu.version_r
    0000796c l d .rel.dyn 00000000 .rel.dyn
    00007eec l d .rel.plt 00000000 .rel.plt
    00008f8c l d .init 00000000 .init
    00008fc0 l d .plt 00000000 .plt
    0000b110 l d .text 00000000 .text
    00027d58 l d .fini 00000000 .fini
    00027d80 l d .rodata 00000000 .rodata
    0002ae30 l d .eh_frame_hdr 00000000 .eh_frame_hdr
    0002c044 l d .eh_frame 00000000 .eh_frame
    00033a5c l d .ctors 00000000 .ctors
    00033a64 l d .dtors 00000000 .dtors
    00033a6c l d .jcr 00000000 .jcr
    00033a80 l d .data.rel.ro 00000000 .data.rel.ro
    00033e1c l d .dynamic 00000000 .dynamic
    00033f3c l d .got 00000000 .got
    00033ff4 l d .got.plt 00000000 .got.plt
    00034850 l d .data 00000000 .data
    00034880 l d .bss 00000000 .bss
    00000000 l d .comment 00000000 .comment
    00000000 l d .debug_aranges 00000000 .debug_aranges
    00000000 l d .debug_info 00000000 .debug_info
    00000000 l d .debug_abbrev 00000000 .debug_abbrev
    00000000 l d .debug_line 00000000 .debug_line
    00000000 l d .debug_str 00000000 .debug_str
    00000000 l d .debug_loc 00000000 .debug_loc
    00000000 l d .debug_ranges 00000000 .debug_ranges
    ...

     
  • Lonely Stranger

    Lonely Stranger - 2012-05-22

    You can run command:

    # file /usr/local/lib/libfm.so.2.0.0

    and it should show you either 'stripped' or 'not stripped' and since there is no mentions of it in backtrace (but it should be there as most of pcmanfm's work is doing in libfm) I assume it's stripped. And I don't have Arch Linux to see how it can be installed not stripped sorry.

     
  • alister.hood

    alister.hood - 2012-05-22

    It is not stripped.

     
  • alister.hood

    alister.hood - 2012-05-22

    And it is definitely supposed to have debugging enabled:

    Libfm 0.1.99 Configuration Summary:
    ...
    Enable compiler flags and other support for debugging: yes
    ...

     
  • Lonely Stranger

    Lonely Stranger - 2012-05-22

    Ah I see. Thank you. Something weird happens with core then. Seems I have to get the crash myself somehow to examine it. Could you please describe exactly how I can reproduce the crash?

     
  • alister.hood

    alister.hood - 2012-05-23

    Open a second tab and then right-click on an empty part of the tab bar.

     
  • Lonely Stranger

    Lonely Stranger - 2012-05-23

    It does not crash for me on right-click, I've tried everywhere not only on empty part of tab bar, sorry. Probably it's libgtk interferring somehow.

     
  • Lonely Stranger

    Lonely Stranger - 2012-05-26
    • priority: 6 --> 7
     
  • alister.hood

    alister.hood - 2012-05-27

    FWIW I just built in a completely different distro (a clean boot of Puppy Linux 5.3.1) on completely different hardware, and I'm having pretty much the same problem.

    Program received signal SIGSEGV, Segmentation fault.
    0x00000000 in ?? ()
    (gdb) bt
    #0 0x00000000 in ?? ()
    #1 0xb7d00934 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
    #2 0xb74a6587 in ?? () from /usr/lib/libgobject-2.0.so.0
    #3 0xb74a7c32 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
    #4 0xb74ba9bd in ?? () from /usr/lib/libgobject-2.0.so.0
    #5 0xb74c33ab in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
    #6 0xb74c37d2 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
    #7 0xb7e354e6 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
    #8 0xb7cfeabd in gtk_propagate_event () from /usr/lib/libgtk-x11-2.0.so.0
    #9 0xb7cff147 in gtk_main_do_event () from /usr/lib/libgtk-x11-2.0.so.0
    #10 0xb7b6185a in ?? () from /usr/lib/libgdk-x11-2.0.so.0
    #11 0xb73b7432 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
    #12 0xb73b7c10 in ?? () from /usr/lib/libglib-2.0.so.0
    #13 0xb73b82d3 in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
    #14 0xb7cfdb89 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
    #15 0x08053efa in main (argc=134655888, argv=0x2) at pcmanfm.c:201

    with current git the error on my Arch machine is also at pcmanfm.c:201 (so I presume it is the same line of code as used to be pcmanfm.c:199), but argc and argv are the same as before (argc=1, argv=0xbffff764).

     
  • alister.hood

    alister.hood - 2012-05-27

    Also, I said this:
    "e.g. if I right-click or middle-click on an empty part of the tab bar, or on the vertical handle between the file view and the Places/Directory Tree view it crashes like this:"

    I'm not sure if it has changed, or if I just didn't notice, but now it also crashes when I right-click on a non-empty part of the tab bar.

     
  • Lonely Stranger

    Lonely Stranger - 2012-06-01

    We hope this issue is completely fixed in the Git repository recently.
    Check it out when it's possible for you and if the bug still exists then reopen the report, please.
    Thank you very much.

     
  • Lonely Stranger

    Lonely Stranger - 2012-06-01
    • status: open --> closed-fixed
     

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:





No, thanks