New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refreshing Qube Manager Immediately after closing DispVM causes varied critical errors #3856

Closed
esote opened this Issue Apr 24, 2018 · 4 comments

Comments

Projects
None yet
6 participants
@esote

esote commented Apr 24, 2018

Qubes OS version:

R4

Affected component(s):

Qube Manager


Steps to reproduce the behavior:

  1. Launch a disposable virtual machine. In my case, I open Firefox from fedora-26-dvm.
  2. Close Firefox (thus shutting down the virtual machine), while simultaneously refreshing Qube Manager.

Expected behavior:

No crash and critical error upon refreshing Qube Manager directly after closing a DispVM.

Actual behavior:

Refreshing Qube Manager right after closing a DispVM (such as closing the last window open, thus shutting it down), causes different critical errors to pop-up:

Sometimes I get this one

Whoops. A critical error has occured. This is likely a bug in Qubes Manager.
QubesPropertyAccessError: Failed to access 'label' property
at line 888
of file /usr/lib/python3.5/site-packages/qubesmanager/qube_manager.py.

----
line: raise qubesadmin.exc.QubesPropertyAccessError(item)
func: __getattr__
line no.: 203
file: /usr/lib/python3.5/site-packages/qubesadmin/base.py
----
line: self.value = 5 + vm.label.index
func: get_vm_icon
line no.: 106
file: /usr/lib/python3.5/site-packages/qubesmanager/table_widgets.py
----
line: (icon_path, tooltip) = self.get_vm_icon(vm)
func: __init__
line no.: 86
file: /usr/lib/python3.5/site-packages/qubesmanager/table_widgets.py
----
line: self.type_widget = table_widgets.VmTypeWidget(vm)
func: __init__
line no.: 81
file: /usr/lib/python3.5/site-packages/qubesmanager/qube_manager.py
----
line: vm_row = VmRowInTable(vm, row_no, self.table)
func: fill_table
line no.: 427
file: /usr/lib/python3.5/site-packages/qubesmanager/qube_manager.py
----
line: self.fill_table()
func: update_table
line no.: 465
file: /usr/lib/python3.5/site-packages/qubesmanager/qube_manager.py
----
line: self.update_table()
func: action_refresh_list_triggered
line no.: 888
file: /usr/lib/python3.5/site-packages/qubesmanager/qube_manager.py

This critical error has happened twice now, both when refreshing immediately after closing a DispVM.

I have also gotten this one, when doing the same action (perhaps the timing is different, but nonetheless).

Whoops. A critical error has occured. This is most likely a bug in Qubes Manager.
QubesPropertyAccessError: Failed to access 'qid' property
at line 77
of file /usr/lib/python3.5/site-packages/qubesmanager/table_widgets.py.

With the details below:

----
line: raise qubesadmin.exc.QubesPropertyAccessError(item)
func: __getattr__
line no.: 203
file: /usr/lib/python3.5/site-packages/qubesadmin/base.py
----
line: if self.vm.qid == 0:
func: __lt__
line no.: 77
file: /usr/lib/python3.5/site-packages/qubesmanager/table_widgets.py

Immediately following the error shown above (the one with line 77, not 888), I get about a dozen of these errors (each identical, I suppose it has to do with the number of VMs I have).

Whoops. A critical error has occured. This is most likely a bug in Qubes Manager.
QubesPropertyAccessError: Failed to access 'qid' property
at line 79
of file /usr/lib/python3.5/site-packages/qubesmanager/table_widgets.py.

----
line: raise qubesadmin.exc.QubesPropertyAccessError(item)
func: __getattr__
line no.: 203
file: /usr/lib/python3.5/site-packages/qubesadmin/base.py
----
line: elif other.vm.qid == 0:
func: __lt__
line no.: 79
file: /usr/lib/python3.5/site-packages/qubesmanager/table_widgets.py

General notes:

In the error "occurred" is misspelled as "occured" (should have two r's). There is also inconsistent naming between "Qubes Manager" and "Qube Manager."


Related issues:

None that i have found.

@underthings

This comment has been minimized.

Show comment
Hide comment
@underthings

underthings Apr 25, 2018

Just would like confirm same issue.

Just would like confirm same issue.

@mkow

This comment has been minimized.

Show comment
Hide comment
@mkow

mkow Apr 26, 2018

Member

Similar issue here, with a different error.

Shutting down a template VM (using Qubes Manager) and then clicking "Refresh" a few times resulted in the following error:

Whoops. A critical error has occured. This is most likely a bug in Qubes Manager.
RuntimeError: wrapped C/C++ object of type VmNameItem has been deleted at line 888 of file /usr/lib/python3.5/site-packages/qubesmanager/qube_manager.py.

Details:

----
line: self.vms_in_table[selected_qid].name_widget)
func: fill_table
line no.: 437
file: /usr/lib/python3.5/site-packages/qubesmanager/qube_manager.py
----
line: self.fill_table()
func: update_table
line no.: 465
file: /usr/lib/python3.5/site-packages/qubesmanager/qube_manager.py
----
line: self.update_table()
func: action_refresh_list_triggered
line no.: 888
file: /usr/lib/python3.5/site-packages/qubesmanager/qube_manager.py
Member

mkow commented Apr 26, 2018

Similar issue here, with a different error.

Shutting down a template VM (using Qubes Manager) and then clicking "Refresh" a few times resulted in the following error:

Whoops. A critical error has occured. This is most likely a bug in Qubes Manager.
RuntimeError: wrapped C/C++ object of type VmNameItem has been deleted at line 888 of file /usr/lib/python3.5/site-packages/qubesmanager/qube_manager.py.

Details:

----
line: self.vms_in_table[selected_qid].name_widget)
func: fill_table
line no.: 437
file: /usr/lib/python3.5/site-packages/qubesmanager/qube_manager.py
----
line: self.fill_table()
func: update_table
line no.: 465
file: /usr/lib/python3.5/site-packages/qubesmanager/qube_manager.py
----
line: self.update_table()
func: action_refresh_list_triggered
line no.: 888
file: /usr/lib/python3.5/site-packages/qubesmanager/qube_manager.py

@donob4n donob4n referenced this issue in QubesOS/qubes-manager May 6, 2018

Closed

Removed progress wait when updating template #90

@donob4n

This comment has been minimized.

Show comment
Hide comment
@donob4n

donob4n May 6, 2018

Hi,

I think this bug is due 'app.domains' cache, like a similar problem which I had: #3875

When you close the dispVM is removed so domains needs to call a clear_cache() or it will try to get the removed VM.

In current version it should work just calling clear_cache() when doing a manual Refresh.

donob4n commented May 6, 2018

Hi,

I think this bug is due 'app.domains' cache, like a similar problem which I had: #3875

When you close the dispVM is removed so domains needs to call a clear_cache() or it will try to get the removed VM.

In current version it should work just calling clear_cache() when doing a manual Refresh.

@marmarta

This comment has been minimized.

Show comment
Hide comment

Should be fixed by QubesOS/qubes-manager#91

@marmarta marmarta closed this Jun 13, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment