elementary / appcenter

Pay-what-you-can app store for elementary OS
https://elementary.io
GNU General Public License v3.0
542 stars 103 forks source link

AppCenters crashes when looking at installed application details (in VirtualBox) #915

Closed RubenSibon closed 4 years ago

RubenSibon commented 6 years ago

Issue

The AppCenter in the latest elementary OS 5.0 Juno (Dutch language pack) constantly crashes when I look at the details of installed apps. It especially happens (but not always) when I click the back button to go back to "Installed".

I am seriously considering to switch to elementary OS, but instability issues like these do give some doubts.

VirtualBox

I have installed elementary in VirtualBox. I am not sure if the issues I am seeing can be related to virtualization, but it is worth mentioning. Look at the included screenshot below for the specs of the container:

afbeelding

Snaptastic (snapd)

Another potential troublemaker could be that I have installed snap support and the Snaptastic connector.

Logs

I would like to post some logs, but I do not know where to find them. If you know where they are please answer my question about finding error logs on the elementary OS StackExchange or leave a comment here.

peteruithoven commented 6 years ago

Could you also check this in English? Just to exclude that it's a translation issue?

RubenSibon commented 6 years ago

I switched to English (US). It had to install missing parts of language support (hadn't done that yet apparently). I rebooted the OS, but I still get the same issue.

See screenshot for clarity:

afbeelding

It seems that the crash especially happens when AppCenter/apt is still checking for updates in the background, but I haven't verified that yet.

RubenSibon commented 6 years ago

I verified that the crash also happens if I wait a while for the updater to do its thing.

When I find some time I will reinstall Juno in a new VM and see if I still get the same issues.

RubenSibon commented 6 years ago

I installed Juno again in a new VirtualBox with similar specs (4 GiB RAM, 32+ GiB storage).

Differences with the first container:

During the install of Juno I chose the following:

There were no complications during install.

After installing I clicked through the installed Apps in the AppCenter. I saw the issue two times in AppCenter. The second crash coincided with a notification for software updates. One of the updates was for the AppCenter itself (increased stability). I installed those updates.

I tried clicking around in the AppCenter again and this time the crashes happen more often, but seemingly randomly.

So, in conclusion, I see the problems quite consistently with Juno inside VirtualBox. The specs of the container do not seem to matter much. The problem seems to get worse after installing the updates for the AppCenter.

RubenSibon commented 6 years ago

Here are the last few lines from the syslogs just after the crash. It seems NXDOMAIN error/DNS violations stuff is clue:

nov 12 19:38:38 VirtualBox PackageKit[1402]: search-name transaction /206_edbddcab from uid 1000 finished with success after 1550ms
nov 12 19:38:39 VirtualBox PackageKit[1402]: search-name transaction /207_dccceebb from uid 1000 finished with success after 1418ms
nov 12 19:38:41 VirtualBox PackageKit[1402]: get-details transaction /208_ceabcabe from uid 1000 finished with success after 1499ms
nov 12 19:38:42 VirtualBox PackageKit[1402]: get-details transaction /209_daaadbbb from uid 1000 finished with success after 1148ms
nov 12 19:38:42 VirtualBox PackageKit[1402]: uid 1000 is trying to obtain org.freedesktop.packagekit.system-sources-refresh auth (only_trusted:0)
nov 12 19:38:42 VirtualBox PackageKit[1402]: uid 1000 obtained auth for org.freedesktop.packagekit.system-sources-refresh
nov 12 19:38:43 VirtualBox PackageKit[1402]: get-details transaction /210_babcaecc from uid 1000 finished with success after 1130ms
nov 12 19:38:44 VirtualBox PackageKit[1402]: get-details transaction /211_cebdcbde from uid 1000 finished with success after 1072ms
nov 12 19:38:45 VirtualBox systemd-resolved[6607]: Server returned error NXDOMAIN, mitigating potential DNS violation DVE-2018-0001, retrying transaction with reduced feature level UDP.
nov 12 19:38:45 VirtualBox systemd-resolved[6607]: Server returned error NXDOMAIN, mitigating potential DNS violation DVE-2018-0001, retrying transaction with reduced feature level UDP.
nov 12 19:38:45 VirtualBox systemd-resolved[6607]: Server returned error NXDOMAIN, mitigating potential DNS violation DVE-2018-0001, retrying transaction with reduced feature level UDP.
nov 12 19:38:45 VirtualBox systemd-resolved[6607]: Server returned error NXDOMAIN, mitigating potential DNS violation DVE-2018-0001, retrying transaction with reduced feature level UDP.
nov 12 19:38:47 VirtualBox PackageKit[1402]: refresh-cache transaction /212_ceddbccc from uid 1000 finished with success after 2849ms
nov 12 19:38:52 VirtualBox PackageKit[1402]: search-name transaction /213_acdccbda from uid 1000 finished with success after 4808ms
nov 12 19:38:53 VirtualBox PackageKit[1402]: get-updates transaction /214_eaeaceba from uid 1000 finished with success after 1533ms
nov 12 19:38:55 VirtualBox PackageKit[1402]: get-details transaction /215_cddccdec from uid 1000 finished with success after 1105ms
nov 12 19:41:12 VirtualBox io.elementary.t[30732]: gtk_box_gadget_distribute: assertion 'size >= 0' failed in GtkNotebook
davidmhewitt commented 6 years ago

Thanks for continuing to add detail to this issue report. I haven't yet been able to reproduce this issue, and I suspect the DNS violations in your log above are red herrings.

If possible, could you see if it's possible to reproduce the issue while running AppCenter from the terminal. To do so, kill the running instance and then start a new one with debug messages as follows:

killall io.elementary.appcenter
G_MESSAGES_DEBUG=all io.elementary.appcenter

If it is possible to reproduce it there, could you post any debug output that looks relevant?

If you have any further time/willingness to continue debugging, could you install gdb and do the following:

killall appcenter
gdb io.elementary.appcenter
RubenSibon commented 6 years ago

Thanks for getting back on this. Here are the last lines of the debug output just before AppCenter crashes:

** (process:2218): DEBUG: 15:16:29.437: Replaced 'system/os/package/wireshark.desktop' with data of higher priority.
** (process:2218): DEBUG: 15:16:29.437: Replaced 'system/os/package/wireshark-gtk.desktop' with data of higher priority.
** (process:2218): DEBUG: 15:16:29.437: Replaced 'system/os/package/chromium-browser.desktop' with data of higher priority.
** (process:2218): DEBUG: 15:16:29.437: Replaced 'system/os/package/org.videolan.vlc' with data of higher priority.
** (process:2218): DEBUG: 15:16:29.437: Replaced 'system/os/package/virtualbox.desktop' with data of higher priority.
** (process:2218): DEBUG: 15:16:29.437: Replaced 'system/os/package/cockpit.desktop' with data of higher priority.
** (process:2218): DEBUG: 15:16:29.444: system/os/package/org.kde.latte.shell extends system/os/package/latte-dock, but system/os/package/latte-dock was not found.
** (process:2218): DEBUG: 15:16:29.447: system/os/package/com.github.leoiannacone.goopg extends system/os/package/google-chrome.desktop, but system/os/package/google-chrome.desktop was not found.
** (process:2218): DEBUG: 15:16:29.454: system/os/package/nemo-gtkhash extends system/os/package/org.Nemo.desktop, but system/os/package/org.Nemo.desktop was not found.
** (process:2218): DEBUG: 15:16:29.458: system/os/package/caja-gtkhash extends system/os/package/caja.desktop, but system/os/package/caja.desktop was not found.
** (process:2218): DEBUG: 15:16:29.460: system/os/package/nautilus-sendto extends system/os/package/nautilus.desktop, but system/os/package/nautilus.desktop was not found.
** (process:2218): DEBUG: 15:16:29.461: system/os/package/zathura-pdf-poppler.desktop extends system/os/package/zathura.desktop, but system/os/package/zathura.desktop was not found.
** (process:2218): DEBUG: 15:16:29.461: system/os/package/evolution-rss extends system/os/package/evolution.desktop, but system/os/package/evolution.desktop was not found.

I couldn't find anything that seemed relevant.

RubenSibon commented 6 years ago

And here is the output of the stacktrace after reproducing the crash:

(gdb) bt
#0  0x00007ffff5008bf9 in __GI___poll (fds=0x555557914700, nfds=4, timeout=2739) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007ffff75f2539 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007ffff75f264c in g_main_context_iteration () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007ffff6488e3d in g_application_run () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
#4  0x000055555556772e in ?? ()
#5  0x00007ffff4f15b97 in __libc_start_main (main=0x555555565c30, argc=1, argv=0x7fffffffde08, init=<optimized out>, fini=<optimized out>, 
    rtld_fini=<optimized out>, stack_end=0x7fffffffddf8) at ../csu/libc-start.c:310
#6  0x0000555555565c6a in ?? ()

The crash always happens after having opened a few app details and clicking back quickly.

davidmhewitt commented 6 years ago

There isn't anything in either of those that indicates why it is crashing.

Could you try gdb again, and this time instead of bt, do thread apply all bt.

davidmhewitt commented 6 years ago

Also, could you run pkmon in the terminal while AppCenter is hung to see if PackageKit looks like it's performing any operations in the background?

RubenSibon commented 6 years ago

Also, could you run pkmon in the terminal while AppCenter is hung to see if PackageKit looks like it's performing any operations in the background?

I ran pkmon before starting the AppCenter. Transactions continued long after it crashed.

Could you try gdb again, and this time instead of bt, do thread apply all bt.

Here is the output:

(gdb) thread apply all bt

Thread 13 (Thread 0x7fffcd558700 (LWP 2410)):
#0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1  0x00007ffff763829a in g_cond_wait_until () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007ffff75c54f1 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007ffff761aaa4 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007ffff761a105 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007ffff52ec6db in start_thread (arg=0x7fffcd558700) at pthread_create.c:463
#6  0x00007ffff501588f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 10 (Thread 0x7fffcfd7e700 (LWP 2351)):
#0  0x00007ffff5008bf9 in __GI___poll (fds=0x7fffc80131a0, nfds=1, timeout=-1)
    at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007ffff75f2539 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007ffff75f28d2 in g_main_loop_run () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007ffff5f456a2 in pk_task_search_names_sync ()
   from /usr/lib/x86_64-linux-gnu/libpackagekit-glib2.so.18
