Alt-Tab Buggy at random times

The window switcher(the one that appears when pressing alt+tab) starts behaving abnormally at seemingly random times. It works perfectly usually, but sometimes in some sessions, fails to show any windows at all. Getting a screenshot was difficult so I have included a photo I took with my phone camera. P_20180611_114844

Clearly, there are multiple windows running(as the dots in the plank show) but the switcher fails to show them.
Meanwhile, I’d like to thank budgie devs. It’s sweet, and pretty stable.

Looks like the background process crashed for some reason. Could you run budgie-panel --replace & from a terminal and run your desktop like you usually do for a while until this happens (keep the terminal window open)? Then if it happens, post the last section of the output. It should include the string wprviews_backgrounder somewhere.

Ok, I’ll try that. However, there’s less chance of this happening again as it’s not that frequent but has happens 2-3 times a week.
A reboot fixes it usually

Yeah, also a log out/in should do the job, or the command budgie-panel --replace & from terminal. I hope we’ll get clear what it is.

1 Like

I tried that and the window switching works now. However, there’s a bunch of stuff printed on the terminal window:

 INFO:root:start
INFO:root:Menu shown
INFO:root:Fetcher started
Traceback (most recent call last):
  File "/usr/lib/budgie-desktop/plugins/budgie-dropby/budgie_dropby.py", line 59, in do_get_panel_widget
    return BudgieDropByApplet(uuid)
  File "/usr/lib/budgie-desktop/plugins/budgie-dropby/budgie_dropby.py", line 110, in __init__
    self.refresh()
  File "/usr/lib/budgie-desktop/plugins/budgie-dropby/budgie_dropby.py", line 203, in refresh
    get_relevant = db.get_volumes(allvols)
  File "/usr/lib/budgie-desktop/plugins/budgie-dropby/dropby_tools.py", line 91, in get_volumes
    use_data = get_mounted()
  File "/usr/lib/budgie-desktop/plugins/budgie-dropby/dropby_tools.py", line 63, in get_mounted
    usage = psutil.disk_usage(v.mountpoint)
  File "/usr/lib/python3/dist-packages/psutil/__init__.py", line 1967, in disk_usage
    return _psplatform.disk_usage(path)
  File "/usr/lib/python3/dist-packages/psutil/_psposix.py", line 127, in disk_usage
    st = os.statvfs(path)
PermissionError: [Errno 13] Permission denied: '/media/root/ca6a145d-4327-4404-ad0a-b9ae4038709d1'
sys:1: Warning: invalid (NULL) pointer instance
sys:1: Warning: g_signal_emit_by_name: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed

(budgie-panel:20004): Gtk-CRITICAL **: 12:06:59.595: gtk_box_pack: assertion 'GTK_IS_WIDGET (child)' failed

(budgie-panel:20004): Gtk-CRITICAL **: 12:06:59.595: gtk_container_child_set_valist: assertion 'GTK_IS_WIDGET (child)' failed

(budgie-panel:20004): Gtk-CRITICAL **: 12:06:59.755: gtk_widget_get_parent: assertion 'GTK_IS_WIDGET (widget)' failed

(budgie-panel:20004): Gtk-CRITICAL **: 12:06:59.755: gtk_widget_reparent: assertion 'GTK_IS_WIDGET (widget)' failed

(budgie-panel:20004): Gtk-CRITICAL **: 12:06:59.755: gtk_widget_get_parent: assertion 'GTK_IS_WIDGET (widget)' failed

(budgie-panel:20004): Gtk-CRITICAL **: 12:06:59.755: gtk_container_child_set_valist: assertion 'GTK_IS_CONTAINER (container)' failed
sys:1: Warning: invalid (NULL) pointer instance
sys:1: Warning: g_signal_emit_by_name: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
** Message: 12:06:59.855: libsession.vala:50: DESKTOP_AUTOSTART_ID not set, session registration may be broken (not running budgie-desktop?)

(budgie-panel:20004): Gtk-CRITICAL **: 12:06:59.989: gtk_widget_get_parent: assertion 'GTK_IS_WIDGET (widget)' failed

(budgie-panel:20004): Gtk-CRITICAL **: 12:06:59.989: gtk_container_child_set_valist: assertion 'GTK_IS_CONTAINER (container)' failed

(budgie-panel:20004): Gtk-CRITICAL **: 12:06:59.989: gtk_widget_get_parent: assertion 'GTK_IS_WIDGET (widget)' failed

(budgie-panel:20004): Gtk-CRITICAL **: 12:06:59.989: gtk_widget_reparent: assertion 'GTK_IS_WIDGET (widget)' failed

(budgie-panel:20004): Bluetooth-WARNING **: 12:07:00.008: Error setting property 'Powered' on interface org.bluez.Adapter1: GDBus.Error:org.bluez.Error.Blocked: Blocked through rfkill (g-io-error-quark, 36)

** (budgie-panel:20004): WARNING **: 12:07:00.146: BudgieMenuWindow.vala:298: Software has no parent directory, not adding to menu

Traceback (most recent call last):
  File "/usr/lib/budgie-desktop/plugins/budgie-dropby/budgie_dropby.py", line 203, in refresh
    get_relevant = db.get_volumes(allvols)
  File "/usr/lib/budgie-desktop/plugins/budgie-dropby/dropby_tools.py", line 91, in get_volumes
    use_data = get_mounted()
  File "/usr/lib/budgie-desktop/plugins/budgie-dropby/dropby_tools.py", line 63, in get_mounted
    usage = psutil.disk_usage(v.mountpoint)
  File "/usr/lib/python3/dist-packages/psutil/__init__.py", line 1967, in disk_usage
    return _psplatform.disk_usage(path)
  File "/usr/lib/python3/dist-packages/psutil/_psposix.py", line 127, in disk_usage
    st = os.statvfs(path)
PermissionError: [Errno 13] Permission denied: '/media/root/ca6a145d-4327-4404-ad0a-b9ae4038709d1'

Wonder if that’s related.

It is an interesting message for me :), but not related to the crashing background script in any way. Thanks!

Ok, so the crash happened today again, after I had run the command in the terminal as suggested. So here is the output:

INFO:root:start
INFO:root:Menu shown
INFO:root:Fetcher started
Traceback (most recent call last):
  File "/usr/lib/budgie-desktop/plugins/budgie-dropby/budgie_dropby.py", line 59, in do_get_panel_widget
    return BudgieDropByApplet(uuid)
  File "/usr/lib/budgie-desktop/plugins/budgie-dropby/budgie_dropby.py", line 110, in __init__
    self.refresh()
  File "/usr/lib/budgie-desktop/plugins/budgie-dropby/budgie_dropby.py", line 203, in refresh
    get_relevant = db.get_volumes(allvols)
  File "/usr/lib/budgie-desktop/plugins/budgie-dropby/dropby_tools.py", line 91, in get_volumes
    use_data = get_mounted()
  File "/usr/lib/budgie-desktop/plugins/budgie-dropby/dropby_tools.py", line 63, in get_mounted
    usage = psutil.disk_usage(v.mountpoint)
  File "/usr/lib/python3/dist-packages/psutil/__init__.py", line 1967, in disk_usage
    return _psplatform.disk_usage(path)
  File "/usr/lib/python3/dist-packages/psutil/_psposix.py", line 127, in disk_usage
    st = os.statvfs(path)
PermissionError: [Errno 13] Permission denied: '/media/root/ca6a145d-4327-4404-ad0a-b9ae4038709d1'
sys:1: Warning: invalid (NULL) pointer instance
sys:1: Warning: g_signal_emit_by_name: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed

(budgie-panel:1394): Gtk-CRITICAL **: 15:06:23.650: gtk_box_pack: assertion 'GTK_IS_WIDGET (child)' failed

(budgie-panel:1394): Gtk-CRITICAL **: 15:06:23.650: gtk_container_child_set_valist: assertion 'GTK_IS_WIDGET (child)' failed

(budgie-panel:1394): Gtk-CRITICAL **: 15:06:23.749: gtk_widget_get_parent: assertion 'GTK_IS_WIDGET (widget)' failed

(budgie-panel:1394): Gtk-CRITICAL **: 15:06:23.749: gtk_widget_reparent: assertion 'GTK_IS_WIDGET (widget)' failed

(budgie-panel:1394): Gtk-CRITICAL **: 15:06:23.749: gtk_widget_get_parent: assertion 'GTK_IS_WIDGET (widget)' failed

(budgie-panel:1394): Gtk-CRITICAL **: 15:06:23.749: gtk_container_child_set_valist: assertion 'GTK_IS_CONTAINER (container)' failed
** Message: 15:06:23.815: libsession.vala:50: DESKTOP_AUTOSTART_ID not set, session registration may be broken (not running budgie-desktop?)

(budgie-panel:1394): Gtk-CRITICAL **: 15:06:23.927: gtk_widget_get_parent: assertion 'GTK_IS_WIDGET (widget)' failed

(budgie-panel:1394): Gtk-CRITICAL **: 15:06:23.927: gtk_container_child_set_valist: assertion 'GTK_IS_CONTAINER (container)' failed

(budgie-panel:1394): Gtk-CRITICAL **: 15:06:23.927: gtk_widget_get_parent: assertion 'GTK_IS_WIDGET (widget)' failed

(budgie-panel:1394): Gtk-CRITICAL **: 15:06:23.927: gtk_widget_reparent: assertion 'GTK_IS_WIDGET (widget)' failed

(budgie-panel:1394): Gtk-CRITICAL **: 15:06:23.964: gtk_widget_get_parent: assertion 'GTK_IS_WIDGET (widget)' failed

(budgie-panel:1394): Gtk-CRITICAL **: 15:06:23.964: gtk_container_child_set_valist: assertion 'GTK_IS_CONTAINER (container)' failed

(budgie-panel:1394): Gtk-CRITICAL **: 15:06:23.964: gtk_widget_get_parent: assertion 'GTK_IS_WIDGET (widget)' failed

(budgie-panel:1394): Gtk-CRITICAL **: 15:06:23.964: gtk_widget_reparent: assertion 'GTK_IS_WIDGET (widget)' failed

(budgie-panel:1394): Bluetooth-WARNING **: 15:06:23.976: Error setting property 'Powered' on interface org.bluez.Adapter1: GDBus.Error:org.bluez.Error.Blocked: Blocked through rfkill (g-io-error-quark, 36)

** (budgie-panel:1394): WARNING **: 15:06:24.059: BudgieMenuWindow.vala:298: Software has no parent directory, not adding to menu

Traceback (most recent call last):
  File "/usr/lib/budgie-desktop/plugins/budgie-wprviews/wprviews_backgrounder", line 111, in <module>
    create_preview(w[0])
  File "/usr/lib/budgie-desktop/plugins/budgie-wprviews/wprviews_backgrounder", line 60, in create_preview
    if pv.get_valid(orig_id):
  File "/usr/lib/budgie-desktop/plugins/budgie-wprviews/wprviews_tools.py", line 108, in get_valid
    w_data = get(["xprop", "-id", w_id])
  File "/usr/lib/budgie-desktop/plugins/budgie-wprviews/wprviews_tools.py", line 85, in get
    return subprocess.check_output(cmd).decode("utf-8").strip()
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xa6 in position 1746: invalid start byte

The last few lines contain error messages about ‘wprviews_backgrounder’ as predicted.

No clue why a decode error would happen on a straightforward command like that. I am using the exact same command (subprocess.check_output() fetching window info from xprop) in many other situations and never got an issue or bug report on it. Can I ask what your setup is? Is it a “real” machine or a VM? Any idea on what kind of special windows were opened when the issue occurred?

It’s a real machine. Dual boot with windows on a asus r558uq. I haven’t noticed any specific applications that I have opened when i have noticed this bug. I’ll try to keep an eye for what apps are open whenever this happens from now on. As of yesterday, the apps that were open were: firefox developer which I’ve installed via ubuntu-make, vlc, a couple of file manager windows, terminals, XDM(xtreme download manager), XDM has some “special” popup windows that come up when downloading something, which might be causing some issues maybe. I try that and see it causes the script to crash.
Edit:
XDM download windows have as their title the name of the file that is getting downloaded. But that would be a proper file name,I guess? Would that cause problems? What would be a way to confirm?

For some reason, xprop returns weird values. I will prepare an edited version to escape the obvious exception. Could I ask you to test that?

Sure, wouldn’t be a problem.

Thanks a lot!
I prepared a file in my DropBox for download: https://www.dropbox.com/s/hekvp48ho6cr2g9/wprviews_tools.py?dl=0. Could you download it, make sure it is named: wprviews_tools.py and copy it to /usr/lib/budgie-desktop/plugins/budgie-wprviews? (sudo cp /path/to/wprviews_tools.py /usr/lib/budgie-desktop/plugins/budgie-wprviews)
If it fixes it, I’ll push it.

I’ve made the changes. Let’s see if this fixes it!

No crashes since then. This seems to have done it! Thanks!

Thanks a lot for testing! I will include the fix in the code.