Late GUID for preloaded disposables#359
Conversation
|
Before this is merged, let me know to update the documentation of the manpage and the DispVM class accordingly. Maybe I will merge this PR: |
|
This is working because failing But now, Adding a check for Note to self: This requires changes in core-admin:
|
|
I haven't checked if there is any impact of a super late connection, such as a preload that was paused for some hours and them it is unpaused and the GUID will try to connect, will have to check if the client responds. |
| try: | ||
| if "guivm" in self.enabled_services: | ||
| asyncio.ensure_future( | ||
| self.start_gui(vm, monitor_layout=monitor_layout) |
There was a problem hiding this comment.
Should I use force_stubdom=True? I haven't experimented with HVMs for this use case.
There was a problem hiding this comment.
No, force_stubdomain is only a debugging feature
|
Rebased on top of: |
- Autostarted applications don't show when preloading; and - Preloaded qubes paused before the session will have a working GUI when the session starts. For: QubesOS/qubes-issues#1512 For: QubesOS/qubes-issues#9940 For: QubesOS/qubes-issues#9907 Requires: QubesOS/qubes-core-admin-client#359
- Autostarted applications don't show when preloading; and - Preloaded qubes paused before the session will have a working GUI when the session starts. For: QubesOS/qubes-issues#1512 For: QubesOS/qubes-issues#9940 For: QubesOS/qubes-issues#9907 Requires: QubesOS/qubes-core-admin-client#359
- Autostarted applications don't show when preloading; and - Preloaded qubes paused before the session will have a working GUI when the session starts. For: QubesOS/qubes-issues#1512 For: QubesOS/qubes-issues#9940 For: QubesOS/qubes-issues#9907 Requires: QubesOS/qubes-core-admin-client#359
- Autostarted applications don't show when preloading; and - Preloaded qubes paused before the session will have a working GUI when the session starts. For: QubesOS/qubes-issues#1512 For: QubesOS/qubes-issues#9940 For: QubesOS/qubes-issues#9907 Requires: QubesOS/qubes-core-admin-client#359
- Autostarted applications don't show when preloading; and - Preloaded qubes paused before the session will have a working GUI when the session starts. For: QubesOS/qubes-issues#1512 For: QubesOS/qubes-issues#9940 For: QubesOS/qubes-issues#9907 Requires: QubesOS/qubes-core-admin-client#359
- Autostarted applications don't show when preloading; and - Preloaded qubes paused before the session will have a working GUI when the session starts. For: QubesOS/qubes-issues#1512 For: QubesOS/qubes-issues#9940 For: QubesOS/qubes-issues#9907 Requires: QubesOS/qubes-core-admin-client#359
- Autostarted applications don't show when preloading; and - Preloaded qubes paused before the session will have a working GUI when the session starts. For: QubesOS/qubes-issues#1512 For: QubesOS/qubes-issues#9940 For: QubesOS/qubes-issues#9907 Requires: QubesOS/qubes-core-admin-client#359
4ed916b to
1cf336d
Compare
|
There is a merge conflict now... |
- Autostarted applications don't show when preloading; and - Preloaded qubes paused before the session will have a working GUI when the session starts. For: QubesOS/qubes-issues#1512 For: QubesOS/qubes-issues#9940 For: QubesOS/qubes-issues#9907 Requires: QubesOS/qubes-core-admin-client#359
|
Oh, I see a bunch of related exceptions in .xsession-errors log: |
|
I fixed preserving types, and now |
- Autostarted applications don't show when preloading; and - Preloaded qubes paused before the session will have a working GUI when the session starts. For: QubesOS/qubes-issues#1512 For: QubesOS/qubes-issues#9940 For: QubesOS/qubes-issues#9907 Requires: QubesOS/qubes-core-admin-client#359
- Autostarted applications don't show when preloading; and - Preloaded qubes paused before the session will have a working GUI when the session starts. For: QubesOS/qubes-issues#1512 For: QubesOS/qubes-issues#9940 For: QubesOS/qubes-issues#9907 Requires: QubesOS/qubes-core-admin-client#359
- Autostarted applications don't show when preloading; and - Preloaded qubes paused before the session will have a working GUI when the session starts. For: QubesOS/qubes-issues#1512 For: QubesOS/qubes-issues#9940 For: QubesOS/qubes-issues#9907 Requires: QubesOS/qubes-core-admin-client#359
|
I'm merging #367 now, and it will require this PR to be rebased (there is a small conflict). |
- Autostarted applications don't show when preloading; and - Preloaded qubes paused before the session will have a working GUI when the session starts. For: QubesOS/qubes-issues#1512 For: QubesOS/qubes-issues#9940 For: QubesOS/qubes-issues#9907 Requires: QubesOS/qubes-core-admin-client#359
I was worried a bit but the error is this: Traceback (most recent call last):
File "/usr/bin/qvm-run", line 5, in <module>
sys.exit(main())
~~~~^^
File "/usr/lib/python3.13/site-packages/qubesadmin/tools/qvm_run.py", line 288, in main
sys.stderr.flush()
~~~~~~~~~~~~~~~~^^
BlockingIOError: [Errno 11] write could not complete without blockingSo I will just add Now the Traceback (most recent call last):
File "/usr/lib64/python3.13/contextlib.py", line 85, in inner
return func(*args, **kwds)
File "/usr/lib/python3.13/site-packages/qubes/tests/integ/dispvm.py", line 429, in test_013_dvm_run_preload_gui
self.loop.run_until_complete(self._test_013_dvm_run_preload_gui())
~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/python3.13/asyncio/base_events.py", line 719, in run_until_complete
return future.result()
~~~~~~~~~~~~~^^
File "/usr/lib/python3.13/site-packages/qubes/tests/integ/dispvm.py", line 437, in _test_013_dvm_run_preload_gui
await self.run_preload()
File "/usr/lib/python3.13/site-packages/qubes/tests/integ/dispvm.py", line 352, in run_preload
self.assertTrue(
~~~~~~~~~~~~~~~^
self._test_event_was_handled(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
dispvm_name, "domain-feature-set:preload-dispvm-completed"
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
)
^
AssertionError: None is not truediff --git a/qubes/tests/integ/dispvm.py b/qubes/tests/integ/dispvm.py
index f1f6fa23..60de4e31 100644
--- a/qubes/tests/integ/dispvm.py
+++ b/qubes/tests/integ/dispvm.py
@@ -267,7 +267,11 @@ class TC_20_DispVMMixin(object):
preload_unfinished = preload_dispvm
for _ in range(60):
for qube in preload_unfinished.copy():
- if self.app.domains[qube].preload_complete.is_set():
+ qo = self.app.domains[qube]
+ if qo.preload_complete.is_set():
+ logger.info("preload completed for '%s'", qube)
+ feat = qo.features.get("preload-dispvm-completed")
+ logger.info("preload completed feature '%s'", feat)
preload_unfinished.remove(qube)
continue
if not preload_unfinished:The feature is set, but the event handler hasn't registered it yet? |
|
If I delete the feature on |
Maybe the handler is not registered on the correct object? I guess you can add some logging when adding handlers and see which objects get them. |
Correct, it is not registered at all... will investigate why. |
|
Probably related to the |
- Autostarted applications don't show when preloading; and - Preloaded qubes paused before the session will have a working GUI when the session starts. For: QubesOS/qubes-issues#1512 For: QubesOS/qubes-issues#9940 For: QubesOS/qubes-issues#9907 Requires: QubesOS/qubes-core-admin-client#359
- Autostarted applications don't show when preloading; and - Preloaded qubes paused before the session will have a working GUI when the session starts. For: QubesOS/qubes-issues#1512 For: QubesOS/qubes-issues#9940 For: QubesOS/qubes-issues#9907 Requires: QubesOS/qubes-core-admin-client#359
- Autostarted applications don't show when preloading; and - Preloaded qubes paused before the session will have a working GUI when the session starts. For: QubesOS/qubes-issues#1512 For: QubesOS/qubes-issues#9940 For: QubesOS/qubes-issues#9907 Requires: QubesOS/qubes-core-admin-client#359
- Autostarted applications don't show when preloading; and - Preloaded qubes paused before the session will have a working GUI when the session starts. For: QubesOS/qubes-issues#1512 For: QubesOS/qubes-issues#9940 For: QubesOS/qubes-issues#9907 Requires: QubesOS/qubes-core-admin-client#359
- Autostarted applications don't show when preloading; and - Preloaded qubes paused before the session will have a working GUI when the session starts. For: QubesOS/qubes-issues#1512 For: QubesOS/qubes-issues#9940 For: QubesOS/qubes-issues#9907 Requires: QubesOS/qubes-core-admin-client#359
- Autostarted applications don't show when preloading; and - Preloaded qubes paused before the session will have a working GUI when the session starts. For: QubesOS/qubes-issues#1512 For: QubesOS/qubes-issues#9940 For: QubesOS/qubes-issues#9907 Requires: QubesOS/qubes-core-admin-client#359
- Autostarted applications don't show when preloading; and - Preloaded qubes paused before the session will have a working GUI when the session starts. For: QubesOS/qubes-issues#1512 For: QubesOS/qubes-issues#9940 For: QubesOS/qubes-issues#9907 Requires: QubesOS/qubes-core-admin-client#359
- Autostarted applications don't show when preloading; and - Preloaded qubes paused before the session will have a working GUI when the session starts. For: QubesOS/qubes-issues#1512 For: QubesOS/qubes-issues#9940 For: QubesOS/qubes-issues#9907
the session starts.
For: QubesOS/qubes-issues#1512
For: QubesOS/qubes-issues#9940
For: QubesOS/qubes-issues#9907