#4  0x0000555555572bce in ?? ()
#5  0x00005555555782cf in ?? ()
#6  0x000055555557013f in ?? ()
#7  0x00007ffff761a105 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#8  0x00007ffff52ec6db in start_thread (arg=0x7fffcfd7e700) at pthread_create.c:463
#9  0x00007ffff501588f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 9 (Thread 0x7fffcdf5f700 (LWP 2315)):
#0  0x00007ffff5008bf9 in __GI___poll (fds=0x7fffb8008300, nfds=1, timeout=-1)
    at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007ffff75f2539 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007ffff75f28d2 in g_main_loop_run () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007ffff5f45c98 in pk_task_get_details_sync ()
   from /usr/lib/x86_64-linux-gnu/libpackagekit-glib2.so.18
---Type <return> to continue, or q <return> to quit---
davidmhewitt commented 6 years ago

Thanks for continuing to try and help with this.

AppCenter doesn't fully crash and close itself does it? Does it just get stuck and hang?

If so, does waiting for all of the PackageKit operations to complete allow AppCenter to recover, or is stuck in the hung state forever?

Finally, there is more output available from the gdb command. At the bottom you will see ---Type <return> to continue, or q <return> to quit---.

Could you do the same again and continue hitting enter when that prompt appears until you get back to the (gdb) command line. You should then be able to copy the full output.

RubenSibon commented 6 years ago

AppCenter doesn't fully crash and close itself does it? Does it just get stuck and hang?

It gets stuck and hangs. Need to kill the process.

brucemontegani commented 6 years ago

I am having the same problem when running under Parallels Desktop 14 on MacOS 10.13.6. So the common theme so far is that this may be a problem with running Elementary under a virtual machine

brucemontegani commented 6 years ago

It seems to be random. I started the appcenter in terminal via io.elementary.appcenter. The first time I had the problem under this scenario the message was: (io.elementary.appcenter:14870): Gtk-WARNING **: 10:17:18.219: Could not load a pixbuf from icon theme. This may indicate that pixbuf loaders or the mime database could not be found. However when a cancelled and restarted the appcenter again I was able to get the image for the application to display. I then tried a few more application details and it worked. But then I tried another one and it hanged. It looks like it is an issue with bringing up the applications detail image.

brucemontegani commented 6 years ago

Well this is weird. I ran the appcenter with debug on and now the problem has gone away. I have not been able to reproduce the hanging. After cancelling the appcenter. I started it normally from the appcenter icon and it seems to work now. I do believe it has something to do with the loading of the application screenshot. I think it is possibly looking for it and can't find it and keeps looking or something else.

RubenSibon commented 6 years ago

Well this is weird. I ran the appcenter with debug on and now the problem has gone away. I have not been able to reproduce the hanging. After cancelling the appcenter. I started it normally from the appcenter icon and it seems to work now. I do believe it has something to do with the loading of the application screenshot. I think it is possibly looking for it and can't find it and keeps looking or something else.

That seems plausible, but it also quite random.

@davidmhewitt here is the full output from gdb:

GNU gdb (Ubuntu 8.1-0ubuntu3) 8.1.0.20180409-git
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from io.elementary.appcenter...(no debugging symbols found)...done.
(gdb) run
Starting program: /usr/bin/io.elementary.appcenter 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7fffe6c8b700 (LWP 2373)]
[New Thread 0x7fffe648a700 (LWP 2374)]
[New Thread 0x7fffe5c89700 (LWP 2375)]
[New Thread 0x7fffd73a8700 (LWP 2376)]
[New Thread 0x7fffcfb6c700 (LWP 2382)]
[New Thread 0x7fffcf168700 (LWP 2383)]
[New Thread 0x7fffce760700 (LWP 2388)]
[New Thread 0x7fffcdf5f700 (LWP 2389)]
[New Thread 0x7fffcd75e700 (LWP 2390)]
[Thread 0x7fffcf168700 (LWP 2383) exited]
[Thread 0x7fffcfb6c700 (LWP 2382) exited]
[New Thread 0x7fffcfb6c700 (LWP 2426)]
[Thread 0x7fffce760700 (LWP 2388) exited]
[Thread 0x7fffcdf5f700 (LWP 2389) exited]
[New Thread 0x7fffcdf5f700 (LWP 2508)]
[New Thread 0x7fffce760700 (LWP 2509)]
[Thread 0x7fffce760700 (LWP 2509) exited]
[Thread 0x7fffcdf5f700 (LWP 2508) exited]
[Thread 0x7fffcd75e700 (LWP 2390) exited]
[New Thread 0x7fffcd75e700 (LWP 2955)]
[New Thread 0x7fffcdf5f700 (LWP 2956)]
[Thread 0x7fffcdf5f700 (LWP 2956) exited]
[Thread 0x7fffcd75e700 (LWP 2955) exited]
[Thread 0x7fffcfb6c700 (LWP 2426) exited]
^C
Thread 3 "pool" received signal SIGINT, Interrupt.
[Switching to Thread 0x7fffe648a700 (LWP 2374)]
syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
38  ../sysdeps/unix/sysv/linux/x86_64/syscall.S: No such file or directory.
(gdb) thread apply all bt

