After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 354397 - crash in filebrowser plugin when going to parent dir
crash in filebrowser plugin when going to parent dir
Status: RESOLVED FIXED
Product: gedit-plugins
Classification: Other
Component: General
git master
Other All
: Urgent blocker
: ---
Assigned To: jessevdk@gmail.com
Gedit maintainers
: 355579 357142 358418 377889 399317 428515 430832 431174 447433 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2006-09-05 07:51 UTC by Paolo Borelli
Modified: 2019-03-23 20:33 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Fixes the issue (2.05 KB, patch)
2006-09-05 12:50 UTC, jessevdk@gmail.com
none Details | Review
Fix nr 2 (1.09 KB, patch)
2006-09-05 15:09 UTC, jessevdk@gmail.com
none Details | Review

Description Paolo Borelli 2006-09-05 07:51:02 UTC
gedit crashed on me when clicking on the arrow-up toolbar button of the filetree.

Since I have no time to look into it now I am attaching the trace. And yes, the symbols are missing, but still you can see where it is scrashing more or less...
Comment 1 Paolo Borelli 2006-09-05 07:51:59 UTC
stribution: Ubuntu 6.10 (edgy)
Gnome Release: 2.15.92 2006-08-22 (Ubuntu)
BugBuddy Version: 2.15.92

Memory status: size: 82235392 vsize: 0 resident: 82235392 share: 0 rss: 33030144 rss_rlim: 0
CPU usage: start_time: 1157403359 rtime: 0 utime: 2389 stime: 0 cutime:2328 cstime: 0 timeout: 61 it_real_value: 0 frequency: 0

Backtrace was generated from '/usr/bin/gedit'

(no debugging symbols found)
Using host libthread_db library "/lib/tls/i686/cmov/libthread_db.so.1".
(no debugging symbols found)
(no debugging symbols found)
[Thread debugging using libthread_db enabled]
[New Thread -1226700400 (LWP 4694)]
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
0xffffe410 in __kernel_vsyscall ()

Thread 1 (Thread -1226700400 (LWP 4694))

  • #0 __kernel_vsyscall
  • #1 __waitpid_nocancel
    from /lib/tls/i686/cmov/libpthread.so.0
  • #2 gnome_gtk_module_info_get
    from /usr/lib/libgnomeui-2.so.0
  • #3 <signal handler called>
  • #4 gedit_file_browser_store_set_filter_mode
    from /usr/lib/gedit-2/plugins/libfilebrowser.so
  • #5 gedit_file_browser_store_set_virtual_root_up
    from /usr/lib/gedit-2/plugins/libfilebrowser.so
  • #6 gedit_file_browser_widget_register_type
    from /usr/lib/gedit-2/plugins/libfilebrowser.so
  • #7 g_cclosure_marshal_VOID__VOID
    from /usr/lib/libgobject-2.0.so.0
  • #8 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #9 g_signal_chain_from_overridden
    from /usr/lib/libgobject-2.0.so.0
  • #10 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #11 g_signal_emit
    from /usr/lib/libgobject-2.0.so.0
  • #12 _gtk_action_emit_activate
    from /usr/lib/libgtk-x11-2.0.so.0
  • #13 gtk_action_activate
    from /usr/lib/libgtk-x11-2.0.so.0
  • #14 g_cclosure_marshal_VOID__VOID
    from /usr/lib/libgobject-2.0.so.0
  • #15 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #16 g_signal_chain_from_overridden
    from /usr/lib/libgobject-2.0.so.0
  • #17 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #18 g_signal_emit_by_name
    from /usr/lib/libgobject-2.0.so.0
  • #19 gtk_tool_button_new_from_stock
    from /usr/lib/libgtk-x11-2.0.so.0
  • #20 g_cclosure_marshal_VOID__VOID
    from /usr/lib/libgobject-2.0.so.0
  • #21 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #22 g_signal_chain_from_overridden
    from /usr/lib/libgobject-2.0.so.0
  • #23 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #24 g_signal_emit
    from /usr/lib/libgobject-2.0.so.0
  • #25 gtk_button_clicked
    from /usr/lib/libgtk-x11-2.0.so.0
  • #26 gtk_button_set_alignment
    from /usr/lib/libgtk-x11-2.0.so.0
  • #27 g_cclosure_marshal_VOID__VOID
    from /usr/lib/libgobject-2.0.so.0
  • #28 g_value_set_boxed
    from /usr/lib/libgobject-2.0.so.0
  • #29 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #30 g_signal_chain_from_overridden
    from /usr/lib/libgobject-2.0.so.0
  • #31 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #32 g_signal_emit
    from /usr/lib/libgobject-2.0.so.0
  • #33 gtk_button_released
    from /usr/lib/libgtk-x11-2.0.so.0
  • #34 gtk_button_released
    from /usr/lib/libgtk-x11-2.0.so.0
  • #35 _gtk_marshal_BOOLEAN__BOXED
    from /usr/lib/libgtk-x11-2.0.so.0
  • #36 g_value_set_boxed
    from /usr/lib/libgobject-2.0.so.0
  • #37 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #38 g_signal_chain_from_overridden
    from /usr/lib/libgobject-2.0.so.0
  • #39 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #40 g_signal_emit
    from /usr/lib/libgobject-2.0.so.0
  • #41 gtk_widget_get_default_style
    from /usr/lib/libgtk-x11-2.0.so.0
  • #42 gtk_propagate_event
    from /usr/lib/libgtk-x11-2.0.so.0
  • #43 gtk_main_do_event
    from /usr/lib/libgtk-x11-2.0.so.0
  • #44 _gdk_events_init
    from /usr/lib/libgdk-x11-2.0.so.0
  • #45 g_main_context_dispatch
    from /usr/lib/libglib-2.0.so.0
  • #46 g_main_context_check
    from /usr/lib/libglib-2.0.so.0
  • #47 g_main_loop_run
    from /usr/lib/libglib-2.0.so.0
  • #48 gtk_main
    from /usr/lib/libgtk-x11-2.0.so.0
  • #49 main
  • #0 __kernel_vsyscall

