linuxmint/nemo

When closing one window, nemo crashes

DeadMozay opened this issue · 7 comments

Distribution

openSUSE

Package version

6.2.1

Frequency

Quite often

Bug description

If you open several nemo windows, after performing some actions, when closing one window nemo crashes
I was unable to understand the exact procedure to reproduce this bug 100%
But we managed to identify a more or less reliable script, although only on openSUSE using the osc utility, this is a cli utility for interacting with the open build service https://build.opensuse.org, used to build rpm/deb packages
But this problem occurs in other cases as well.
The method with osc will be described below

Steps to reproduce

  1. Open the nemo window, in my case I open the folder with the package project where there is an archive with source codes, spec and all other files needed to build into the package
  2. In the context menu of the right mouse button, select open in terminal
  3. Open a few more nemo windows
  4. Start building the bp package from a previously opened terminal in step 2, osc build, it is advisable that the package takes at least 2-3 minutes to assemble.
  5. During the process of assembling the package, you can still open a couple of windows
  6. Upon completion of the assembly, close the window from which the terminal was launched; crashes also occur when closing any window, but according to my observations, a little less often.
    This method also does not provide a 100% guarantee of reproducing the bug, but the chance is very high

Expected behavior

There should be no crashes

Additional information

I tried to collect at least some information in the debugger, but for some reason nemo freezes in it even before launching

You need to report the issue to suse as your nemo version is unsupported.
Perhaps they can guide you to debug the issue.

You need to report the issue to suse as your nemo version is unsupported. Perhaps they can guide you to debug the issue.

Sorry, I specified the version incorrectly
nemo 6.2.1

I haven't been able to reproduce this yet. Can you try launching each instance of nemo using your terminal until you can reproduce it? That should hopefully produce a stack trace that you can copy and paste.

I can't reproduce either using fedora build tools, fedpkg, mock and copr.
Have you checked coredumpctl to see if if captured the crash.
Does your builder have enough ram, check dmesg for any oom messages.

Have you checked coredumpctl to see if if captured the crash.

Thank you, I forgot that there is a coredumpctl utility
coredump.log

We have downstream report in NixOS/nixpkgs#212740 mentioning a similar issue and also crashes at gtk_widget_destroy,

#0  0x00007f90f374613a in gtk_widget_destroy () from /nix/store/kv7ih63pn9hn8p00wwi1mvg400ahsrc2-gtk+3-3.24.36/lib/libgtk-3.so.0
[Current thread is 1 (Thread 0x7f90f1809a80 (LWP 303638))]
(gdb) bt full
#0  0x00007f90f374613a in gtk_widget_destroy () from /nix/store/kv7ih63pn9hn8p00wwi1mvg400ahsrc2-gtk+3-3.24.36/lib/libgtk-3.so.0
No symbol table info available.
#1  0x000000000050639d in destroy (object=0x1a12150) at ../libnemo-private/nemo-icon-container.c:2741
        container = 0x1a12150
#2  0x00007f90f2f594e8 in g_closure_invoke (closure=closure@entry=0x12c1710, return_value=return_value@entry=0x0, n_param_values=1, param_values=param_values@entry=0x7ffd397d3510, 
    invocation_hint=invocation_hint@entry=0x7ffd397d3490) at ../gobject/gclosure.c:832
        marshal = 0x7f90f2f57d70 <g_type_class_meta_marshal>
        marshal_data = 0x98
        in_marshal = 1
        real_closure = 0x12c16f0
        __func__ = "g_closure_invoke"

They workaround the issue with

diff --git a/libnemo-private/nemo-icon-container.c b/libnemo-private/nemo-icon-container.c
index 5ea40e6..bf5dd6e 100644
--- a/libnemo-private/nemo-icon-container.c
+++ b/libnemo-private/nemo-icon-container.c
@@ -2738,7 +2738,7 @@ destroy (GtkWidget *object)
 
 	/* destroy interactive search dialog */
 	if (container->details->search_window) {
-		gtk_widget_destroy (container->details->search_window);
+		//gtk_widget_destroy (container->details->search_window);
 		container->details->search_window = NULL;
 		container->details->search_entry = NULL;
 	}

Is glib built with glib_checks=false there? (https://github.com/GNOME/glib/blob/main/docs/macros.md)

I get a warning if I spawn the search box in an icon view (not list view) - just type a few letters while the main view is focused. When I close the window I get an assertion error but no crash, though I'm assuming this is the same issue.