User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; de-AT; rv:1.8.0.7) Gecko/20060913 SeaMonkey/1.0.5 Build Identifier: What I desribe here is another thing that started to happen when I switched from Ubuntu Dapper to Edgy recently (independent of the version of Thunar I'm using). Thunar tends to become sort of "unstable" if I turn "show hidden files" on (usually when I'm in my home directory). First there is a really heavy disc usage for ~ 20 sec. (maybe directorys are scanned if they contain subdirectories?). Then everythings seems to work fine, untill I switch "show hidden files" off again. Again there is heavy disc usage as described above, but this time Thunar seems to get caught in a sort of infinite loop and causes high CPU usage. The user interface responds very slow and when I try to continue to work with it, most times at one point it freezes completely and the window cannot be closed in a normal way (I have to kill Thunar). I can also reproduce a crash (I'm not sure whether this is a different problem or not), when I disable "show hidden files" (in a situation as described above) and I have visited a hidden directory before, its entry is displayed as "selected" in the tree view and remains visible after disabling "show hidden files". If I select now a directory above this hidden directory in the tree view, Thunar crashes immediately with this command line output: Gtk-CRITICAL **: gtk_tree_model_row_has_child_toggled: assertion `path != NULL' failed I would happily deliver a debug output but I'm not sure how to get one. I already tried to observe with strace what Thunar is doing while it is in the described infinite loop; my terminal then gets filled with continueing messages like this: close(11) = 0 open("/proc/driver/snd-page-alloc", O_RDONLY) = 11 close(11) = 0 open("/proc/asound/version", O_RDONLY) = 11 close(11) = 0 open("/proc/asound/devices", O_RDONLY) = 11 close(11) = 0 open("/proc/asound/cards", O_RDONLY) = 11 close(11) = 0 open("/proc/asound/modules", O_RDONLY) = 11 close(11) = 0 open("/proc/asound/timers", O_RDONLY) = 11 close(11) = 0 open("/proc/asound/pcm", O_RDONLY) = 11 close(11) = 0 open("/proc/asound/hwdep", O_RDONLY) = 11 close(11) = 0 open("/proc/acpi/info", O_RDONLY) = 11 close(11) = 0 open("/proc/acpi/dsdt", O_RDONLY) = -1 EACCES (Permission denied) open("/proc/acpi/fadt", O_RDONLY) = -1 EACCES (Permission denied) open("/proc/acpi/sleep", O_RDONLY) = 11 close(11) = 0 open("/proc/acpi/alarm", O_RDONLY) = 11 close(11) = 0 open("/proc/acpi/wakeup", O_RDONLY) = 11 close(11) = 0 open("/proc/tty/ldiscs", O_RDONLY) = 11 close(11) = 0 open("/proc/tty/drivers", O_RDONLY) = 11 close(11) = 0 open("/proc/sysvipc/sem", O_RDONLY) = 11 close(11) = 0 open("/proc/sysvipc/msg", O_RDONLY) = 11 close(11) = 0 open("/proc/sysvipc/shm", O_RDONLY) = 11 close(11) = 0 open("/proc/scsi/scsi", O_RDONLY) = 11 close(11) = 0 open("/proc/scsi/device_info", O_RDONLY) = 11 close(11) = 0 open("/proc/net/netlink", O_RDONLY) = 11 close(11) = 0 open("/proc/net/protocols", O_RDONLY) = 11 close(11) = 0 open("/proc/net/dev", O_RDONLY) = 11 close(11) = 0 open("/proc/net/softnet_stat", O_RDONLY) = 11 close(11) = 0 open("/proc/net/wireless", O_RDONLY) = 11 close(11) = 0 open("/proc/net/dev_mcast", O_RDONLY) = 11 close(11) = 0 open("/proc/net/psched", O_RDONLY) = 11 close(11) = 0 open("/proc/net/arp", O_RDONLY) = 11 close(11) = 0 open("/proc/net/rt_cache", O_RDONLY) = 11 close(11) = 0 open("/proc/net/rt_acct", O_RDONLY) = 11 close(11) = 0 open("/proc/net/igmp", O_RDONLY) = 11 close(11) = 0 open("/proc/net/mcfilter", O_RDONLY) = 11 close(11) = 0 open("/proc/net/ip_mr_vif", O_RDONLY) = 11 close(11) = 0 open("/proc/net/ip_mr_cache", O_RDONLY) = 11 close(11) = 0 open("/proc/net/raw", O_RDONLY) = 11 close(11) = 0 open("/proc/net/tcp", O_RDONLY) = 11 close(11) = 0 open("/proc/net/udp", O_RDONLY) = 11 close(11) = 0 open("/proc/net/route", O_RDONLY) = 11 close(11) = 0 open("/proc/net/netstat", O_RDONLY) = 11 close(11) = 0 open("/proc/net/snmp", O_RDONLY) = 11 close(11) = 0 open("/proc/net/sockstat", O_RDONLY) = 11 close(11) = 0 open("/proc/net/tr_rif", O_RDONLY) = 11 close(11) = 0 open("/proc/net/unix", O_RDONLY) = 11 close(11) = 0 open("/proc/net/packet", O_RDONLY) = 11 close(11) = 0 open("/proc/net/igmp6", O_RDONLY) = 11 close(11) = 0 open("/proc/net/mcfilter6", O_RDONLY) = 11 close(11) = 0 open("/proc/net/raw6", O_RDONLY) = 11 close(11) = 0 open("/proc/net/tcp6", O_RDONLY) = 11 close(11) = 0 open("/proc/net/udp6", O_RDONLY) = 11 close(11) = 0 open("/proc/net/snmp6", O_RDONLY) = 11 close(11) = 0 open("/proc/net/sockstat6", O_RDONLY) = 11 close(11) = 0 open("/proc/net/anycast6", O_RDONLY) = 11 close(11) = 0 open("/proc/net/if_inet6", O_RDONLY) = 11 close(11) = 0 open("/proc/net/ipv6_route", O_RDONLY) = 11 close(11) = 0 open("/proc/net/rt6_stats", O_RDONLY) = 11 close(11) = 0 open("/proc/net/ip6_flowlabel", O_RDONLY) = 11 close(11) = 0 open("/proc/ide/drivers", O_RDONLY) = 11 close(11) = 0 open("/proc/ide/ali", O_RDONLY) = 11 close(11) = 0 open("/proc/driver/rtc", O_RDONLY) = 11 close(11) = 0 open("/proc/driver/snd-page-alloc", O_RDONLY) = 11 close(11) = 0 open("/proc/asound/version", O_RDONLY) = 11 close(11) = 0 open("/proc/asound/devices", O_RDONLY) = 11 close(11) = 0 open("/proc/asound/cards", O_RDONLY) = 11 close(11) = 0 open("/proc/asound/modules", O_RDONLY) = 11 close(11) = 0 open("/proc/asound/timers", O_RDONLY) = 11 close(11) = 0 open("/proc/asound/pcm", O_RDONLY) = 11 close(11) = 0 open("/proc/asound/hwdep", O_RDONLY) = 11 close(11) = 0 open("/proc/acpi/info", O_RDONLY) = 11 close(11) = 0 open("/proc/acpi/dsdt", O_RDONLY) = -1 EACCES (Permission denied) open("/proc/acpi/fadt", O_RDONLY) = -1 EACCES (Permission denied) open("/proc/acpi/sleep", O_RDONLY) = 11 close(11) = 0 open("/proc/acpi/alarm", O_RDONLY) = 11 close(11) = 0 open("/proc/acpi/wakeup", O_RDONLY) = 11 close(11) = 0 open("/proc/tty/ldiscs", O_RDONLY) = 11 close(11) = 0 open("/proc/tty/drivers", O_RDONLY) = 11 close(11) = 0 open("/proc/sysvipc/sem", O_RDONLY) = 11 close(11) = 0 open("/proc/sysvipc/msg", O_RDONLY) = 11 close(11) = 0 open("/proc/sysvipc/shm", O_RDONLY) = 11 close(11) = 0 open("/proc/scsi/scsi", O_RDONLY) = 11 close(11) = 0 open("/proc/scsi/device_info", O_RDONLY) = 11 close(11) = 0 open("/proc/net/netlink", O_RDONLY) = 11 close(11) = 0 open("/proc/net/protocols", O_RDONLY) = 11 close(11) = 0 open("/proc/net/dev", O_RDONLY) = 11 close(11) = 0 open("/proc/net/softnet_stat", O_RDONLY) = 11 close(11) = 0 open("/proc/net/wireless", O_RDONLY) = 11 close(11) = 0 open("/proc/net/dev_mcast", O_RDONLY) = 11 close(11) = 0 open("/proc/net/psched", O_RDONLY) = 11 close(11) = 0 open("/proc/net/arp", O_RDONLY) = 11 close(11) = 0 open("/proc/net/rt_cache", O_RDONLY) = 11 close(11) = 0 open("/proc/net/rt_acct", O_RDONLY) = 11 close(11) = 0 open("/proc/net/igmp", O_RDONLY) = 11 close(11) = 0 open("/proc/net/mcfilter", O_RDONLY) = 11 close(11) = 0 open("/proc/net/ip_mr_vif", O_RDONLY) = 11 close(11) = 0 open("/proc/net/ip_mr_cache", O_RDONLY) = 11 close(11) = 0 open("/proc/net/raw", O_RDONLY) = 11 close(11) = 0 open("/proc/net/tcp", O_RDONLY) = 11 close(11) = 0 open("/proc/net/udp", O_RDONLY) = 11 close(11) = 0 open("/proc/net/route", O_RDONLY) = 11 close(11) = 0 open("/proc/net/netstat", O_RDONLY) = 11 close(11) = 0 open("/proc/net/snmp", O_RDONLY) = 11 close(11) = 0 open("/proc/net/sockstat", O_RDONLY) = 11 close(11) = 0 open("/proc/net/tr_rif", O_RDONLY) = 11 close(11) = 0 open("/proc/net/unix", O_RDONLY) = 11 close(11) = 0 open("/proc/net/packet", O_RDONLY) = 11 close(11) = 0 open("/proc/net/igmp6", O_RDONLY) = 11 close(11) = 0 open("/proc/net/mcfilter6", O_RDONLY) = 11 close(11) = 0 open("/proc/net/raw6", O_RDONLY) = 11 close(11) = 0 open("/proc/net/tcp6", O_RDONLY) = 11 close(11) = 0 open("/proc/net/udp6", O_RDONLY) = 11 close(11) = 0 open("/proc/net/snmp6", O_RDONLY) = 11 close(11) = 0 open("/proc/net/sockstat6", O_RDONLY) = 11 close(11) = 0 open("/proc/net/anycast6", O_RDONLY) = 11 close(11) = 0 open("/proc/net/if_inet6", O_RDONLY) = 11 close(11) = 0 open("/proc/net/ipv6_route", O_RDONLY) = 11 close(11) = 0 open("/proc/net/rt6_stats", O_RDONLY) = 11 close(11) = 0 open("/proc/net/ip6_flowlabel", O_RDONLY) = 11 close(11) = 0 open("/proc/ide/drivers", O_RDONLY) = 11 close(11) = 0 open("/proc/ide/ali", O_RDONLY) = 11 close(11) = 0 open("/proc/driver/rtc", O_RDONLY) = 11 close(11) = 0 open("/proc/driver/snd-page-alloc", O_RDONLY) = 11 close(11) = 0 open("/proc/asound/version", O_RDONLY) = 11 close(11) = 0 open("/proc/asound/devices", O_RDONLY) = 11 close(11) = 0 open("/proc/asound/cards", O_RDONLY) = 11 close(11) = 0 open("/proc/asound/modules", O_RDONLY) = 11 close(11) = 0 open("/proc/asound/timers", O_RDONLY) = 11 close(11) = 0 open("/proc/asound/pcm", O_RDONLY) = 11 close(11) = 0 open("/proc/asound/hwdep", O_RDONLY) = 11 close(11) = 0 open("/proc/acpi/info", O_RDONLY) = 11 close(11) = 0 open("/proc/acpi/dsdt", O_RDONLY) = -1 EACCES (Permission denied) open("/proc/acpi/fadt", O_RDONLY) = -1 EACCES (Permission denied) open("/proc/acpi/sleep", O_RDONLY) = 11 close(11) = 0 open("/proc/acpi/alarm", O_RDONLY) = 11 close(11) = 0 open("/proc/acpi/wakeup", O_RDONLY) = 11 close(11) = 0 open("/proc/tty/ldiscs", O_RDONLY) = 11 close(11) = 0 open("/proc/tty/drivers", O_RDONLY) = 11 close(11) = 0 open("/proc/sysvipc/sem", O_RDONLY) = 11 close(11) = 0 open("/proc/sysvipc/msg", O_RDONLY) = 11 close(11) = 0 open("/proc/sysvipc/shm", O_RDONLY) = 11 close(11) = 0 open("/proc/scsi/scsi", O_RDONLY) = 11 close(11) = 0 open("/proc/scsi/device_info", O_RDONLY) = 11 close(11) = 0 open("/proc/net/netlink", O_RDONLY) = 11 close(11) = 0 open("/proc/net/protocols", O_RDONLY) = 11 close(11) = 0 open("/proc/net/dev", O_RDONLY) = 11 close(11) = 0 open("/proc/net/softnet_stat", O_RDONLY) = 11 close(11) = 0 open("/proc/net/wireless", O_RDONLY) = 11 close(11) = 0 open("/proc/net/dev_mcast", O_RDONLY) = 11 close(11) = 0 open("/proc/net/psched", O_RDONLY) = 11 close(11) = 0 open("/proc/net/arp", O_RDONLY) = 11 close(11) = 0 open("/proc/net/rt_cache", O_RDONLY) = 11 close(11) = 0 open("/proc/net/rt_acct", O_RDONLY) = 11 close(11) = 0 open("/proc/net/igmp", O_RDONLY) = 11 close(11) = 0 open("/proc/net/mcfilter", O_RDONLY) = 11 close(11) = 0 open("/proc/net/ip_mr_vif", O_RDONLY) = 11 close(11) = 0 open("/proc/net/ip_mr_cache", O_RDONLY) = 11 close(11) = 0 open("/proc/net/raw", O_RDONLY) = 11 close(11) = 0 open("/proc/net/tcp", O_RDONLY) = 11 close(11) = 0 open("/proc/net/udp", O_RDONLY) = 11 close(11) = 0 open("/proc/net/route", O_RDONLY) = 11 close(11) = 0 open("/proc/net/netstat", O_RDONLY) = 11 close(11) = 0 open("/proc/net/snmp", O_RDONLY) = 11 close(11) = 0 open("/proc/net/sockstat", O_RDONLY) = 11 close(11) = 0 open("/proc/net/tr_rif", O_RDONLY) = 11 close(11) = 0 open("/proc/net/unix", O_RDONLY) = 11 close(11) = 0 open("/proc/net/packet", O_RDONLY) = 11 close(11) = 0 open("/proc/net/igmp6", O_RDONLY) = 11 close(11) = 0 open("/proc/net/mcfilter6", O_RDONLY) = 11 close(11) = 0 open("/proc/net/raw6", O_RDONLY) = 11 close(11) = 0 open("/proc/net/tcp6", O_RDONLY) = 11 close(11) = 0 open("/proc/net/udp6", O_RDONLY) = 11 close(11) = 0 open("/proc/net/snmp6", O_RDONLY) = 11 close(11) = 0 open("/proc/net/sockstat6", O_RDONLY) = 11 close(11) = 0 open("/proc/net/anycast6", O_RDONLY) = 11 close(11) = 0 open("/proc/net/if_inet6", O_RDONLY) = 11 close(11) = 0 open("/proc/net/ipv6_route", O_RDONLY) = 11 close(11) = 0 open("/proc/net/rt6_stats", O_RDONLY) = 11 close(11) = 0 open("/proc/net/ip6_flowlabel", O_RDONLY) = 11 close(11) = 0 open("/proc/ide/drivers", O_RDONLY) = 11 close(11) = 0 open("/proc/ide/ali", O_RDONLY) = 11 close(11) = 0 open("/proc/driver/rtc", O_RDONLY) = 11 close(11) = 0 open("/proc/driver/snd-page-alloc", O_RDONLY) = 11 close(11) = 0 open("/proc/asound/version", O_RDONLY) = 11 close(11) = 0 open("/proc/asound/devices", O_RDONLY) = 11 close(11) = 0 open("/proc/asound/cards", O_RDONLY) = 11 close(11) = 0 open("/proc/asound/modules", O_RDONLY) = 11 close(11) = 0 open("/proc/asound/timers", O_RDONLY) = 11 close(11) = 0 open("/proc/asound/pcm", O_RDONLY) = 11 close(11) = 0 open("/proc/asound/hwdep", O_RDONLY) = 11 close(11) = 0 open("/proc/acpi/info", O_RDONLY) = 11 close(11) = 0 open("/proc/acpi/dsdt", O_RDONLY) = -1 EACCES (Permission denied) open("/proc/acpi/fadt", O_RDONLY) = -1 EACCES (Permission denied) open("/proc/acpi/sleep", O_RDONLY) = 11 close(11) = 0 open("/proc/acpi/alarm", O_RDONLY) = 11 close(11) = 0 open("/proc/acpi/wakeup", O_RDONLY) = 11 close(11) = 0 open("/proc/tty/ldiscs", O_RDONLY) = 11 close(11) = 0 open("/proc/tty/drivers", O_RDONLY) = 11 close(11) = 0 open("/proc/sysvipc/sem", O_RDONLY) = 11 close(11) = 0 open("/proc/sysvipc/msg", O_RDONLY) = 11 close(11) = 0 open("/proc/sysvipc/shm", O_RDONLY) = 11 close(11) = 0 open("/proc/scsi/scsi", O_RDONLY) = 11 close(11) = 0 open("/proc/scsi/device_info", O_RDONLY) = 11 close(11) = 0 open("/proc/net/netlink", O_RDONLY) = 11 close(11) = 0 open("/proc/net/protocols", O_RDONLY) = 11 close(11) = 0 open("/proc/net/dev", O_RDONLY) = 11 close(11) = 0 open("/proc/net/softnet_stat", O_RDONLY) = 11 close(11) = 0 open("/proc/net/wireless", O_RDONLY) = 11 close(11) = 0 open("/proc/net/dev_mcast", O_RDONLY) = 11 close(11) = 0 open("/proc/net/psched", O_RDONLY) = 11 close(11) = 0 open("/proc/net/arp", O_RDONLY) = 11 close(11) = 0 open("/proc/net/rt_cache", O_RDONLY) = 11 close(11) = 0 open("/proc/net/rt_acct", O_RDONLY) = 11 close(11) = 0 open("/proc/net/igmp", O_RDONLY) = 11 close(11) = 0 open("/proc/net/mcfilter", O_RDONLY) = 11 close(11) = 0 open("/proc/net/ip_mr_vif", O_RDONLY) = 11 close(11) = 0 open("/proc/net/ip_mr_cache", O_RDONLY) = 11 close(11) = 0 open("/proc/net/raw", O_RDONLY) = 11 close(11) = 0 open("/proc/net/tcp", O_RDONLY) = 11 close(11) = 0 open("/proc/net/udp", O_RDONLY) = 11 close(11) = 0 open("/proc/net/route", O_RDONLY) = 11 close(11) = 0 open("/proc/net/netstat", O_RDONLY) = 11 close(11) = 0 open("/proc/net/snmp", O_RDONLY) = 11 close(11) = 0 open("/proc/net/sockstat", O_RDONLY) = 11 close(11) = 0 open("/proc/net/tr_rif", O_RDONLY) = 11 close(11) = 0 open("/proc/net/unix", O_RDONLY) = 11 close(11) = 0 open("/proc/net/packet", O_RDONLY) = 11 close(11) = 0 open("/proc/net/igmp6", O_RDONLY) = 11 close(11) = 0 open("/proc/net/mcfilter6", O_RDONLY) = 11 close(11) = 0 open("/proc/net/raw6", O_RDONLY) = 11 close(11) = 0 open("/proc/net/tcp6", O_RDONLY) = 11 close(11) = 0 open("/proc/net/udp6", O_RDONLY) = 11 close(11) = 0 open("/proc/net/snmp6", O_RDONLY) = 11 close(11) = 0 open("/proc/net/sockstat6", O_RDONLY) = 11 close(11) = 0 open("/proc/net/anycast6", O_RDONLY) = 11 close(11) = 0 open("/proc/net/if_inet6", O_RDONLY) = 11 close(11) = 0 open("/proc/net/ipv6_route", O_RDONLY) = 11 close(11) = 0 open("/proc/net/rt6_stats", O_RDONLY) = 11 close(11) = 0 Reproducible: Always Steps to Reproduce: 1. Turn "show hidden files" on. 2. Do something. 3. Turn it off again. Actual Results: Crashes & freezes as described above. Expected Results: A still usable instance of Thunar ;) My current OS is Ubuntu Edgy AMD64, it seems to include GTK 2.10.6 and Glib 2.12.4.
You can use gdb to get a backtrace of the crash. Does the problem also show with the shortcuts pane?
I checked it, it does only happen with the tree view indeed. I have to correct myself at one point, the crashes I described only occur with the newest svn version (23720) but I couldn't reproduce them with the one I compiled yesterday (23627). Furthermore I have tried to get a backtrace of the crash with gdb, but I'm not sure if this is the right thing since I didn't have any experience with debugging programs so far. This is what the command 'backtrace' in gdb printed out after Thunar crashed: #0 0x00002acc95ac747b in raise () from /lib/libc.so.6 #1 0x00002acc95ac8da0 in abort () from /lib/libc.so.6 #2 0x00002acc95816d70 in g_logv () from /usr/lib/libglib-2.0.so.0 #3 0x00002acc95816df3 in g_log () from /usr/lib/libglib-2.0.so.0 #4 0x00002acc94813a1b in gtk_tree_model_filter_convert_child_iter_to_iter () from /usr/lib/libgtk-x11-2.0.so.0 #5 0x00002acc9523248a in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0 #6 0x00002acc95241a08 in g_signal_chain_from_overridden () from /usr/lib/libgobject-2.0.so.0 #7 0x00002acc95242e43 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0 #8 0x00002acc95243013 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0 #9 0x000000000046dbd7 in thunar_tree_model_item_notify_loading ( item=<value optimized out>, pspec=<value optimized out>, folder=<value optimized out>) at thunar-tree-model.c:1500 #10 0x00002acc9523248a in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0 #11 0x00002acc95241a08 in g_signal_chain_from_overridden () from /usr/lib/libgobject-2.0.so.0 #12 0x00002acc95242e43 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0 #13 0x00002acc95243013 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0 #14 0x00002acc9523626f in g_object_class_override_property () from /usr/lib/libgobject-2.0.so.0 ---Type <return> to continue, or q <return> to quit--- #15 0x00002acc95236e56 in g_object_notify () from /usr/lib/libgobject-2.0.so.0 #16 0x00002acc9523248a in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0 #17 0x00002acc95241a08 in g_signal_chain_from_overridden () from /usr/lib/libgobject-2.0.so.0 #18 0x00002acc95242e43 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0 #19 0x00002acc95243013 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0 #20 0x00002acc9427c9fb in thunar_vfs_job_source_dispatch ( source=<value optimized out>, callback=<value optimized out>, user_data=<value optimized out>) at thunar-vfs-job.c:453 #21 0x00002acc9580ec84 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0 #22 0x00002acc95811acd in g_main_context_check () from /usr/lib/libglib-2.0.so.0 #23 0x00002acc95811dda in g_main_loop_run () from /usr/lib/libglib-2.0.so.0 #24 0x00002acc947435f3 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0 #25 0x000000000041dda0 in main (argc=1, argv=0x7fff1695f0f8) at main.c:239 (gdb) (gdb) bt #0 0x00002acc95ac747b in raise () from /lib/libc.so.6 #1 0x00002acc95ac8da0 in abort () from /lib/libc.so.6 #2 0x00002acc95816d70 in g_logv () from /usr/lib/libglib-2.0.so.0 #3 0x00002acc95816df3 in g_log () from /usr/lib/libglib-2.0.so.0 #4 0x00002acc94813a1b in gtk_tree_model_filter_convert_child_iter_to_iter () from /usr/lib/libgtk-x11-2.0.so.0 #5 0x00002acc9523248a in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0 #6 0x00002acc95241a08 in g_signal_chain_from_overridden () from /usr/lib/libgobject-2.0.so.0 #7 0x00002acc95242e43 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0 #8 0x00002acc95243013 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0 #9 0x000000000046dbd7 in thunar_tree_model_item_notify_loading ( item=<value optimized out>, pspec=<value optimized out>, folder=<value optimized out>) at thunar-tree-model.c:1500 #10 0x00002acc9523248a in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0 #11 0x00002acc95241a08 in g_signal_chain_from_overridden () from /usr/lib/libgobject-2.0.so.0 #12 0x00002acc95242e43 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0 #13 0x00002acc95243013 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0 #14 0x00002acc9523626f in g_object_class_override_property () from /usr/lib/libgobject-2.0.so.0 ---Type <return> to continue, or q <return> to quit--- #15 0x00002acc95236e56 in g_object_notify () from /usr/lib/libgobject-2.0.so.0 #16 0x00002acc9523248a in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0 #17 0x00002acc95241a08 in g_signal_chain_from_overridden () from /usr/lib/libgobject-2.0.so.0 #18 0x00002acc95242e43 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0 #19 0x00002acc95243013 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0 #20 0x00002acc9427c9fb in thunar_vfs_job_source_dispatch ( source=<value optimized out>, callback=<value optimized out>, user_data=<value optimized out>) at thunar-vfs-job.c:453 #21 0x00002acc9580ec84 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0 #22 0x00002acc95811acd in g_main_context_check () from /usr/lib/libglib-2.0.so.0 #23 0x00002acc95811dda in g_main_loop_run () from /usr/lib/libglib-2.0.so.0 #24 0x00002acc947435f3 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0 #25 0x000000000041dda0 in main (argc=1, argv=0x7fff1695f0f8) at main.c:239
Oh, I think I should explain in more detail, with "crashes" in my last comment I don't mean the infinite loop thing that I described first, this can be seen on all versions of Thunar so far.
Hm, please build Thunar with --enable-debug=full. And it would help if you could install a GTK+ library with debug symbols.
I already compiled the version I used for the backtrace with --enable-debug=full, did it seem as if this was not the case? Installing gtk-libs with debug symbol seems not to be a problem. But I want to ask, the last time I just started gdb, run Thunar from within and issued the backtrace command after is was crashed, was this the right thing or can I do something more within gdb? It also seemed as if no information about this annoying loop were recorded at my first attempt, is there any way I can do this?
Next attempt, with libgtk2.0-dbg and 'backtrace full': Gtk-CRITICAL **: gtk_tree_model_row_has_child_toggled: assertion `path != NULL' failed aborting... Program received signal SIGABRT, Aborted. [Switching to Thread 46969994102272 (LWP 5121)] 0x00002ab80bb8f47b in raise () from /lib/libc.so.6 (gdb) bt full #0 0x00002ab80bb8f47b in raise () from /lib/libc.so.6 No symbol table info available. #1 0x00002ab80bb90da0 in abort () from /lib/libc.so.6 No symbol table info available. #2 0x00002ab80b8ded70 in g_logv () from /usr/lib/libglib-2.0.so.0 No symbol table info available. #3 0x00002ab80b8dedf3 in g_log () from /usr/lib/libglib-2.0.so.0 No symbol table info available. #4 0x00002ab80a8dba1b in gtk_tree_model_filter_row_deleted ( c_model=<value optimized out>, c_path=<value optimized out>, data=0x7cc210) at gtktreemodelfilter.c:1834 iter = {stamp = -1001484217, user_data = 0xd2fda0, user_data2 = 0x1395400, user_data3 = 0x2ab80b8f3938} path = (GtkTreePath *) 0x0 filter = <value optimized out> path = (GtkTreePath *) 0x16fc7e0 iter = {stamp = -1001484217, user_data = 0xd478d0, user_data2 = 0xbe7600, user_data3 = 0x7fffa0895d30} elt = <value optimized out> parent = (FilterElt *) 0x1395400 level = (FilterLevel *) 0xd478d0 parent_level = (FilterLevel *) 0xd2fda0 emit_child_toggled = 1 ---Type <return> to continue, or q <return> to quit--- offset = <value optimized out> i = 10936 __PRETTY_FUNCTION__ = "gtk_tree_model_filter_row_deleted" #5 0x00002ab80b2fa48a in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0 No symbol table info available. #6 0x00002ab80b309a08 in g_signal_chain_from_overridden () from /usr/lib/libgobject-2.0.so.0 No symbol table info available. #7 0x00002ab80b30ae43 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0 No symbol table info available. #8 0x00002ab80b30b013 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0 No symbol table info available. #9 0x000000000046db87 in ?? () No symbol table info available. #10 0x00002ab80b2fa48a in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0 No symbol table info available. #11 0x00002ab80b309a08 in g_signal_chain_from_overridden () from /usr/lib/libgobject-2.0.so.0 No symbol table info available. #12 0x00002ab80b30ae43 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0 No symbol table info available. ---Type <return> to continue, or q <return> to quit--- #13 0x00002ab80b30b013 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0 No symbol table info available. #14 0x00002ab80b2fe26f in g_object_class_override_property () from /usr/lib/libgobject-2.0.so.0 No symbol table info available. #15 0x00002ab80b2fee56 in g_object_notify () from /usr/lib/libgobject-2.0.so.0 No symbol table info available. #16 0x00002ab80b2fa48a in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0 No symbol table info available. #17 0x00002ab80b309a08 in g_signal_chain_from_overridden () from /usr/lib/libgobject-2.0.so.0 No symbol table info available. #18 0x00002ab80b30ae43 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0 No symbol table info available. #19 0x00002ab80b30b013 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0 No symbol table info available. #20 0x00002ab80a3449fb in thunar_vfs_job_cancelled () from /usr/local/lib/libthunar-vfs-1.so.2 No symbol table info available. #21 0x00002ab80b8d6c84 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0 No symbol table info available. ---Type <return> to continue, or q <return> to quit--- #22 0x00002ab80b8d9acd in g_main_context_check () from /usr/lib/libglib-2.0.so.0 No symbol table info available. #23 0x00002ab80b8d9dda in g_main_loop_run () from /usr/lib/libglib-2.0.so.0 No symbol table info available. #24 0x00002ab80a80b5f3 in IA__gtk_main () at gtkmain.c:1024 tmp_list = (GList *) 0x5facf0 functions = (GList *) 0x0 init = (GtkInitFunction *) 0xa2bc30 loop = (GMainLoop *) 0x5c8490 #25 0x000000000041dd50 in ?? () No symbol table info available. #26 0x00002ab80bb7c0c4 in __libc_start_main () from /lib/libc.so.6 No symbol table info available. #27 0x000000000041b899 in ?? () No symbol table info available. #28 0x00007fffa0897058 in ?? () No symbol table info available. #29 0x0000000000000000 in ?? () No symbol table info available. (gdb)
Hm, still the thunar-vfs debug symbols missing. Do you have two different installations of Thunar?
No, of course only one ;-) Now I wiped out Thunar completely on my system, checked out a new svn version and compiled it with full debug support, but still the backtrace doesn't change significantly... Is the command ./autogen.sh --prefix=/usr/local --enable-debug=full correct to enable full debug support?
Yes. Can you post the new backtrace?
Of course (I swear that I compiled this version with full debug support and removed any older version of Thunar before installing this one): Gtk-CRITICAL **: gtk_tree_model_row_has_child_toggled: assertion `path != NULL' failed aborting... Program received signal SIGABRT, Aborted. [Switching to Thread 47907146360320 (LWP 5591)] 0x00002b923e59947b in raise () from /lib/libc.so.6 (gdb) bt full #0 0x00002b923e59947b in raise () from /lib/libc.so.6 No symbol table info available. #1 0x00002b923e59ada0 in abort () from /lib/libc.so.6 No symbol table info available. #2 0x00002b923e2e8d70 in g_logv () from /usr/lib/libglib-2.0.so.0 No symbol table info available. #3 0x00002b923e2e8df3 in g_log () from /usr/lib/libglib-2.0.so.0 No symbol table info available. #4 0x00002b923d2e5a1b in gtk_tree_model_filter_row_deleted ( c_model=<value optimized out>, c_path=<value optimized out>, data=0x7d1a20) at gtktreemodelfilter.c:1834 iter = {stamp = 2122912308, user_data = 0xc94f10, user_data2 = 0x1147e00, user_data3 = 0x2b923e2fd938} path = (GtkTreePath *) 0x0 filter = <value optimized out> path = (GtkTreePath *) 0xc5d300 iter = {stamp = 2122912308, user_data = 0xaffa20, user_data2 = 0xc94f40, user_data3 = 0x7fff6de8e310} elt = <value optimized out> parent = (FilterElt *) 0x1147e00 level = (FilterLevel *) 0xaffa20 parent_level = (FilterLevel *) 0xc94f10 emit_child_toggled = 1 ---Type <return> to continue, or q <return> to quit--- offset = <value optimized out> i = 11154 __PRETTY_FUNCTION__ = "gtk_tree_model_filter_row_deleted" #5 0x00002b923dd0448a in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0 No symbol table info available. #6 0x00002b923dd13a08 in g_signal_chain_from_overridden () from /usr/lib/libgobject-2.0.so.0 No symbol table info available. #7 0x00002b923dd14e43 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0 No symbol table info available. #8 0x00002b923dd15013 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0 No symbol table info available. #9 0x000000000046dbc7 in ?? () No symbol table info available. #10 0x00002b923dd0448a in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0 No symbol table info available. #11 0x00002b923dd13a08 in g_signal_chain_from_overridden () from /usr/lib/libgobject-2.0.so.0 No symbol table info available. #12 0x00002b923dd14e43 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0 No symbol table info available. ---Type <return> to continue, or q <return> to quit--- #13 0x00002b923dd15013 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0 No symbol table info available. #14 0x00002b923dd0826f in g_object_class_override_property () from /usr/lib/libgobject-2.0.so.0 No symbol table info available. #15 0x00002b923dd08e56 in g_object_notify () from /usr/lib/libgobject-2.0.so.0 No symbol table info available. #16 0x00002b923dd0448a in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0 No symbol table info available. #17 0x00002b923dd13a08 in g_signal_chain_from_overridden () from /usr/lib/libgobject-2.0.so.0 No symbol table info available. #18 0x00002b923dd14e43 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0 No symbol table info available. #19 0x00002b923dd15013 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0 No symbol table info available. #20 0x00002b923cd4e9fb in thunar_vfs_job_cancelled () from /usr/local/lib/libthunar-vfs-1.so.2 No symbol table info available. #21 0x00002b923e2e0c84 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0 No symbol table info available. ---Type <return> to continue, or q <return> to quit--- #22 0x00002b923e2e3acd in g_main_context_check () from /usr/lib/libglib-2.0.so.0 No symbol table info available. #23 0x00002b923e2e3dda in g_main_loop_run () from /usr/lib/libglib-2.0.so.0 No symbol table info available. #24 0x00002b923d2155f3 in IA__gtk_main () at gtkmain.c:1024 tmp_list = (GList *) 0x5fad00 functions = (GList *) 0x0 init = (GtkInitFunction *) 0x605380 loop = (GMainLoop *) 0x608c50 #25 0x000000000041dd50 in ?? () No symbol table info available. #26 0x00002b923e5860c4 in __libc_start_main () from /lib/libc.so.6 No symbol table info available. #27 0x000000000041b899 in ?? () No symbol table info available. #28 0x00007fff6de8f638 in ?? () No symbol table info available. #29 0x0000000000000000 in ?? () No symbol table info available. And another backtrace, where just the freeze happened (I had to kill Thunar): Program received signal SIGTERM, Terminated. [Switching to Thread 47474932487680 (LWP 5552)] 0x00002b2d9c51a0fb in __write_nocancel () from /lib/libpthread.so.0 (gdb) bt full #0 0x00002b2d9c51a0fb in __write_nocancel () from /lib/libpthread.so.0 No symbol table info available. #1 0x00002b2d9d6d218d in ?? () from /usr/lib/libgamin-1.so.0 No symbol table info available. #2 0x00002b2d9d6d2500 in ?? () from /usr/lib/libgamin-1.so.0 No symbol table info available. #3 0x00002b2d9d6d3bf8 in FAMCancelMonitor () from /usr/lib/libgamin-1.so.0 No symbol table info available. #4 0x00002b2d9ae12584 in thunar_vfs_monitor_remove () from /usr/local/lib/libthunar-vfs-1.so.2 No symbol table info available. #5 0x0000000000433e48 in ?? () No symbol table info available. #6 0x00002b2d9bdbf48a in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0 No symbol table info available. #7 0x00002b2d9bdcea08 in g_signal_chain_from_overridden () from /usr/lib/libgobject-2.0.so.0 No symbol table info available. #8 0x00002b2d9bdcfe43 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0 No symbol table info available. #9 0x00002b2d9bdd0013 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0 No symbol table info available. ---Type <return> to continue, or q <return> to quit--- #10 0x00002b2d9bdbf48a in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0 No symbol table info available. #11 0x00002b2d9bdcee58 in g_signal_chain_from_overridden () from /usr/lib/libgobject-2.0.so.0 No symbol table info available. #12 0x00002b2d9bdcfe43 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0 No symbol table info available. #13 0x00002b2d9bdd0013 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0 No symbol table info available. #14 0x0000000000432552 in ?? () No symbol table info available. #15 0x0000000000434779 in ?? () No symbol table info available. #16 0x00002b2d9ae00bf1 in thunar_vfs_monitor_event_get_type () from /usr/local/lib/libthunar-vfs-1.so.2 No symbol table info available. #17 0x00002b2d9bdbf48a in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0 No symbol table info available. #18 0x00002b2d9bdcea08 in g_signal_chain_from_overridden () from /usr/lib/libgobject-2.0.so.0 No symbol table info available. #19 0x00002b2d9bdcfc17 in g_signal_emit_valist () ---Type <return> to continue, or q <return> to quit--- from /usr/lib/libgobject-2.0.so.0 No symbol table info available. #20 0x00002b2d9ae09a6f in thunar_vfs_job_cancelled () from /usr/local/lib/libthunar-vfs-1.so.2 No symbol table info available. #21 0x00002b2d9c39bc84 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0 No symbol table info available. #22 0x00002b2d9c39eacd in g_main_context_check () from /usr/lib/libglib-2.0.so.0 No symbol table info available. #23 0x00002b2d9c39edda in g_main_loop_run () from /usr/lib/libglib-2.0.so.0 No symbol table info available. #24 0x00002b2d9b2d05f3 in IA__gtk_main () at gtkmain.c:1024 tmp_list = (GList *) 0x5fad00 functions = (GList *) 0x0 init = (GtkInitFunction *) 0x605380 loop = (GMainLoop *) 0x608c50 #25 0x000000000041dd50 in ?? () No symbol table info available. #26 0x00002b2d9c6410c4 in __libc_start_main () from /lib/libc.so.6 No symbol table info available. #27 0x000000000041b899 in ?? () ---Type <return> to continue, or q <return> to quit--- No symbol table info available. #28 0x00007fff0fdd4578 in ?? () No symbol table info available. #29 0x0000000000000000 in ?? () No symbol table info available.
I can reproduce the cpu problems and the Gtk critical message, but not the crash. And this only reproduces with Ubuntu Edgy, it works perfectly with older Dapper. cpu usage is 100% and more or less half is in %us and half in %wa (looking from top). Edgy has GTK+ 2.10.6 and Dapper has 2.8.20.
(In reply to comment #11) > I can reproduce the cpu problems and the Gtk critical message, but not the > crash. The crash is not a real crash, it's an abort from g_return_if_fail(path!=NULL) that happens when you compile with debug=full or run with --g-fatal-warnings. I tried to find out what's going on, but I'm afraid this is a bit too complicated for me. I think it may be a race condition between threads. There is a lot of activity, so I think there may be a signal triggering itself. My backtrace is slightly different, it seems: Gtk-CRITICAL **: gtk_tree_model_row_has_child_toggled: assertion `path != NULL' failed aborting... Program received signal SIGABRT, Aborted. [Switching to Thread -1220593968 (LWP 4470)] 0xb7f99410 in ?? () (gdb) bt ... #8 0xb793818d in g_return_if_fail_warning () from /usr/lib/libglib-2.0.so.0 #9 0xb7db8166 in IA__gtk_tree_model_row_has_child_toggled (tree_model=0xb7edaba4, path=0x0, iter=0xbfc878f4) at gtktreemodel.c:1512 #10 0xb7dbe476 in gtk_tree_model_filter_row_deleted (c_model=0x835f0c8, c_path=0x898df50, data=0x834cc00) at gtktreemodelfilter.c:1834 #11 0xb79f9a8b in g_cclosure_marshal_VOID__BOXED () from /usr/lib/libgobject-2.0.so.0 #12 0xb79ed07b in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0 #13 0xb79fd4e9 in signal_emit_unlocked_R () from /usr/lib/libgobject-2.0.so.0 #14 0xb79fe9a9 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0 #15 0xb79feb59 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0 #16 0xb7db8083 in IA__gtk_tree_model_row_deleted (tree_model=0x835f0c8, path=0x898df50) at gtktreemodel.c:1535 #17 0x080b56d6 in thunar_tree_model_item_notify_loading (item=0x8707430, pspec=0x83c7c00, folder=0x89cc9b0) at thunar-tree-model.c:1500 #18 0xb79f9b3b in g_cclosure_marshal_VOID__PARAM () from /usr/lib/libgobject-2.0.so.0 #19 0xb79ed07b in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0 The thunar_tree_model_item_notify_loading() function specifically tests for the path not being NULL, so I guess it must be another thread that removes it while this callback is still running. Benny, can I do more to help you find the problem?
Thunar doesn't use threaded GTK+, so only the main thread will ever call GTK+ functions. I'll see to this when I'm back at home (hopefully).
Now I was able to test the current version of Thunar and I couldn't reproduce that crash anymore so far. But this sort of endless loop remains, it is simple to reproduce on my system. I just have to enable "show hidden files" on a fresh started instance of Thunar, then (if I didn't do the same a short time before) heavy disc usage appears for a while, when I disable "show hidden files" now again, then Thunar begins to eat a lot of cpu power until I quit it (together with heavy disc usage again for a while).
Today I did some further testing and I think I maybe have found a way to reproduce the problem beyond my own system. If I - download one of the Xubuntu Daily Live CDs at http://cdimage.ubuntu.com/xubuntu/daily-live/ - boot my PC with it - start Thunar and switch to tree view - switch "show hidden files" on and off again then Thunar starts to continously consume CPU time (around 6 - 10 % on my system). I do not need to mount any of my disk partitions to make that happen. I hope this helps to triage this bug.
(In reply to comment #0) > Gtk-CRITICAL **: gtk_tree_model_row_has_child_toggled: assertion `path != NULL' > failed Seems to be an old bug report, but... I'm getting the exact same error in Thunar 0.9.0 and Linux 2.6.24.4 x86_64: (Thunar:15780): Gtk-CRITICAL **: gtk_tree_model_row_has_child_toggled: assertion `path != NULL' failed Thunar freezes after turning "show hidden files" on and off a couple times -- CPU running about 50%-80%. Killing Thunar via "killall -9 Thunar" is only way to close window -- CPU returns to ~0%. As mentioned in this thread, turning off "Tree" view seems to resolve the problem completely. -nate
i get this too, x86-32 though not x86-64 disabling folder view or using shortcuts view 'fixes' it. i like tree view =( am i blind?! where is the "subscribe to this bug" button =s
This bug is alive and well even now. It's been annoying me ever since I started using XUbuntu so I'm finally getting off my lazy rear and reporting it here. It is VERY reproducible as Jan described in comment #15. I'll take it a bit further and show you how to freeze Thunar: 1) Download the latest XUbuntu live cd (I used the Intrepid Ibex beta) 2) Start from the Live CD 3) Open Thunar by clicking Places->Ubuntu 4) Enable the Tree view (View->Side Pane->Tree) 5) Select "Show hidden files" from the view menu 6) Double click all the way into: .gconf/apps/gnome-screensaver 7) Disable "Show hidden files" 8) Click .gconf in the tree view 9) Try to click apps At this point Thunar will be frozen. If not continue on from step #9 by clicking different subfolders of .gconf and then folders in the tree. You don't really need to use a Live CD to reproduce it - but at least that removes any ambiguity about the software environment. I'm certain this bug has been causing many users grief for the last few years. I've noticed it on every machine that I've installed XUbuntu on (XFCE + Ubuntu = Awesome!). Count my vote for getting this one fixed.
(In reply to comment #17) > i get this too, x86-32 though not x86-64 > disabling folder view or using shortcuts view 'fixes' it. > > i like tree view =( > > am i blind?! where is the "subscribe to this bug" button =s this still exists in intrepid.
This bug is annoying me since ages, too. Sometimes Thunar freezes, when I enter a hidden directory in the address bar and start browsing this directory.
I can confirm the freeze with beta1 on gentoo. Actually, it's not completely frozen, after a while the main thread is entered again, and the window is updated. I will attached a couple of seconds of strace -p.
Created attachment 1972 strace of thunar being almost frozen
That looks a bit like bug #4051 for the tree view and fam part.
Eventually thunar just got stuck on the following system call: write(6, " \0\1\0\307$\22\0\26\0/proc/10795/root/lib32"..., 32
Created attachment 1973 Attempt to fix this bug Bug is caused the visible filter function, it traverses the treeview, but when it reaches a leave the leaf is loaded by the _node_ref function in the model, so more and more folders are loaded in the tree. Resulting in monitoring the /proc folder which locks thunar and abuses the harddrive. Attached patch should fix the bug, hopefully it compiles, because i backported it from a checkout that was full of debug crap ;-).
(In reply to comment #25) > Attached patch should fix the bug, hopefully it compiles, because i backported > it from a checkout that was full of debug crap ;-). It seems to be ok. I'll watch it a bit before reporting final decision, but it looks good. (but I wasn't experiencing the crash)
Benny can you take a quick look a the patch? The fix is a bit ugly, but I couldn't think of an other way to prevent node_ref from loading the dummies when gtk does a foreach() in the treeview.
In fact it seems this is the tooltip icon (which is opened even when not displayed, because the tooltip comes a bit later). The launcher icon is the 16px one which doesn't appear here (I have a size 20 panel). Btw do you know how the choice is made between svg and png? Who does it? panel, libxfcegui4, gtk? Cheers,
GtkIconTheme does it.
The patch looks good as a quick fix. Given that GtkTreeModelFilter is the cause of the problem here, I'd suggest to drop it and integrate the filter into the tree model class to really solve this issue.
(In reply to comment #30) > The patch looks good as a quick fix. Given that GtkTreeModelFilter is the cause > of the problem here, I'd suggest to drop it and integrate the filter into the > tree model class to really solve this issue. Well I guess I can take a look in that. Another possibility is a custom version of gtk_tree_model_foreach that does not return the dummy nodes.
Hey, great to see this bug's gonna be annullified!! I've been recently reporting it here, too (but encountered it since Feisty, on different hardware): https://bugs.launchpad.net/thunar/+bug/293839 Can you guess, when a patch will be availible via Xubuntu's official update-repositories, maybe? Regards, peroo
The patch has been committed to SVN: Author: jannis Date: 2008-11-15 11:02:53 +0000 (Sat, 15 Nov 2008) New Revision: 28809 Modified: thunar/trunk/ChangeLog thunar/trunk/thunar/thunar-tree-model.c thunar/trunk/thunar/thunar-tree-model.h thunar/trunk/thunar/thunar-tree-view.c Log: * thunar/thunar-tree-model.{c,h}, thunar/thunar-tree-view.c: Fix freeze in the tree view pane when the visibility of hidden files is toggled. Kudos to Nick Schermer for the patch. This fixes bug #2502.
Keep the bug open since there might be better ways to fix this.