Comment 2 Paolo Maggi 2006-09-05 08:16:53 UTC
Ops... this is very easy to reproduce.
We need to fix it and releae 2.16.1 ASAP.

To reproduce it:
- lauched gedit
- select the filebrowser panel
- press the arrow-up toolbar button

Here the stacktrace with debugging symbols (only the relevant part):

  • #4 set_virtual_root_from_node
    at gedit-file-browser-store.c line 2000
  • #5 gedit_file_browser_store_set_virtual_root_up
    at gedit-file-browser-store.c line 2342
  • #6 on_action_directory_up
    at gedit-file-browser-widget.c line 2352

Comment 3 jessevdk@gmail.com 2006-09-05 08:33:12 UTC
I can't reproduce this. Paolo M: what directory are you currently viewing when this happens. It's really weird that this shows up now, I've been testing filebrowser extensively the last couple of weeks and this has never showed up.
Comment 4 Paolo Maggi 2006-09-05 08:53:48 UTC
I cannot reproduce it anymore.
BTW, it was a local directory but I don't remember the details.
Comment 5 Paolo Maggi 2006-09-05 08:59:50 UTC
It could be it the root directory it was a directory I removed after I closed gedit the last time. Could it be possible?

BTW, I have found another crash

1. Create /tmp/pippo directory
2. Start gedit and set /tmp/pippo directory as root
3. rm -rf /tmp/pippo
The following warnings are printed:

** (gedit:10511): CRITICAL **: gedit_file_browser_store_get_value: assertion `iter->user_data != NULL' failed
sys:1: Warning: g_object_set_property: assertion `G_IS_VALUE (value)' failed
sys:1: Warning: g_value_unset: assertion `G_IS_VALUE (value)' failed

** (gedit:10511): CRITICAL **: gedit_file_browser_store_get_value: assertion `iter->user_data != NULL' failed

[snip]

4. Move to the parent folder -> Crash.

  • #3 <signal handler called>
  • #4 model_clear
    at gedit-file-browser-store.c line 1357
  • #5 gedit_file_browser_store_set_virtual_root_up
    at gedit-file-browser-store.c line 2341
  • #6 on_action_directory_up
    at gedit-file-browser-widget.c line 2352
  • #7 IA__g_cclosure_marshal_VOID__VOID
    at gmarshal.c line 77

Comment 6 jessevdk@gmail.com 2006-09-05 12:50:18 UTC
Created attachment 72246 [details] [review]
Fixes the issue

