Message ID | 20180629174305.42849-1-dgilbert@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 29 June 2018 at 18:43, Dr. David Alan Gilbert (git) <dgilbert@redhat.com> wrote: > From: "Dr. David Alan Gilbert" <dgilbert@redhat.com> > > PPC tcg seems to be failing migration tests quite regularly; > we believe this is TCG bugs in dirty bit updating; it's > not clear why PPC fails more but lets skip for the moment. > > $ ./tests/migration-test > /ppc64/migration/deprecated: OK > /ppc64/migration/bad_dest: SKIP > /ppc64/migration/postcopy/unix: SKIP > /ppc64/migration/precopy/unix: SKIP This patch seems to make the test fail in some setups: TEST: tests/migration-test... (pid=58969) /ppc64/migration/deprecated: OK /ppc64/migration/bad_dest: FAIL GTester: last random seed: R02S608df80fbcf1f18882138d397082bb59 /ppc64/migration/postcopy/unix: FAIL GTester: last random seed: R02S608df80fbcf1f18882138d397082bb59 /ppc64/migration/precopy/unix: FAIL GTester: last random seed: R02S608df80fbcf1f18882138d397082bb59 PASS: tests/migration-test (and eventually make exits with an error). Failed for me on ppc64, s390x, x86-64, aarch32. I don't think any of my build systems printed "SKIP" for these tests -- they either FAIL or just don't print anything. thanks -- PMM
On 30 June 2018 at 17:28, Peter Maydell <peter.maydell@linaro.org> wrote: > On 29 June 2018 at 18:43, Dr. David Alan Gilbert (git) > <dgilbert@redhat.com> wrote: >> From: "Dr. David Alan Gilbert" <dgilbert@redhat.com> >> >> PPC tcg seems to be failing migration tests quite regularly; >> we believe this is TCG bugs in dirty bit updating; it's >> not clear why PPC fails more but lets skip for the moment. >> >> $ ./tests/migration-test >> /ppc64/migration/deprecated: OK >> /ppc64/migration/bad_dest: SKIP >> /ppc64/migration/postcopy/unix: SKIP >> /ppc64/migration/precopy/unix: SKIP > > This patch seems to make the test fail in some setups: Specifically, it's the 'gtester' command in 'make check' that makes the difference: e104462:xenial:ppc$ QTEST_QEMU_BINARY=ppc64-softmmu/qemu-system-ppc64 tests/migration-test /ppc64/migration/deprecated: OK /ppc64/migration/bad_dest: SKIP /ppc64/migration/postcopy/unix: SKIP /ppc64/migration/precopy/unix: SKIP e104462:xenial:ppc$ QTEST_QEMU_BINARY=ppc64-softmmu/qemu-system-ppc64 gtester -k --verbose -m=quick tests/migration-test TEST: tests/migration-test... (pid=23304) /ppc64/migration/deprecated: OK /ppc64/migration/bad_dest: FAIL GTester: last random seed: R02Sa45f28859314d31ea4e89aeee4851d87 /ppc64/migration/postcopy/unix: FAIL GTester: last random seed: R02Sa45f28859314d31ea4e89aeee4851d87 /ppc64/migration/precopy/unix: FAIL GTester: last random seed: R02Sa45f28859314d31ea4e89aeee4851d87 PASS: tests/migration-test This seems to be a bug in gtester: https://bugzilla.gnome.org/show_bug.cgi?id=790934 which I guess we need to work around -- the easy approach would be to just call this a pass rather than a skip, I suppose. I also note that in that bug report the glib folks say "don't use gtester, it's not maintained", and recommend that we switch to something else (a 'TAP harness', whatever that is)... thanks -- PMM
* Peter Maydell (peter.maydell@linaro.org) wrote: > On 30 June 2018 at 17:28, Peter Maydell <peter.maydell@linaro.org> wrote: > > On 29 June 2018 at 18:43, Dr. David Alan Gilbert (git) > > <dgilbert@redhat.com> wrote: > >> From: "Dr. David Alan Gilbert" <dgilbert@redhat.com> > >> > >> PPC tcg seems to be failing migration tests quite regularly; > >> we believe this is TCG bugs in dirty bit updating; it's > >> not clear why PPC fails more but lets skip for the moment. > >> > >> $ ./tests/migration-test > >> /ppc64/migration/deprecated: OK > >> /ppc64/migration/bad_dest: SKIP > >> /ppc64/migration/postcopy/unix: SKIP > >> /ppc64/migration/precopy/unix: SKIP > > > > This patch seems to make the test fail in some setups: > > Specifically, it's the 'gtester' command in 'make check' > that makes the difference: > > e104462:xenial:ppc$ QTEST_QEMU_BINARY=ppc64-softmmu/qemu-system-ppc64 > tests/migration-test > /ppc64/migration/deprecated: OK > /ppc64/migration/bad_dest: SKIP > /ppc64/migration/postcopy/unix: SKIP > /ppc64/migration/precopy/unix: SKIP > e104462:xenial:ppc$ QTEST_QEMU_BINARY=ppc64-softmmu/qemu-system-ppc64 > gtester -k --verbose -m=quick tests/migration-test > TEST: tests/migration-test... (pid=23304) > /ppc64/migration/deprecated: OK > /ppc64/migration/bad_dest: FAIL > GTester: last random seed: R02Sa45f28859314d31ea4e89aeee4851d87 > /ppc64/migration/postcopy/unix: FAIL > GTester: last random seed: R02Sa45f28859314d31ea4e89aeee4851d87 > /ppc64/migration/precopy/unix: FAIL > GTester: last random seed: R02Sa45f28859314d31ea4e89aeee4851d87 > PASS: tests/migration-test > > This seems to be a bug in gtester: > https://bugzilla.gnome.org/show_bug.cgi?id=790934 Bah, and I liked that I was using a nice new gtk feature. > which I guess we need to work around -- the easy approach would be to just > call this a pass rather than a skip, I suppose. Yeh, I'll rework it. I'll include a printf saying we skipped it though just to remove any false feeling of warmth and reassurance of an OK. > I also note that in that bug report the glib folks say > "don't use gtester, it's not maintained", and recommend that > we switch to something else (a 'TAP harness', whatever that is)... https://testanything.org/ I think, but I don't know anything about it. Dave > > thanks > -- PMM -- Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
diff --git a/tests/migration-test.c b/tests/migration-test.c index 3a85446f95..d6da2dbd5a 100644 --- a/tests/migration-test.c +++ b/tests/migration-test.c @@ -360,7 +360,7 @@ static void migrate_start_postcopy(QTestState *who) qobject_unref(rsp); } -static void test_migrate_start(QTestState **from, QTestState **to, +static int test_migrate_start(QTestState **from, QTestState **to, const char *uri, bool hide_stderr) { gchar *cmd_src, *cmd_dst; @@ -385,9 +385,13 @@ static void test_migrate_start(QTestState **from, QTestState **to, accel, tmpfs, bootpath, uri); } else if (strcmp(arch, "ppc64") == 0) { - /* On ppc64, the test only works with kvm-hv, but not with kvm-pr */ + /* On ppc64, the test only works with kvm-hv, but not with kvm-pr + * and TCG is touchy due to race conditions on dirty bits + * (especially on PPC for some reason) + */ if (access("/sys/module/kvm_hv", F_OK)) { - accel = "tcg"; + g_test_skip("kvm_hv not available"); + return -1; } cmd_src = g_strdup_printf("-machine accel=%s -m 256M" " -name source,debug-threads=on" @@ -424,6 +428,7 @@ static void test_migrate_start(QTestState **from, QTestState **to, *to = qtest_init(cmd_dst); g_free(cmd_dst); + return 0; } static void test_migrate_end(QTestState *from, QTestState *to, bool test_dest) @@ -510,7 +515,9 @@ static void test_postcopy(void) char *uri = g_strdup_printf("unix:%s/migsocket", tmpfs); QTestState *from, *to; - test_migrate_start(&from, &to, uri, false); + if (test_migrate_start(&from, &to, uri, false)) { + return; + } migrate_set_capability(from, "postcopy-ram", "true"); migrate_set_capability(to, "postcopy-ram", "true"); @@ -556,7 +563,9 @@ static void test_baddest(void) const char *status; bool failed; - test_migrate_start(&from, &to, "tcp:0:0", true); + if (test_migrate_start(&from, &to, "tcp:0:0", true)) { + return; + } migrate(from, "tcp:0:0"); do { rsp = wait_command(from, "{ 'execute': 'query-migrate' }"); @@ -585,7 +594,9 @@ static void test_precopy_unix(void) char *uri = g_strdup_printf("unix:%s/migsocket", tmpfs); QTestState *from, *to; - test_migrate_start(&from, &to, uri, false); + if (test_migrate_start(&from, &to, uri, false)) { + return; + } /* We want to pick a speed slow enough that the test completes * quickly, but that it doesn't complete precopy even on a slow