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 642039 - creating multiple directories corrupts the list view
creating multiple directories corrupts the list view
Status: RESOLVED DUPLICATE of bug 643328
Product: nautilus
Classification: Core
Component: Views: List View
2.91.x
Other Linux
: Normal critical
: ---
Assigned To: Nautilus Maintainers
Nautilus Maintainers
Depends on:
Blocks:
 
 
Reported: 2011-02-10 15:35 UTC by Stefano Teso
Modified: 2011-02-25 19:36 UTC
See Also:
GNOME target: 3.0
GNOME version: ---


Attachments
backtrace (3.35 KB, text/plain)
2011-02-10 15:35 UTC, Stefano Teso
Details

Description Stefano Teso 2011-02-10 15:35:11 UTC
Created attachment 180598 [details]
backtrace

This is a regression; nautilus 2.30.1 (debian unstable) works fine.

It's fairly easy to deterministically reproduce:

(0) fom a directory $DIR, do

(1) create a new directory with CTRL+SHIFT+N -> the directory is displayed in the tree view, the directory item count is updated correctly as well

(2) create another directory with CTRL+SHIFT+N -> the directory is _not_ displayed, the directory item count is only updated when changing row with the up/down arrows;

(2+) Pressing CTRL+SHIFT+N again has the same result as step (2), i.e., the list view is not updated. But there's more:

(3) attempting to reload the view with CTRL+R freezes the list view.

(4) switching to the icon view or compact view and back to the list view, correctly updates the list view, however

(5) trying to remove the newly created directories results in:

(nautilus:20162): GLib-CRITICAL **: g_utf8_collate: assertion `str1 != NULL' failed

For 10 deleted directories (CTRL+SHIFT+N 10 times in rapid succession), I obtain 15 repeats of the GLib-CRITICAL message (Yes, I counted them ;-) ). Putting a bt on g_return_if_fail_warning, which is triggered by g_utf8_collate, I get the attached trace.

(6) if, instead of step (4), I just restart nautilus, trying to remove the created directories results in the same assertion. So the problem is persistent upon restarts. (My nautilus build is not attached to the session manager.)

(7) Deleting the directories from the icon view works fine.

[FWIW, I have used the patch from https://bugzilla.gnome.org/show_bug.cgi?id=330644 to observe what happens to the directories' item counts. However, the bug is present in master.]
Comment 1 Fabio Durán Verdugo 2011-02-11 03:52:13 UTC
paste here the attach backtrace

Breakpoint 2, g_return_if_fail_warning (log_domain=0x7ffff1a16f6d "GLib", pretty_function=0x7ffff1a16fb3 "g_utf8_collate", expression=0x7ffff1a16f60 "str1 != NULL") at gmessages.c:586
586	  g_log (log_domain,
(gdb) bt
  • #0 g_return_if_fail_warning
    at gmessages.c line 586
  • #1 g_utf8_collate
    at gunicollate.c line 110
  • #2 compare_by_type
    at nautilus-file.c line 2984
  • #3 nautilus_file_compare_for_sort
    at nautilus-file.c line 3128
  • #4 nautilus_file_compare_for_sort_by_attribute_q
    at nautilus-file.c line 3190
  • #5 nautilus_list_model_compare_func
    at nautilus-list-model.c line 678
  • #6 nautilus_list_view_compare_files
    at nautilus-list-view.c line 2848
  • #7 compare_files_cover
    at nautilus-view.c line 3281
  • #8 g_list_sort_merge
    at glist.c line 1055
  • #9 g_list_sort_real
    at glist.c line 1101
  • #10 g_list_sort_real
    at glist.c line 1101
  • #11 g_list_sort_real
    at glist.c line 1101
  • #12 g_list_sort_real
    at glist.c line 1101
  • #13 g_list_sort_with_data
    at glist.c line 1169
  • #14 sort_files
    at nautilus-view.c line 3288
  • #15 process_new_files
    at nautilus-view.c line 3374
  • #16 display_pending_files
    at nautilus-view.c line 3444
  • #17 display_pending_callback
    at nautilus-view.c line 3545
  • #18 g_timeout_dispatch
    at gmain.c line 3877
  • #19 g_main_dispatch
    at gmain.c line 2440
  • #20 g_main_context_dispatch
    at gmain.c line 3013
  • #21 g_main_context_iterate
    at gmain.c line 3091
  • #22 g_main_loop_run
    at gmain.c line 3299
  • #23 gtk_main
    at gtkmain.c line 1349
  • #24 gtk_application_run_mainloop
    at gtkapplication.c line 85
  • #25 g_application_run
    at gapplication.c line 1241
  • #26 main
    at nautilus-main.c line 102

Comment 2 Cosimo Cecchi 2011-02-25 19:36:18 UTC
This is actually because of GTK+ bug 643328.

I committed a workaround to nautilus master.

*** This bug has been marked as a duplicate of bug 643328 ***
Comment 3 Cosimo Cecchi 2011-02-25 19:36:54 UTC
Oh, and the g_utf8_collate() assertion was a completely separate thing, which I fixed in master too.