[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [OSSTEST PATCH 4/4] ts-logs-capture: Run xenctx earlier



Break fetch_xenctx_guest out into its own function, and run it before
serial_fetch_logs.

This is relevant because serial_fetch_logs sends the Xen debug keys,
which might dislodge a stuck guest - and, if it does, we would like to
have captured the stuck state with xenctx, rather than the unstuck
one.

Signed-off-by: Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx>
---
 ts-logs-capture |   20 +++++++++++++-------
 1 file changed, 13 insertions(+), 7 deletions(-)

diff --git a/ts-logs-capture b/ts-logs-capture
index 7127675..04cb2fd 100755
--- a/ts-logs-capture
+++ b/ts-logs-capture
@@ -203,14 +203,9 @@ sub fetch_logs_host () {
         }
 }
 
-sub fetch_logs_guest ($) {
+sub fetch_xenctx_guest ($) {
     my ($gho) = @_;
-    my $gn = $gho->{Name};
-    logm("saving logs for $gn");
-
-    my $consolecmd= toolstack($ho)->consolecmd($gho);
-    try_cmd_output_save("sleep 1 | $consolecmd | cat",
-                        "guest-$gho->{Name}-console");
+    logm("collecting xenctx for $gho->{Name}");
 
     if (defined $gho->{Vcpus}) {
         foreach (my $vcpu=0; $vcpu < $gho->{Vcpus}; $vcpu++) {
@@ -224,6 +219,16 @@ sub fetch_logs_guest ($) {
                );
         }
     }
+}
+
+sub fetch_logs_guest ($) {
+    my ($gho) = @_;
+    my $gn = $gho->{Name};
+    logm("saving logs for $gn");
+
+    my $consolecmd= toolstack($ho)->consolecmd($gho);
+    try_cmd_output_save("sleep 1 | $consolecmd | cat",
+                        "guest-$gho->{Name}-console");
 
     if (!eval {
         my $vnc= guest_vncsnapshot_begin($ho,$gho);
@@ -235,6 +240,7 @@ sub fetch_logs_guest ($) {
 }
 
 find_guests();
+fetch_xenctx_guest($_) foreach @guests;
 serial_fetch_logs($ho);
 fetch_logs_host();
 fetch_logs_guest($_) foreach @guests;
-- 
1.7.10.4


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.