Thread 5 (Thread 0x7fffd73a8700 (LWP 2376)):
#0  0x00007ffff5008bf9 in __GI___poll (fds=0x5555570e3160, nfds=1, timeout=-1)
    at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007ffff75f2539 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007ffff75f264c in g_main_context_iteration ()
   from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007fffd73b036d in ?? () from /usr/lib/x86_64-linux-gnu/gio/modules/libdconfsettings.so
#4  0x00007ffff761a105 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007ffff52ec6db in start_thread (arg=0x7fffd73a8700) at pthread_create.c:463
#6  0x00007ffff501588f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 4 (Thread 0x7fffe5c89700 (LWP 2375)):
#0  0x00007ffff5008bf9 in __GI___poll (fds=0x7fffd8001c20, nfds=3, timeout=-1)
    at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007ffff75f2539 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007ffff75f28d2 in g_main_loop_run () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007ffff64b5026 in ?? () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
#4  0x00007ffff761a105 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007ffff52ec6db in start_thread (arg=0x7fffe5c89700) at pthread_create.c:463
#6  0x00007ffff501588f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 3 (Thread 0x7fffe648a700 (LWP 2374)):
#0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1  0x00007ffff763829a in g_cond_wait_until () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007ffff75c54f1 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007ffff75c5aac in g_async_queue_timeout_pop ()
   from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007ffff761abae in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007ffff761a105 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#6  0x00007ffff52ec6db in start_thread (arg=0x7fffe648a700) at pthread_create.c:463
---Type <return> to continue, or q <return> to quit---
#7  0x00007ffff501588f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 2 (Thread 0x7fffe6c8b700 (LWP 2373)):
#0  0x00007ffff5008bf9 in __GI___poll (fds=0x5555558183a0, nfds=2, timeout=-1)
    at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007ffff75f2539 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007ffff75f264c in g_main_context_iteration ()
   from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007ffff75f2691 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007ffff761a105 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007ffff52ec6db in start_thread (arg=0x7fffe6c8b700) at pthread_create.c:463
#6  0x00007ffff501588f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 1 (Thread 0x7ffff7fbbac0 (LWP 2369)):
#0  __GI___pthread_mutex_lock (mutex=0x555556e27de0) at ../nptl/pthread_mutex_lock.c:93
#1  0x00007fffee0e2d87 in dbus_connection_get_dispatch_status ()
   from /lib/x86_64-linux-gnu/libdbus-1.so.3
#2  0x00007fffedeb76a3 in ?? () from /usr/lib/x86_64-linux-gnu/libatspi.so.0
#3  0x00007ffff75f1a98 in g_main_context_prepare () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007ffff75f246b in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007ffff75f264c in g_main_context_iteration ()
   from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#6  0x00007ffff6488e3d in g_application_run () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
#7  0x000055555556772e in ?? ()
#8  0x00007ffff4f15b97 in __libc_start_main (main=0x555555565c30, argc=1, argv=0x7fffffffde08, 
    init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffddf8)
    at ../csu/libc-start.c:310
#9  0x0000555555565c6a in ?? ()

Are we getting any closer? :-)

RubenSibon commented 5 years ago

Just want to say that I am getting the same issue with AppCenter in Pop!_OS in VirtualBox.

bugsysop commented 5 years ago

Havins the same problem: AppCenter doesn't fully crash but close itself.

This happen when the AppCenter is slow to connect to serveur (even if my Internet connection is OK).

This is a native fresh install on a laptop (Razerblade 2017)

davidmhewitt commented 4 years ago

Given that I was having issues reproducing this and that there have been considerable re-writes of the AppCenter backend since this issue was reported, I'm going to close this.

If anyone is still experiencing this issue, please re-open the issue so we can investigate further.