[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#988924: nemo: Nemo crashes if select "Create Folder" in Favorites



Dear Maintainer,
I could reproduce the issue, but mostly just on the first run
after a reboot of my test VM.

When the issue appears the context menu opens for the favorites,
but the entry to create a new folder is wrongly enabled.
Clicking in that state leads to the error message:

  Error while copying to "Favorites".
  The destination is read-only.
  Cancel

Hitting the Cancel button leads to this message at the terminal:

  (nemo:1242): GLib-CRITICAL **: 13:58:57.717: g_error_free: assertion 'error != NULL' failed
  **
  ERROR:../libnemo-private/nemo-file.c:699:nemo_file_get_internal: assertion failed: (location != NULL)
  Bail out! ERROR:../libnemo-private/nemo-file.c:699:nemo_file_get_internal: assertion failed: (location != NULL)
  Aborted


I was able to record one run with rr.
There I was able to follow the calls to gtk_action_set_sensitive
for the action NEMO_ACTION_NEW_FOLDER, but unfortunately I
saw just calls to disable it short before.
Therefore its still unclear why the context menu
shows the entries as enabled in the first place.

Kind regards,
Bernhard


(rr) bt
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1  0x00007f7ea92fe537 in __GI_abort () at abort.c:79
#2  0x00007f7ea99cbdcc in g_assertion_message (domain=<optimized out>, file=0x5635be1e5d90 "../libnemo-private/nemo-file.c", line=<optimized out>, func=<optimized out>, message=<optimized out>) at ../../../glib/gtestutils.c:2937
#3  0x00007f7ea9a292fb in g_assertion_message_expr (domain=domain@entry=0x0, file=file@entry=0x5635be1e5d90 "../libnemo-private/nemo-file.c", line=line@entry=699, func=func@entry=0x5635be1e7540 <__func__.103> "nemo_file_get_internal", expr=expr@entry=0x5635be1dab47 "location != NULL") at ../../../glib/gtestutils.c:2963
#4  0x00005635be176ce1 in nemo_file_get_internal (location=<optimized out>, create=create@entry=1) at ../libnemo-private/nemo-file.c:699
#5  0x00005635be17770a in nemo_file_get (location=<optimized out>) at ../libnemo-private/nemo-file.c:751
#6  0x00005635be11e26f in new_folder_done (new_folder=<optimized out>, success=<optimized out>, data=0x5635bee1c7e0) at ../src/nemo-tree-sidebar.c:913
#7  0x00005635be1630e7 in create_job_done (user_data=0x5635beb13cd0) at ../libnemo-private/nemo-file-operations.c:6290
#8  0x00007f7ea9bb8e4f in mainloop_proxy_func (data=0x7f7e8802b070) at ../../../gio/gioscheduler.c:203
#9  0x00007f7ea9a00d6f in g_main_dispatch (context=0x5635be862db0) at ../../../glib/gmain.c:3325
#10 g_main_context_dispatch (context=0x5635be862db0) at ../../../glib/gmain.c:4043
#11 0x00007f7ea9a01118 in g_main_context_iterate (context=context@entry=0x5635be862db0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:4119
#12 0x00007f7ea9a011cf in g_main_context_iteration (context=context@entry=0x5635be862db0, may_block=may_block@entry=1) at ../../../glib/gmain.c:4184
#13 0x00007f7ea9c19545 in g_application_run (application=0x5635be860130, argc=1834504324, argc@entry=1, argv=argv@entry=0x7ffc6d5851f8) at ../../../gio/gapplication.c:2559
#14 0x00005635be0bd192 in main (argc=1, argv=0x7ffc6d5851f8) at ../src/nemo-main.c:104
# single-use Bullseye/testing amd64 qemu VM 2021-06-05

echo "set enable-bracketed-paste off" >> /etc/inputrc; bash

apt update

apt dist-upgrade
apt install systemd-coredump gdb mc cinnamon \
        nemo-dbgsym libglib2.0-0-dbgsym libgtk-3-0-dbgsym

apt build-dep nemo

reboot




mkdir /home/benutzer/source/nemo/orig -p
cd    /home/benutzer/source/nemo/orig
apt source nemo
cd

mkdir /home/benutzer/source/libgtk-3-0/orig -p
cd    /home/benutzer/source/libgtk-3-0/orig
apt source libgtk-3-0
cd



Fehler beim Kopieren nach >>Favoriten<<.
Das Ziel ist schreibgeschützt.
Abbrechen

Error while copying to "Favorites".
The destination is read-only.
Cancel








# coredumpctl list
TIME                            PID   UID   GID SIG COREFILE  EXE
Sat 2021-06-05 13:10:11 CEST   1099  1000  1000   6 present   /usr/bin/nemo

# coredumpctl gdb 1099
           PID: 1099 (nemo)
           UID: 1000 (benutzer)
           GID: 1000 (benutzer)
        Signal: 6 (ABRT)
     Timestamp: Sat 2021-06-05 13:10:11 CEST (5min ago)
  Command Line: nemo /home/benutzer
    Executable: /usr/bin/nemo
 Control Group: /user.slice/user-1000.slice/session-2.scope
          Unit: session-2.scope
         Slice: user-1000.slice
       Session: 2
     Owner UID: 1000 (benutzer)
       Boot ID: fa231400d36b4b479aa5f6395cdd6522
    Machine ID: 33f18f39d2a9438eb75b0ed52848afcd
      Hostname: debian
       Storage: /var/lib/systemd/coredump/core.nemo.1000.fa231400d36b4b479aa5f6395cdd6522.1099.1622891411000000.zst
       Message: Process 1099 (nemo) of user 1000 dumped core.
                
                Stack trace of thread 1099:
                #0  0x00007f839fb7ece1 raise (libc.so.6 + 0x3bce1)
                #1  0x00007f839fb68537 abort (libc.so.6 + 0x25537)
                #2  0x00007f83a0233dcc n/a (libglib-2.0.so.0 + 0x1cdcc)
                #3  0x00007f83a02912fb g_assertion_message_expr (libglib-2.0.so.0 + 0x7a2fb)
                #4  0x0000560f5f189ce1 n/a (nemo + 0xf0ce1)
                #5  0x0000560f5f13126f n/a (nemo + 0x9826f)
                #6  0x0000560f5f1760e7 n/a (nemo + 0xdd0e7)
                #7  0x00007f83a0420e4f n/a (libgio-2.0.so.0 + 0x7ee4f)
                #8  0x00007f83a0268d6f g_main_context_dispatch (libglib-2.0.so.0 + 0x51d6f)
                #9  0x00007f83a0269118 n/a (libglib-2.0.so.0 + 0x52118)
                #10 0x00007f83a02691cf g_main_context_iteration (libglib-2.0.so.0 + 0x521cf)
                #11 0x00007f83a0481545 g_application_run (libgio-2.0.so.0 + 0xdf545)
                #12 0x0000560f5f0d0192 n/a (nemo + 0x37192)
                #13 0x00007f839fb69d0a __libc_start_main (libc.so.6 + 0x26d0a)
                #14 0x0000560f5f0d01da n/a (nemo + 0x371da)
                
...
Core was generated by `nemo /home/benutzer'.
Program terminated with signal SIGABRT, Aborted.
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
50      ../sysdeps/unix/sysv/linux/raise.c: Datei oder Verzeichnis nicht gefunden.
[Current thread is 1 (Thread 0x7f839c81ea80 (LWP 1099))]
(gdb) set width 0
(gdb) set pagination off
(gdb) bt
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1  0x00007f839fb68537 in __GI_abort () at abort.c:79
#2  0x00007f83a0233dcc in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f83a02912fb in g_assertion_message_expr () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x0000560f5f189ce1 in ?? ()
#5  0x0000560f5f13126f in ?? ()
#6  0x0000560f5f1760e7 in ?? ()
#7  0x00007f83a0420e4f in ?? () from /lib/x86_64-linux-gnu/libgio-2.0.so.0
#8  0x00007f83a0268d6f in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#9  0x00007f83a0269118 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#10 0x00007f83a02691cf in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#11 0x00007f83a0481545 in g_application_run () from /lib/x86_64-linux-gnu/libgio-2.0.so.0
#12 0x0000560f5f0d0192 in ?? ()
#13 0x00007f839fb69d0a in __libc_start_main (main=0x560f5f0d00c0, argc=2, argv=0x7ffd8e965e38, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffd8e965e28) at ../csu/libc-start.c:308
#14 0x0000560f5f0d01da in ?? ()
(gdb)

(gdb) bt
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1  0x00007f839fb68537 in __GI_abort () at abort.c:79
#2  0x00007f83a0233dcc in g_assertion_message (domain=<optimized out>, file=0x560f5f1f8d90 "../libnemo-private/nemo-file.c", line=<optimized out>, func=<optimized out>, message=<optimized out>) at ../../../glib/gtestutils.c:2937
#3  0x00007f83a02912fb in g_assertion_message_expr (domain=domain@entry=0x0, file=file@entry=0x560f5f1f8d90 "../libnemo-private/nemo-file.c", line=line@entry=699, func=func@entry=0x560f5f1fa540 <__func__.103> "nemo_file_get_internal", expr=expr@entry=0x560f5f1edb47 "location != NULL") at ../../../glib/gtestutils.c:2963
#4  0x0000560f5f189ce1 in nemo_file_get_internal (location=<optimized out>, create=create@entry=1) at ../libnemo-private/nemo-file.c:699
#5  0x0000560f5f18a70a in nemo_file_get (location=<optimized out>) at ../libnemo-private/nemo-file.c:751
#6  0x0000560f5f13126f in new_folder_done (new_folder=<optimized out>, success=<optimized out>, data=0x560f6123c7e0) at ../src/nemo-tree-sidebar.c:913
#7  0x0000560f5f1760e7 in create_job_done (user_data=0x560f60f37200) at ../libnemo-private/nemo-file-operations.c:6290
#8  0x00007f83a0420e4f in mainloop_proxy_func (data=0x7f83780022d0) at ../../../gio/gioscheduler.c:203
#9  0x00007f83a0268d6f in g_main_dispatch (context=0x560f60c6ddb0) at ../../../glib/gmain.c:3325
#10 g_main_context_dispatch (context=0x560f60c6ddb0) at ../../../glib/gmain.c:4043
#11 0x00007f83a0269118 in g_main_context_iterate (context=context@entry=0x560f60c6ddb0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:4119
#12 0x00007f83a02691cf in g_main_context_iteration (context=context@entry=0x560f60c6ddb0, may_block=may_block@entry=1) at ../../../glib/gmain.c:4184
#13 0x00007f83a0481545 in g_application_run (application=0x560f60c6b130, argc=-1902748476, argc@entry=2, argv=argv@entry=0x7ffd8e965e38) at ../../../gio/gapplication.c:2559
#14 0x0000560f5f0d0192 in main (argc=2, argv=0x7ffd8e965e38) at ../src/nemo-main.c:104










# echo 1 > /proc/sys/kernel/perf_event_paranoid
$ export DISPLAY=:0
$ export LANG=C
$ rr record nemo
rr: Saving execution to trace directory `/home/benutzer/.local/share/rr/nemo-15'.

** (nemo:1242): WARNING **: 13:57:53.520: Current gtk theme is not known to have nemo support (Adwaita) - checking...

** (nemo:1242): WARNING **: 13:57:53.603: The theme appears to have no nemo support.  Adding some...

(nemo:1242): GLib-CRITICAL **: 13:58:57.717: g_error_free: assertion 'error != NULL' failed
**
ERROR:../libnemo-private/nemo-file.c:699:nemo_file_get_internal: assertion failed: (location != NULL)
Bail out! ERROR:../libnemo-private/nemo-file.c:699:nemo_file_get_internal: assertion failed: (location != NULL)
Aborted





$ rr replay nemo-15

set width 0
set pagination off
directory /home/benutzer/source/nemo/orig/nemo-4.8.6/debian
directory /home/benutzer/source/libgtk-3-0/orig/gtk+3.0-3.24.24/gtk
directory /home/benutzer/source/libgtk-3-0/orig/gtk+3.0-3.24.24/gtk/deprecated
cont
reverse-finish


(rr) bt
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1  0x00007f7ea92fe537 in __GI_abort () at abort.c:79
#2  0x00007f7ea99cbdcc in g_assertion_message (domain=<optimized out>, file=0x5635be1e5d90 "../libnemo-private/nemo-file.c", line=<optimized out>, func=<optimized out>, message=<optimized out>) at ../../../glib/gtestutils.c:2937
#3  0x00007f7ea9a292fb in g_assertion_message_expr (domain=domain@entry=0x0, file=file@entry=0x5635be1e5d90 "../libnemo-private/nemo-file.c", line=line@entry=699, func=func@entry=0x5635be1e7540 <__func__.103> "nemo_file_get_internal", expr=expr@entry=0x5635be1dab47 "location != NULL") at ../../../glib/gtestutils.c:2963
#4  0x00005635be176ce1 in nemo_file_get_internal (location=<optimized out>, create=create@entry=1) at ../libnemo-private/nemo-file.c:699
#5  0x00005635be17770a in nemo_file_get (location=<optimized out>) at ../libnemo-private/nemo-file.c:751
#6  0x00005635be11e26f in new_folder_done (new_folder=<optimized out>, success=<optimized out>, data=0x5635bee1c7e0) at ../src/nemo-tree-sidebar.c:913
#7  0x00005635be1630e7 in create_job_done (user_data=0x5635beb13cd0) at ../libnemo-private/nemo-file-operations.c:6290
#8  0x00007f7ea9bb8e4f in mainloop_proxy_func (data=0x7f7e8802b070) at ../../../gio/gioscheduler.c:203
#9  0x00007f7ea9a00d6f in g_main_dispatch (context=0x5635be862db0) at ../../../glib/gmain.c:3325
#10 g_main_context_dispatch (context=0x5635be862db0) at ../../../glib/gmain.c:4043
#11 0x00007f7ea9a01118 in g_main_context_iterate (context=context@entry=0x5635be862db0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:4119
#12 0x00007f7ea9a011cf in g_main_context_iteration (context=context@entry=0x5635be862db0, may_block=may_block@entry=1) at ../../../glib/gmain.c:4184
#13 0x00007f7ea9c19545 in g_application_run (application=0x5635be860130, argc=1834504324, argc@entry=1, argv=argv@entry=0x7ffc6d5851f8) at ../../../gio/gapplication.c:2559
#14 0x00005635be0bd192 in main (argc=1, argv=0x7ffc6d5851f8) at ../src/nemo-main.c:104

...
(rr) reverse-finish
Run back to call of #0  0x00005635be177705 in nemo_file_get (location=0x0) at ../libnemo-private/nemo-file.c:751
0x00005635be11e26a in new_folder_done (new_folder=0x0, success=0, data=0x5635bee1c7e0) at ../src/nemo-tree-sidebar.c:913
913             list = g_list_prepend (NULL, nemo_file_get (new_folder));
(rr) print new_folder
$3 = (GFile *) 0x0

(rr) reverse-finish
Run back to call of #0  0x00005635be11e26a in new_folder_done (new_folder=0x0, success=0, data=0x5635bee1c7e0) at ../src/nemo-tree-sidebar.c:913
0x00005635be1630e5 in create_job_done (user_data=0x5635beb13cd0) at ../libnemo-private/nemo-file-operations.c:6290
6290                    job->done_callback (job->created_file,
(rr) print job->created_file
$4 = (GFile *) 0x0

(rr) print &job->created_file
$5 = (GFile **) 0x5635beb13d68
(rr) watch *0x5635beb13d68
Hardware watchpoint 1: *0x5635beb13d68


(rr) reverse-cont
Continuing.

Thread 1 hit Hardware watchpoint 1: *0x5635beb13d68

Old value = 0
New value = 32
__memset_avx2_unaligned_erms () at ../sysdeps/x86_64/multiarch/memset-vec-unaligned-erms.S:202
202     ../sysdeps/x86_64/multiarch/memset-vec-unaligned-erms.S: No such file or directory.
(rr) bt
#0  __memset_avx2_unaligned_erms () at ../sysdeps/x86_64/multiarch/memset-vec-unaligned-erms.S:202
#1  0x00007f7ea9a06da1 in g_malloc0 (n_bytes=176) at ../../../glib/gmem.c:136
#2  0x00005635be16319f in init_common (job_size=<optimized out>, parent_window=0x5635be8867f0) at ../libnemo-private/nemo-file-operations.c:1130
#3  0x00005635be16dc9c in nemo_file_operations_new_folder (parent_view=<optimized out>, target_point=target_point@entry=0x0, parent_dir=parent_dir@entry=0x5635bf296e70 "favorites:///", done_callback=done_callback@entry=0x5635be11e260 <new_folder_done>, done_callback_data=done_callback_data@entry=0x5635bee1c7e0) at ../libnemo-private/nemo-file-operations.c:6607
#4  0x00005635be11e24b in fm_tree_view_create_folder_cb (menu_item=<optimized out>, view=<optimized out>) at ../src/nemo-tree-sidebar.c:927
#5  0x00007f7ea9af20a2 in g_closure_invoke (closure=0x5635beda8640, return_value=return_value@entry=0x0, n_param_values=1, param_values=param_values@entry=0x7ffc6d584820, invocation_hint=invocation_hint@entry=0x7ffc6d5847a0) at ../../../gobject/gclosure.c:810
#6  0x00007f7ea9b04413 in signal_emit_unlocked_R (node=node@entry=0x5635be8bf480, detail=detail@entry=0, instance=instance@entry=0x5635bf44cb60, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7ffc6d584820) at ../../../gobject/gsignal.c:3739
#7  0x00007f7ea9b0a6cf in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7ffc6d5849a0) at ../../../gobject/gsignal.c:3495
#8  0x00007f7ea9b0ac3f in g_signal_emit (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>) at ../../../gobject/gsignal.c:3551
#9  0x00007f7eaa39d354 in gtk_widget_activate () from /lib/x86_64-linux-gnu/libgtk-3.so.0
#10 0x00007f7eaa263456 in gtk_menu_shell_activate_item () from /lib/x86_64-linux-gnu/libgtk-3.so.0
#11 0x00007f7eaa263733 in ?? () from /lib/x86_64-linux-gnu/libgtk-3.so.0
#12 0x00007f7eaa3f09f8 in ?? () from /lib/x86_64-linux-gnu/libgtk-3.so.0
#13 0x00007f7ea9af22ee in _g_closure_invoke_va (closure=closure@entry=0x5635be8b08f0, return_value=return_value@entry=0x7ffc6d584ca0, instance=instance@entry=0x5635bef3c580, args=args@entry=0x7ffc6d584d70, n_params=1, param_types=0x5635be8b0920) at ../../../gobject/gclosure.c:873
#14 0x00007f7ea9b09df9 in g_signal_emit_valist (instance=0x5635bef3c580, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7ffc6d584d70) at ../../../gobject/gsignal.c:3404
#15 0x00007f7ea9b0ac3f in g_signal_emit (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>) at ../../../gobject/gsignal.c:3551
#16 0x00007f7eaa39ad04 in ?? () from /lib/x86_64-linux-gnu/libgtk-3.so.0
#17 0x00007f7eaa24de00 in ?? () from /lib/x86_64-linux-gnu/libgtk-3.so.0
#18 0x00007f7eaa24fa63 in gtk_main_do_event () from /lib/x86_64-linux-gnu/libgtk-3.so.0
#19 0x00007f7ea9f38785 in ?? () from /lib/x86_64-linux-gnu/libgdk-3.so.0
#20 0x00007f7ea9f6c2e2 in ?? () from /lib/x86_64-linux-gnu/libgdk-3.so.0
#21 0x00007f7ea9a00e6b in g_main_dispatch (context=0x5635be862db0) at ../../../glib/gmain.c:3325
#22 g_main_context_dispatch (context=0x5635be862db0) at ../../../glib/gmain.c:4043
#23 0x00007f7ea9a01118 in g_main_context_iterate (context=context@entry=0x5635be862db0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:4119
#24 0x00007f7ea9a011cf in g_main_context_iteration (context=context@entry=0x5635be862db0, may_block=may_block@entry=1) at ../../../glib/gmain.c:4184
#25 0x00007f7ea9c19545 in g_application_run (application=0x5635be860130, argc=1834504324, argc@entry=1, argv=argv@entry=0x7ffc6d5851f8) at ../../../gio/gapplication.c:2559
#26 0x00005635be0bd192 in main (argc=1, argv=0x7ffc6d5851f8) at ../src/nemo-main.c:104


(rr) finish
Run till exit from #0  0x00005635be16319f in init_common (job_size=<optimized out>, parent_window=0x5635be8867f0) at ../libnemo-private/nemo-file-operations.c:1130
0x00005635be16dc9c in nemo_file_operations_new_folder (parent_view=<optimized out>, target_point=target_point@entry=0x0, parent_dir=parent_dir@entry=0x5635bf296e70 "favorites:///", done_callback=done_callback@entry=0x5635be11e260 <new_folder_done>, done_callback_data=done_callback_data@entry=0x5635bee1c7e0) at ../libnemo-private/nemo-file-operations.c:6610
6610            job->dest_dir = g_file_new_for_uri (parent_dir);
Value returned is $7 = (void *) 0x5635beb13cd0
(rr) print parent_dir
$8 = 0x5635bf296e70 "favorites:///"
(rr) next
6609            job->done_callback_data = done_callback_data;
(rr) print job->dest_dir
$9 = (GFile *) 0x0






Reply to: