Marek Marczykowski-Górecki
370057bad3
tests: unlock qubes.xml after creating VMs
...
Otherwise it could cause deadlocks.
2015-03-19 23:17:20 +01:00
Marek Marczykowski-Górecki
668a2ac62b
linux: set sgid for /var/run/qubes
...
This is much simpler than ensuring proper group set in every qubes
tool.
2015-03-19 10:31:50 +01:00
Marek Marczykowski-Górecki
7463a55f0f
dispvm: do not require shmoverride loaded to start gui daemon
...
This isn't needed anymore because we'll show no window in invisible
mode. This allows to prepare DispVM from firstboot.
2015-03-19 10:30:18 +01:00
Marek Marczykowski-Górecki
304ed1dec5
Merge remote-tracking branch 'woju/wip-tests'
2015-03-07 02:48:21 +01:00
Wojciech Zygmunt Porczyk
ad7c6d0dec
tests/run: add option to list available tests
2015-03-05 15:38:59 +01:00
Wojciech Zygmunt Porczyk
95ae3f44aa
Revert "tests: use dot to separate test name components"
...
This reverts commit 454788d459
.
2015-03-05 15:38:16 +01:00
Wojciech Zygmunt Porczyk
f61045178a
tests: add --do-not-clean
2015-03-05 15:38:10 +01:00
Marek Marczykowski-Górecki
74d90a2886
Merge branch 'dispvm-speedup3'
2015-03-04 02:24:48 +01:00
Marek Marczykowski-Górecki
d6ea80eb5c
tests: wait before pressing ctrl-s in gedit
...
Apparently gedit doesn't handle well fast keystrokes flow.
2015-03-04 02:21:47 +01:00
Marek Marczykowski-Górecki
69f8d8aecf
dispvm: create /qubes-restore-complete qubesdb key
...
It is used by just started DispVM to notice when restore process
completed. Alternatively it could watch its own domid, but lets do it in
Xen-independent way.
2015-03-04 02:20:24 +01:00
Marek Marczykowski-Górecki
90b76b489d
dispvm: start gui-daemon in "invisible mode" when preparing DispVM
2015-03-04 02:19:29 +01:00
Marek Marczykowski-Górecki
2eeea65ce6
core: do not call GUI-related RPC services, when qrexec is not running
2015-03-04 02:18:46 +01:00
Marek Marczykowski-Górecki
7265cb9d0f
Merge branch 'dispvm-speedup' into dispvm-speedup3
...
Conflicts:
dispvm/qubes-prepare-saved-domain.sh
2015-03-02 03:35:15 +01:00
Marek Marczykowski-Górecki
c5ffba8eb7
tests: save qubes.xml after preparing VMs to backup
2015-02-22 18:24:18 +01:00
Marek Marczykowski-Górecki
1f30a03a09
tests: fix handling old backup format
2015-02-22 16:18:39 +01:00
Marek Marczykowski-Górecki
bc9e4d1fe5
linux/block-snapshot: improve support for HVM domain
...
Handle stubdomains (the same device will be removed twice).
Use target domain name instead of stubdomain name for committing
template changes.
2015-02-22 14:44:09 +01:00
Marek Marczykowski-Górecki
fc439edf2f
linux/block-snapshot: call qvm-template-commit in offline mode
...
When called from libvirt->libxl, there is libvirt lock taken on that
domain. Because of that, we can't access libvirt domain, so basically
any runtime information. Without that --offline-mode, script waited on
the lock and then was killed by libxl after a timeout - before actually
committing the changes.
2015-02-22 04:01:18 +01:00
Marek Marczykowski-Górecki
54a06f3f46
core: add dummy QubesTemplateHVm.commit_changes
...
It does nothing as root-cow.img isn't used by HVMs (yet), but this
function is required by qvm-template-commit.
2015-02-22 03:53:51 +01:00
Marek Marczykowski-Górecki
67ea5bc441
tests: encourage to release the lock after completing the setup
...
Many functions and especially standalone tools takes the lock itself, so
to prevent deadlocks, as a rule execute the tests with lock released.
Also reload qubes.xml before cleanup.
2015-02-22 01:26:38 +01:00
Marek Marczykowski-Górecki
ae6ca5c0a3
core: prevent taking database lock twice
2015-02-22 01:25:51 +01:00
Marek Marczykowski-Górecki
b858488719
Merge remote-tracking branch 'woju/master'
2015-02-21 03:09:29 +01:00
Marek Marczykowski-Górecki
454788d459
tests: use dot to separate test name components
...
This way the name can be directly copied to cmdline to rerun that
particular test.
2015-02-21 00:39:19 +01:00
Marek Marczykowski-Górecki
e65842322a
core: hold the lock after QubesVmCollection.save()
...
The statement that unlock_db() is always called directly after save() is
no longer true - tests holds the lock all the time, doing multiple saves
in the middle.
2015-02-21 00:25:50 +01:00
Wojtek Porczyk
bb5099dc9b
Revert "tests: separate test component names with dot"
...
This reverts commit f7a47e6c66
.
It is now unneeded since parser, which accepts old names.
Old names are more readable.
2015-02-19 21:32:55 +01:00
Wojtek Porczyk
5a9c390485
tests/run: fix log message formatting
2015-02-19 21:32:43 +01:00
Wojtek Porczyk
3e725efe15
tests/run: add command line parser to runner
2015-02-19 21:32:43 +01:00
Wojtek Porczyk
2b14bc88d0
core/modules: debug important VM changes
2015-02-19 21:32:43 +01:00
Wojtek Porczyk
241cf2e089
core/qubes.py: ensure that all default_*vm are present in collection
...
References to invalid qids are None'd. Failure to do so may cause KeyErrors even
on fixing ntpd service during instantiation of QubesVmCollection.
2015-02-19 21:32:43 +01:00
Marek Marczykowski-Górecki
c37390e33f
tests: remove expectedFailure from test_051_qrexec_simple_eof_reverse
...
This is already fixed in R3 qrexec code.
2015-02-19 04:03:19 +01:00
Marek Marczykowski-Górecki
f7a47e6c66
tests: separate test component names with dot
...
This way the same name can be simply copy-pasted to command line - to
rerun a single test.
2015-02-19 03:55:31 +01:00
Marek Marczykowski-Górecki
7596f753d8
tests: add some timeout for process exit
2015-02-19 03:54:57 +01:00
Marek Marczykowski-Górecki
091d02b9a3
tests: reload qubes.xml after save
...
This is to make sure that QubesVmCollection state is consistent with
qubes.xml - unfortunately some changes are applied to Qubes*Vm object
only at load time (for example connected_vms collections).
2015-02-19 03:52:35 +01:00
Marek Marczykowski-Górecki
f7a06ae29b
tests: missing imports
2015-02-18 22:49:47 +01:00
Marek Marczykowski-Górecki
bdae560770
backup: fix deadlock on error while receiving backup from a VM
...
When qfile-dom0-unpacker detects an error, it sends error report to
stdout and terminate (so stdout is closed). That close should be
transferred to the VM process (as EOF on its stdin), which will signal
it to stop sending the data and handle error report.
Also qrexec-client holds the connection until both stdin and
stdout are closed.
So when that EOF is missing, tar2qfile will not detect error report and
still tries to send the data and qrexec-client will hold the
connection while receiving process is long dead.
To prevent that deadlock from happening, close FD in python code, so
qfile-dom0-unpacker will be the last owner of write end of the pipe.
When it closes its stdout, qrexec-client will receive EOF at its stdin.
2015-02-18 21:41:22 +01:00
Marek Marczykowski-Górecki
affb39f435
Merge remote-tracking branch 'woju/master'
2015-02-18 15:11:05 +01:00
Wojtek Porczyk
d81ae01d48
tests: add logging
...
Test suite now logs to three places:
* syslog
* ${HOME}/qubes-tests.log
* /dev/kmsg (only start and errors; this is handy while debugging Oopses by
correlating them with tests)
2015-02-11 16:34:35 +01:00
Marek Marczykowski-Górecki
ef1bf9b33b
dispvm: fix setting up DispVM based on non-default template
...
Replace 'vmdir' symlink instead of creating new one inside of 'vmdir'
directory.
2015-02-11 15:02:33 +01:00
Marek Marczykowski-Górecki
246de96dcd
core: make vm.rootcow_img a property
2015-02-11 13:59:57 +01:00
Wojtek Porczyk
b6530200c9
tests: fix after Marek's review
2015-02-11 13:15:35 +01:00
Wojtek Porczyk
7f75ed4d73
tests: runner backported from core3
2015-02-10 23:24:24 +01:00
Wojtek Porczyk
226e257d2a
tests: refactored
2015-02-10 23:24:24 +01:00
Marek Marczykowski-Górecki
cf41d94754
core: implement VM suspend
...
Required for proper host sleep when netvm is running.
2015-02-10 06:45:47 +01:00
Marek Marczykowski-Górecki
e67e9a4be1
Revert part of "core: remove kernel properties from DispVM and Dom0 ( #948 )"
...
This reverts DispVM part of commit 72cf3a8201
.
2015-02-09 22:29:23 +01:00
Marek Marczykowski-Górecki
726d5686ac
tests: disable qrexec_filecopy_self test
...
When vchan connection is established back to the source domain, gntalloc
crashes with this message:
[ 9.937990] BUG: Bad page map in process qrexec-agent pte:80000000f9d41167 pmd:131c3067
[ 9.938010] page:ffffea00036a6638 count:1 mapcount:-1 mapping: (null) index:0xffffffffffffffff
[ 9.938018] page flags: 0x4000000000000c14(referenced|dirty|reserved|private)
[ 9.938033] addr:00007fa856d47000 vm_flags:140400fb anon_vma: (null) mapping:ffff880011efe940 index:11
[ 9.938042] vma->vm_ops->fault: (null)
[ 9.938057] vma->vm_file->f_op->mmap: gntalloc_mmap+0x0/0x1c0 [xen_gntalloc]
[ 9.938066] CPU: 0 PID: 1108 Comm: qrexec-agent Tainted: G O 3.12.23-1.pvops.qubes.x86_64 #1
[ 9.938074] ffff8800131f3818 ffff88001316fc78 ffffffff814db550 00007fa856d47000
[ 9.938085] ffff88001316fcb8 ffffffff81139413 ffff880011efe940 ffff8800131c3a38
[ 9.938096] ffffea00036a6638 00007fa856d47000 00007fa856d57000 ffff88001316fe18
[ 9.938107] Call Trace:
[ 9.938117] [<ffffffff814db550>] dump_stack+0x45/0x56
[ 9.938126] [<ffffffff81139413>] print_bad_pte+0x1a3/0x240
[ 9.938133] [<ffffffff8113ac9e>] unmap_page_range+0x6ee/0x7d0
[ 9.938142] [<ffffffff8113adf6>] unmap_single_vma+0x76/0xa0
[ 9.938149] [<ffffffff8113be09>] unmap_vmas+0x49/0x90
[ 9.938157] [<ffffffff8114443c>] exit_mmap+0x9c/0x170
[ 9.938166] [<ffffffff8105950c>] mmput+0x5c/0x110
[ 9.938175] [<ffffffff8105d74c>] do_exit+0x27c/0xa20
[ 9.938184] [<ffffffff810908ef>] ? vtime_account_user+0x4f/0x60
[ 9.938194] [<ffffffff81116502>] ? context_tracking_user_exit+0x52/0xc0
[ 9.938203] [<ffffffff8105ed2a>] do_group_exit+0x3a/0xa0
[ 9.938211] [<ffffffff8105ed9f>] SyS_exit_group+0xf/0x10
[ 9.938220] [<ffffffff814ea907>] tracesys+0xdd/0xe2
2015-02-09 22:09:15 +01:00
Marek Marczykowski-Górecki
c663b1dd2d
tests: add simple HVM tests
2015-02-09 06:18:57 +01:00
Marek Marczykowski-Górecki
bc35b99549
tests: update DispVM test
...
Apparently 'l' and 'n' characters aren't passed correctly by xdotool
(some keymap problem?). Do not use them in test text.
2015-02-09 06:17:43 +01:00
Marek Marczykowski-Górecki
27be178a04
tests: add tests for qrexec exit code
2015-02-09 06:08:48 +01:00
Marek Marczykowski-Górecki
086e88183e
Explicitly enable emulated GPU
...
Previously it was enabled only because of bug in libvirt. Now it is
fixed (9e0e0224438b79073bf404627fed8e2889669374), so config needs to be
updated.
2015-02-09 06:04:31 +01:00
Marek Marczykowski-Górecki
adfc4e0ac9
core: disks handling cleanup, fix them for TemplateHVM
...
Move rootcow_img to storage class, remove clean_volatile_img. And most
importantly - set source_template in QubesHVm.create_on_disk.
2015-02-09 06:02:20 +01:00
Marek Marczykowski-Górecki
2def43517a
core/hvm: handle verbose option for guid
2015-02-09 05:39:44 +01:00