The issue here is that when a directory is removed which is currently the virtual root the node of the virtual root is removed but the virtual root itself will still be referenced to that node. I've fixed this with the patch. I'll commit it after the freeze if it's okay.
Comment 7 Paolo Maggi 2006-09-05 12:56:45 UTC
Does the patch solve both the crashes described in this report?

Note that hard code freeze is ended with the 2.16 release.
Comment 8 jessevdk@gmail.com 2006-09-05 13:02:59 UTC
I couldn't reprocude the first crash described so I can't be certain. 2.16 release is tomorrow right?
Comment 9 jessevdk@gmail.com 2006-09-05 13:37:20 UTC
I committed the patch but leaving the bug open for now because I'm not sure the issue Paolo B has is really solved now. Paolo B, can you check if the problem still exists for you?
Comment 10 Paolo Borelli 2006-09-05 13:48:26 UTC
well, as I said I have no clue how to reproduce... just open gedit and go up a few times, but it doesn't happen always...
Comment 11 Paolo Maggi 2006-09-05 14:38:34 UTC
I can reproduce the crash reported by pbor also with the Jesse's patch.


Comment 12 jessevdk@gmail.com 2006-09-05 15:09:28 UTC
Created attachment 72255 [details] [review]
Fix nr 2

The first problem wasn't fixed by the proposed patch (I didn't think it was, but one can hope). I think I found out why the original noticed crash happened and a fix is attached. I'm no longer able to produce the crash so I think this solves the problem, but could you guys have a go?
Comment 13 Paolo Maggi 2006-09-05 15:24:21 UTC
<paolo> ok, I now know how to reproduce it
<paolo> go in a deeply nested dir (at least 3-4 level)
<paolo> restart gedit
<paolo> go to parent

BTW, the patch attached to comment #12 seems to solve the problem for me.
Comment 14 Paolo Borelli 2006-09-05 15:29:50 UTC
well, I can't repro reliably with that method... but if the patch works, all the better. I can't test it now.

btw, the indentation of the bit of code the patch is touching is a bit crazy... is it due to running indent on the code without checking the results?


Should this two crashes warrant a quick 2.16.1 release?
Comment 15 Paolo Maggi 2006-09-05 16:11:58 UTC
Actually you have to go to parent for a few times.

I'd say to wait a couple of days or a week in the case we discover other important bugs and then we can make a new release.
Comment 16 jessevdk@gmail.com 2006-09-05 16:42:36 UTC
You can reproduce it by expanding one dir and then go to the parent dir.

- Dir1
  - File 1
  - File 2

The indentation is indeed odd in some places, and yes that's due to indent. I'll fix this when I have the time (using indent was a better alternative than doing everything by hand. There are just some quircks here and there now)
Comment 17 jessevdk@gmail.com 2006-09-06 12:21:41 UTC
I've committed the patch to CVS and I'm closing the bug as I am fairly confident that this solves the issue. Please reopen if you find the problem not being solved.
Comment 18 jessevdk@gmail.com 2006-09-12 13:51:56 UTC
*** Bug 355579 has been marked as a duplicate of this bug. ***
Comment 19 Karsten Bräckelmann 2006-09-22 03:09:59 UTC
*** Bug 357142 has been marked as a duplicate of this bug. ***
Comment 20 Karsten Bräckelmann 2006-09-30 02:55:25 UTC
*** Bug 358418 has been marked as a duplicate of this bug. ***
Comment 21 André Klapper 2006-11-22 00:21:41 UTC
*** Bug 377889 has been marked as a duplicate of this bug. ***
Comment 22 palfrey 2007-01-22 13:44:54 UTC
*** Bug 399317 has been marked as a duplicate of this bug. ***
Comment 23 Pedro Villavicencio 2007-04-12 02:44:50 UTC
*** Bug 428515 has been marked as a duplicate of this bug. ***
Comment 24 Pedro Villavicencio 2007-04-18 00:00:39 UTC
*** Bug 430832 has been marked as a duplicate of this bug. ***
Comment 25 Pedro Villavicencio 2007-04-19 00:11:28 UTC
*** Bug 431174 has been marked as a duplicate of this bug. ***
Comment 26 Pedro Villavicencio 2007-06-15 00:26:25 UTC
*** Bug 447433 has been marked as a duplicate of this bug. ***