xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/2 v2] tools/libxc: various errno changes
@ 2014-03-11  9:30 ` Olaf Hering
  2014-03-11  9:30   ` [PATCH 1/2] tools/xc: preserve errno in ERROR and DRINTF macros Olaf Hering
  2014-03-11  9:30   ` [PATCH 2/2] tools/xc: pass errno to callers of xc_domain_save Olaf Hering
  0 siblings, 2 replies; 8+ messages in thread
From: Olaf Hering @ 2014-03-11  9:30 UTC (permalink / raw)
  To: xen-devel; +Cc: Olaf Hering, Ian.Jackson, Ian.Campbell

Some changes related to pass errno to callers of xc_domain_save.
Compile and runtime tested with my migration constraint changes.

v2:
 - update name of temporary in macros
 - use assert to catch missing errno assignment

Olaf Hering (2):
  tools/xc: preserve errno in ERROR and DRINTF macros
  tools/xc: pass errno to callers of xc_domain_save

 tools/libxc/xc_domain_save.c | 38 ++++++++++++++++++++++++++------------
 tools/libxc/xc_private.h     | 29 ++++++++++++++++++++++-------
 2 files changed, 48 insertions(+), 19 deletions(-)

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH 1/2] tools/xc: preserve errno in ERROR and DRINTF macros
  2014-03-11  9:30 ` [PATCH 0/2 v2] tools/libxc: various errno changes Olaf Hering
@ 2014-03-11  9:30   ` Olaf Hering
  2014-03-11  9:30   ` [PATCH 2/2] tools/xc: pass errno to callers of xc_domain_save Olaf Hering
  1 sibling, 0 replies; 8+ messages in thread
From: Olaf Hering @ 2014-03-11  9:30 UTC (permalink / raw)
  To: xen-devel; +Cc: Olaf Hering, Ian.Jackson, Ian.Campbell

This simplifies a changes made in a follow-up patch.

v2:
 use PERROR_errno instead of __errno for temporary variable

Signed-off-by: Olaf Hering <olaf@aepfle.de>
---
 tools/libxc/xc_private.h | 29 ++++++++++++++++++++++-------
 1 file changed, 22 insertions(+), 7 deletions(-)

diff --git a/tools/libxc/xc_private.h b/tools/libxc/xc_private.h
index a610f0c..bd2eb86 100644
--- a/tools/libxc/xc_private.h
+++ b/tools/libxc/xc_private.h
@@ -119,13 +119,28 @@ void xc_report_progress_step(xc_interface *xch,
 
 /* anamorphic macros:  struct xc_interface *xch  must be in scope */
 
-#define IPRINTF(_f, _a...) xc_report(xch, xch->error_handler, XTL_INFO,0, _f , ## _a)
-#define DPRINTF(_f, _a...) xc_report(xch, xch->error_handler, XTL_DETAIL,0, _f , ## _a)
-#define DBGPRINTF(_f, _a...) xc_report(xch, xch->error_handler, XTL_DEBUG,0, _f , ## _a)
-
-#define ERROR(_m, _a...)  xc_report_error(xch,XC_INTERNAL_ERROR,_m , ## _a )
-#define PERROR(_m, _a...) xc_report_error(xch,XC_INTERNAL_ERROR,_m \
-                  " (%d = %s)", ## _a , errno, xc_strerror(xch, errno))
+#define IPRINTF(_f, _a...)  do { int IPRINTF_errno = errno; \
+        xc_report(xch, xch->error_handler, XTL_INFO,0, _f , ## _a); \
+        errno = IPRINTF_errno; \
+        } while (0)
+#define DPRINTF(_f, _a...) do { int DPRINTF_errno = errno; \
+        xc_report(xch, xch->error_handler, XTL_DETAIL,0, _f , ## _a); \
+        errno = DPRINTF_errno; \
+        } while (0)
+#define DBGPRINTF(_f, _a...)  do { int DBGPRINTF_errno = errno; \
+        xc_report(xch, xch->error_handler, XTL_DEBUG,0, _f , ## _a); \
+        errno = DBGPRINTF_errno; \
+        } while (0)
+
+#define ERROR(_m, _a...)  do { int ERROR_errno = errno; \
+        xc_report_error(xch,XC_INTERNAL_ERROR,_m , ## _a ); \
+        errno = ERROR_errno; \
+        } while (0)
+#define PERROR(_m, _a...) do { int PERROR_errno = errno; \
+        xc_report_error(xch,XC_INTERNAL_ERROR,_m " (%d = %s)", \
+        ## _a , errno, xc_strerror(xch, errno)); \
+        errno = PERROR_errno; \
+        } while (0)
 
 /*
  * HYPERCALL ARGUMENT BUFFERS

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 2/2] tools/xc: pass errno to callers of xc_domain_save
  2014-03-11  9:30 ` [PATCH 0/2 v2] tools/libxc: various errno changes Olaf Hering
  2014-03-11  9:30   ` [PATCH 1/2] tools/xc: preserve errno in ERROR and DRINTF macros Olaf Hering
@ 2014-03-11  9:30   ` Olaf Hering
  2014-03-11 11:37     ` Ian Jackson
  2014-03-13 17:10     ` [PATCH 2/2] tools/xc: pass errno to callers of xc_domain_save [and 1 more messages] Ian Jackson
  1 sibling, 2 replies; 8+ messages in thread
From: Olaf Hering @ 2014-03-11  9:30 UTC (permalink / raw)
  To: xen-devel; +Cc: Olaf Hering, Ian.Jackson, Ian.Campbell

Callers of xc_domain_save use errno to print diagnostics if the call
fails. But xc_domain_save does not preserve the actual errno in case of
a failure.

This change preserves errno in all cases where code jumps to the label
"out". In addition a new label "exit" is added to catch also code which
used to do just "return 1".

Now libxl_save_helper:complete can print the actual error string.

v3:
- add assert to catch code paths which do not set errno
v2:
- preserve errno during inital jump to label "out"
- use errno as success indicator

Signed-off-by: Olaf Hering <olaf@aepfle.de>
---
 tools/libxc/xc_domain_save.c | 38 ++++++++++++++++++++++++++------------
 1 file changed, 26 insertions(+), 12 deletions(-)

diff --git a/tools/libxc/xc_domain_save.c b/tools/libxc/xc_domain_save.c
index 42c4752..9f96bb7 100644
--- a/tools/libxc/xc_domain_save.c
+++ b/tools/libxc/xc_domain_save.c
@@ -25,6 +25,7 @@
 #include <stdlib.h>
 #include <unistd.h>
 #include <sys/time.h>
+#include <assert.h>
 
 #include "xc_private.h"
 #include "xc_bitops.h"
@@ -150,6 +151,7 @@ static inline int outbuf_write(xc_interface *xch,
                                struct outbuf* ob, void* buf, size_t len)
 {
     if ( len > ob->size - ob->pos ) {
+        errno = ERANGE;
         DBGPRINTF("outbuf_write: %zu > %zu@%zu\n", len, ob->size - ob->pos, ob->pos);
         return -1;
     }
@@ -806,7 +808,7 @@ int xc_domain_save(xc_interface *xch, int io_fd, uint32_t dom, uint32_t max_iter
     xc_dominfo_t info;
     DECLARE_DOMCTL;
 
-    int rc = 1, frc, i, j, last_iter = 0, iter = 0;
+    int rc, frc, i, j, last_iter = 0, iter = 0;
     int live  = (flags & XCFLAGS_LIVE);
     int debug = (flags & XCFLAGS_DEBUG);
     int superpages = !!hvm;
@@ -899,7 +901,7 @@ int xc_domain_save(xc_interface *xch, int io_fd, uint32_t dom, uint32_t max_iter
     {
         ERROR("No switch_qemu_logdirty callback provided.");
         errno = EINVAL;
-        return 1;
+        goto exit;
     }
 
     outbuf_init(xch, &ob_pagebuf, OUTBUF_SIZE);
@@ -914,13 +916,13 @@ int xc_domain_save(xc_interface *xch, int io_fd, uint32_t dom, uint32_t max_iter
                             &ctx->max_mfn, &ctx->hvirt_start, &ctx->pt_levels, &dinfo->guest_width) )
     {
         ERROR("Unable to get platform info.");
-        return 1;
+        goto exit;
     }
 
     if ( xc_domain_getinfo(xch, dom, 1, &info) != 1 )
     {
         PERROR("Could not get domain info");
-        return 1;
+        goto exit;
     }
 
     shared_info_frame = info.shared_info_frame;
@@ -942,6 +944,7 @@ int xc_domain_save(xc_interface *xch, int io_fd, uint32_t dom, uint32_t max_iter
 
     if ( dinfo->p2m_size > ~XEN_DOMCTL_PFINFO_LTAB_MASK )
     {
+        errno = E2BIG;
         ERROR("Cannot save this big a guest");
         goto out;
     }
@@ -1012,6 +1015,7 @@ int xc_domain_save(xc_interface *xch, int io_fd, uint32_t dom, uint32_t max_iter
 
     if ( !to_send || !to_fix || !to_skip )
     {
+        errno = ENOMEM;
         ERROR("Couldn't allocate to_send array");
         goto out;
     }
@@ -1030,6 +1034,7 @@ int xc_domain_save(xc_interface *xch, int io_fd, uint32_t dom, uint32_t max_iter
         hvm_buf = malloc(hvm_buf_size);
         if ( !hvm_buf )
         {
+            errno = ENOMEM;
             ERROR("Couldn't allocate memory");
             goto out;
         }
@@ -1598,6 +1603,7 @@ int xc_domain_save(xc_interface *xch, int io_fd, uint32_t dom, uint32_t max_iter
 
         if ( info.max_vcpu_id >= XC_SR_MAX_VCPUS )
         {
+            errno = E2BIG;
             ERROR("Too many VCPUS in guest!");
             goto out;
         }
@@ -1830,7 +1836,7 @@ int xc_domain_save(xc_interface *xch, int io_fd, uint32_t dom, uint32_t max_iter
         }
         
         /* HVM guests are done now */
-        rc = 0;
+        errno = 0;
         goto out;
     }
 
@@ -1888,6 +1894,7 @@ int xc_domain_save(xc_interface *xch, int io_fd, uint32_t dom, uint32_t max_iter
     mfn = GET_FIELD(&ctxt, user_regs.edx);
     if ( !MFN_IS_IN_PSEUDOPHYS_MAP(mfn) )
     {
+        errno = ERANGE;
         ERROR("Suspend record is not in range of pseudophys map");
         goto out;
     }
@@ -1910,6 +1917,7 @@ int xc_domain_save(xc_interface *xch, int io_fd, uint32_t dom, uint32_t max_iter
             mfn = GET_FIELD(&ctxt, gdt_frames[j]);
             if ( !MFN_IS_IN_PSEUDOPHYS_MAP(mfn) )
             {
+                errno = ERANGE;
                 ERROR("GDT frame is not in range of pseudophys map");
                 goto out;
             }
@@ -1920,6 +1928,7 @@ int xc_domain_save(xc_interface *xch, int io_fd, uint32_t dom, uint32_t max_iter
         if ( !MFN_IS_IN_PSEUDOPHYS_MAP(UNFOLD_CR3(
                                            GET_FIELD(&ctxt, ctrlreg[3]))) )
         {
+            errno = ERANGE;
             ERROR("PT base is not in range of pseudophys map");
             goto out;
         }
@@ -1931,6 +1940,7 @@ int xc_domain_save(xc_interface *xch, int io_fd, uint32_t dom, uint32_t max_iter
         {
             if ( !MFN_IS_IN_PSEUDOPHYS_MAP(UNFOLD_CR3(ctxt.x64.ctrlreg[1])) )
             {
+                errno = ERANGE;
                 ERROR("PT base is not in range of pseudophys map");
                 goto out;
             }
@@ -2027,9 +2037,13 @@ int xc_domain_save(xc_interface *xch, int io_fd, uint32_t dom, uint32_t max_iter
     }
 
     /* Success! */
-    rc = 0;
+    rc = errno = 0;
+    goto out_rc;
 
  out:
+    rc = errno;
+    assert(rc);
+ out_rc:
     completed = 1;
 
     if ( !rc && callbacks->postcopy )
@@ -2044,13 +2058,11 @@ int xc_domain_save(xc_interface *xch, int io_fd, uint32_t dom, uint32_t max_iter
         if (wrcompressed(io_fd) < 0)
         {
             ERROR("Error when writing compressed data, after postcopy\n");
-            rc = 1;
             goto out;
         }
         /* Append the tailbuf data to the main outbuf */
         if ( wrexact(io_fd, ob_tailbuf.buf, ob_tailbuf.pos) )
         {
-            rc = 1;
             PERROR("Error when copying tailbuf into outbuf");
             goto out;
         }
@@ -2059,7 +2071,8 @@ int xc_domain_save(xc_interface *xch, int io_fd, uint32_t dom, uint32_t max_iter
     /* Flush last write and discard cache for file. */
     if ( ob && outbuf_flush(xch, ob, io_fd) < 0 ) {
         PERROR("Error when flushing output buffer");
-        rc = 1;
+        if (!rc)
+            rc = errno;
     }
 
     discard_file_cache(xch, io_fd, 1 /* flush */);
@@ -2074,7 +2087,6 @@ int xc_domain_save(xc_interface *xch, int io_fd, uint32_t dom, uint32_t max_iter
         /* reset stats timer */
         print_stats(xch, dom, 0, &time_stats, &shadow_stats, 0);
 
-        rc = 1;
         /* last_iter = 1; */
         if ( suspend_and_state(callbacks->suspend, callbacks->data, xch,
                                io_fd, dom, &info) )
@@ -2130,9 +2142,11 @@ int xc_domain_save(xc_interface *xch, int io_fd, uint32_t dom, uint32_t max_iter
     free(hvm_buf);
     outbuf_free(&ob_pagebuf);
 
-    DPRINTF("Save exit of domid %u with rc=%d\n", dom, rc);
+    errno = rc;
+exit:
+    DPRINTF("Save exit of domid %u with errno=%d\n", dom, errno);
 
-    return !!rc;
+    return !!errno;
 }
 
 /*

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH 2/2] tools/xc: pass errno to callers of xc_domain_save
  2014-03-11  9:30   ` [PATCH 2/2] tools/xc: pass errno to callers of xc_domain_save Olaf Hering
@ 2014-03-11 11:37     ` Ian Jackson
  2014-03-13 17:10     ` [PATCH 2/2] tools/xc: pass errno to callers of xc_domain_save [and 1 more messages] Ian Jackson
  1 sibling, 0 replies; 8+ messages in thread
From: Ian Jackson @ 2014-03-11 11:37 UTC (permalink / raw)
  To: Olaf Hering; +Cc: Ian.Campbell, xen-devel

Olaf Hering writes ("[PATCH 2/2] tools/xc: pass errno to callers of xc_domain_save"):
> Callers of xc_domain_save use errno to print diagnostics if the call
> fails. But xc_domain_save does not preserve the actual errno in case of
> a failure.
> 
> This change preserves errno in all cases where code jumps to the label
> "out". In addition a new label "exit" is added to catch also code which
> used to do just "return 1".
> 
> Now libxl_save_helper:complete can print the actual error string.

Thanks, acked and committed both of these.

Ian.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [xen-unstable test] 25406: regressions - FAIL
@ 2014-03-13 16:48 xen.org
  2014-03-11  9:30 ` [PATCH 0/2 v2] tools/libxc: various errno changes Olaf Hering
  0 siblings, 1 reply; 8+ messages in thread
From: xen.org @ 2014-03-13 16:48 UTC (permalink / raw)
  To: xen-devel; +Cc: ian.jackson

[-- Attachment #1: Type: text/plain, Size: 6367 bytes --]

flight 25406 xen-unstable real [real]
http://www.chiark.greenend.org.uk/~xensrcts/logs/25406/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-amd64-i386-freebsd10-amd64 10 guest-saverestore      fail REGR. vs. 25400
 test-amd64-i386-freebsd10-i386 10 guest-saverestore       fail REGR. vs. 25400
 test-amd64-i386-xend-qemut-winxpsp3  9 guest-saverestore  fail REGR. vs. 25400
 test-amd64-i386-xl-qemut-winxpsp3-vcpus1 9 guest-saverestore fail REGR. vs. 25400
 test-amd64-i386-xend-winxpsp3  9 guest-saverestore        fail REGR. vs. 25400
 test-amd64-i386-xl-qemuu-winxpsp3-vcpus1 9 guest-saverestore fail REGR. vs. 25400
 test-amd64-i386-xl-winxpsp3-vcpus1  9 guest-saverestore   fail REGR. vs. 25400
 test-amd64-amd64-xl-qemuu-win7-amd64  9 guest-saverestore fail REGR. vs. 25400
 test-amd64-amd64-xl-qemuu-winxpsp3  9 guest-saverestore   fail REGR. vs. 25400
 test-amd64-i386-xl-qemut-win7-amd64  9 guest-saverestore  fail REGR. vs. 25400
 test-amd64-i386-xl-win7-amd64  9 guest-saverestore        fail REGR. vs. 25400
 test-amd64-amd64-xl-qemut-winxpsp3  9 guest-saverestore   fail REGR. vs. 25400
 test-amd64-amd64-xl-winxpsp3  9 guest-saverestore         fail REGR. vs. 25400
 test-amd64-amd64-xl-qemut-win7-amd64  9 guest-saverestore fail REGR. vs. 25400
 test-amd64-i386-xl-qemuu-win7-amd64  9 guest-saverestore  fail REGR. vs. 25396
 test-amd64-amd64-xl-win7-amd64  9 guest-saverestore       fail REGR. vs. 25400

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-xl          10 migrate-support-check        fail   never pass
 test-amd64-amd64-xl-pcipt-intel  9 guest-start                 fail never pass

version targeted for testing:
 xen                  6e0f51c60487d74495aaba03728040050b6d885d
baseline version:
 xen                  dd2ef9d50d89c49e57d68318422b4ed2c2d426d5

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>
  Aravind Gopalakrishnan <Aravind.Gopalakrishnan@amd.com>
  Chen Baozi <baozich@gmail.com>
  David Vrabel <david.vrabel@citrix.com>
  Don Slutz <dslutz@verizon.com>
  George Dunlap <george.dunlap@eu.citrix.com>
  Ian Campbell <ian.campbell@citrix.com>
  Ian Jackson <ian.jackson@eu.citrix.com>
  Jan Beulich <jbeulich@suse.com>
  Joby Poriyath <joby.poriyath@citrix.com>
  Julien Grall <julien.grall@linaro.org>
  Keir Fraser <keir@xen.org>
  Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
  Matthew Daley <mattd@bugfuzz.com>
  Mukesh Rathor <mukesh.rathor@oracle.com>
  Olaf Hering <olaf@aepfle.de>
  Roger Pau Monné <roger.pau@citrix.com>
  Stefano Stabellini <stefano.stabellini@eu.citrix.com>
  Wei Liu <wei.liu2@citrix.com>
------------------------------------------------------------

jobs:
 build-amd64-xend                                             pass    
 build-i386-xend                                              pass    
 build-amd64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-oldkern                                          pass    
 build-i386-oldkern                                           pass    
 build-amd64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-i386-rhel6hvm-amd                                 pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-i386-freebsd10-amd64                              fail    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-win7-amd64                               fail    
 test-amd64-i386-xl-win7-amd64                                fail    
 test-amd64-i386-xl-credit2                                   pass    
 test-amd64-i386-freebsd10-i386                               fail    
 test-amd64-amd64-xl-pcipt-intel                              fail    
 test-amd64-i386-rhel6hvm-intel                               pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-i386-xl-multivcpu                                 pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-xl-sedf-pin                                 pass    
 test-amd64-amd64-pv                                          pass    
 test-amd64-i386-pv                                           pass    
 test-amd64-amd64-xl-sedf                                     pass    
 test-amd64-i386-xl-qemut-winxpsp3-vcpus1                     fail    
 test-amd64-i386-xl-qemuu-winxpsp3-vcpus1                     fail    
 test-amd64-i386-xl-winxpsp3-vcpus1                           fail    
 test-amd64-i386-xend-qemut-winxpsp3                          fail    
 test-amd64-amd64-xl-qemut-winxpsp3                           fail    
 test-amd64-amd64-xl-qemuu-winxpsp3                           fail    
 test-amd64-i386-xend-winxpsp3                                fail    
 test-amd64-amd64-xl-winxpsp3                                 fail    


------------------------------------------------------------
sg-report-flight on osstest.cam.xci-test.com
logs: /home/xc_osstest/logs
images: /home/xc_osstest/images

Logs, config files, etc. are available at
    http://www.chiark.greenend.org.uk/~xensrcts/logs

Test harness code can be found at
    http://xenbits.xensource.com/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 529 lines long.)


[-- Attachment #2: Type: text/plain, Size: 126 bytes --]

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

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 2/2] tools/xc: pass errno to callers of xc_domain_save [and 1 more messages]
  2014-03-11  9:30   ` [PATCH 2/2] tools/xc: pass errno to callers of xc_domain_save Olaf Hering
  2014-03-11 11:37     ` Ian Jackson
@ 2014-03-13 17:10     ` Ian Jackson
  2014-03-13 17:23       ` Olaf Hering
  1 sibling, 1 reply; 8+ messages in thread
From: Ian Jackson @ 2014-03-13 17:10 UTC (permalink / raw)
  To: Olaf Hering; +Cc: xen-devel, Ian.Campbell, xen-devel

Olaf Hering writes ("[PATCH 2/2] tools/xc: pass errno to callers of xc_domain_save"):
> Callers of xc_domain_save use errno to print diagnostics if the call
> fails. But xc_domain_save does not preserve the actual errno in case of
> a failure.

I think this patch is responsible for this regresssion:

xen.org writes ("[xen-unstable test] 25406: regressions - FAIL"):
> Tests which did not succeed and are blocking,
> including tests which could not be run:
>  test-amd64-i386-freebsd10-amd64 10 guest-saverestore  fail REGR. vs. 25400

libxl-save-helper: xc_domain_save.c:2045: xc_domain_save: Assertion `rc' failed.
libxl: error: libxl_utils.c:396:libxl_read_exactly: file/stream truncated reading ipc msg header from domain 1 save/restore helper stdout pipe
libxl: error: libxl_exec.c:129:libxl_report_child_exitstatus: domain 1 save/restore helper [-1] died due to fatal signal Aborted

I think this demonstrates the value of including that assertion :-).

Olaf, are you able to investigate this and fix it ?  The pattern of
failures suggests it's an HVM-only problem.  See the full test report
for flight 25406 for more info.

Thanks,
Ian.

From: xen.org <Ian.Jackson@eu.citrix.com>
To: <xen-devel@lists.xensource.com>
CC: <ian.jackson@eu.citrix.com>
Subject: [xen-unstable test] 25406: regressions - FAIL
Date: Thu, 13 Mar 2014 16:48:48 +0000

flight 25406 xen-unstable real [real]
http://www.chiark.greenend.org.uk/~xensrcts/logs/25406/

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-amd64-i386-freebsd10-amd64 10 guest-saverestore      fail REGR. vs. 25400
 test-amd64-i386-freebsd10-i386 10 guest-saverestore       fail REGR. vs. 25400
 test-amd64-i386-xend-qemut-winxpsp3  9 guest-saverestore  fail REGR. vs. 25400
 test-amd64-i386-xl-qemut-winxpsp3-vcpus1 9 guest-saverestore fail REGR. vs. 25400
 test-amd64-i386-xend-winxpsp3  9 guest-saverestore        fail REGR. vs. 25400
 test-amd64-i386-xl-qemuu-winxpsp3-vcpus1 9 guest-saverestore fail REGR. vs. 25400
 test-amd64-i386-xl-winxpsp3-vcpus1  9 guest-saverestore   fail REGR. vs. 25400
 test-amd64-amd64-xl-qemuu-win7-amd64  9 guest-saverestore fail REGR. vs. 25400
 test-amd64-amd64-xl-qemuu-winxpsp3  9 guest-saverestore   fail REGR. vs. 25400
 test-amd64-i386-xl-qemut-win7-amd64  9 guest-saverestore  fail REGR. vs. 25400
 test-amd64-i386-xl-win7-amd64  9 guest-saverestore        fail REGR. vs. 25400
 test-amd64-amd64-xl-qemut-winxpsp3  9 guest-saverestore   fail REGR. vs. 25400
 test-amd64-amd64-xl-winxpsp3  9 guest-saverestore         fail REGR. vs. 25400
 test-amd64-amd64-xl-qemut-win7-amd64  9 guest-saverestore fail REGR. vs. 25400
 test-amd64-i386-xl-qemuu-win7-amd64  9 guest-saverestore  fail REGR. vs. 25396
 test-amd64-amd64-xl-win7-amd64  9 guest-saverestore       fail REGR. vs. 25400

Tests which did not succeed, but are not blocking:
 test-armhf-armhf-xl          10 migrate-support-check        fail   never pass
 test-amd64-amd64-xl-pcipt-intel  9 guest-start                 fail never pass

version targeted for testing:
 xen                  6e0f51c60487d74495aaba03728040050b6d885d
baseline version:
 xen                  dd2ef9d50d89c49e57d68318422b4ed2c2d426d5

------------------------------------------------------------
People who touched revisions under test:
  Andrew Cooper <andrew.cooper3@citrix.com>
  Aravind Gopalakrishnan <Aravind.Gopalakrishnan@amd.com>
  Chen Baozi <baozich@gmail.com>
  David Vrabel <david.vrabel@citrix.com>
  Don Slutz <dslutz@verizon.com>
  George Dunlap <george.dunlap@eu.citrix.com>
  Ian Campbell <ian.campbell@citrix.com>
  Ian Jackson <ian.jackson@eu.citrix.com>
  Jan Beulich <jbeulich@suse.com>
  Joby Poriyath <joby.poriyath@citrix.com>
  Julien Grall <julien.grall@linaro.org>
  Keir Fraser <keir@xen.org>
  Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
  Matthew Daley <mattd@bugfuzz.com>
  Mukesh Rathor <mukesh.rathor@oracle.com>
  Olaf Hering <olaf@aepfle.de>
  Roger Pau Monné <roger.pau@citrix.com>
  Stefano Stabellini <stefano.stabellini@eu.citrix.com>
  Wei Liu <wei.liu2@citrix.com>
------------------------------------------------------------

jobs:
 build-amd64-xend                                             pass    
 build-i386-xend                                              pass    
 build-amd64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-oldkern                                          pass    
 build-i386-oldkern                                           pass    
 build-amd64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-amd64-amd64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-i386-rhel6hvm-amd                                 pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-i386-freebsd10-amd64                              fail    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-win7-amd64                               fail    
 test-amd64-i386-xl-win7-amd64                                fail    
 test-amd64-i386-xl-credit2                                   pass    
 test-amd64-i386-freebsd10-i386                               fail    
 test-amd64-amd64-xl-pcipt-intel                              fail    
 test-amd64-i386-rhel6hvm-intel                               pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-i386-xl-multivcpu                                 pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-xl-sedf-pin                                 pass    
 test-amd64-amd64-pv                                          pass    
 test-amd64-i386-pv                                           pass    
 test-amd64-amd64-xl-sedf                                     pass    
 test-amd64-i386-xl-qemut-winxpsp3-vcpus1                     fail    
 test-amd64-i386-xl-qemuu-winxpsp3-vcpus1                     fail    
 test-amd64-i386-xl-winxpsp3-vcpus1                           fail    
 test-amd64-i386-xend-qemut-winxpsp3                          fail    
 test-amd64-amd64-xl-qemut-winxpsp3                           fail    
 test-amd64-amd64-xl-qemuu-winxpsp3                           fail    
 test-amd64-i386-xend-winxpsp3                                fail    
 test-amd64-amd64-xl-winxpsp3                                 fail    


------------------------------------------------------------
sg-report-flight on osstest.cam.xci-test.com
logs: /home/xc_osstest/logs
images: /home/xc_osstest/images

Logs, config files, etc. are available at
    http://www.chiark.greenend.org.uk/~xensrcts/logs

Test harness code can be found at
    http://xenbits.xensource.com/gitweb?p=osstest.git;a=summary


Not pushing.

(No revision log; it would be 529 lines long.)

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

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 2/2] tools/xc: pass errno to callers of xc_domain_save [and 1 more messages]
  2014-03-13 17:10     ` [PATCH 2/2] tools/xc: pass errno to callers of xc_domain_save [and 1 more messages] Ian Jackson
@ 2014-03-13 17:23       ` Olaf Hering
  2014-03-13 17:36         ` Ian Campbell
  0 siblings, 1 reply; 8+ messages in thread
From: Olaf Hering @ 2014-03-13 17:23 UTC (permalink / raw)
  To: Ian Jackson; +Cc: Ian.Campbell, xen-devel

On Thu, Mar 13, Ian Jackson wrote:

> libxl-save-helper: xc_domain_save.c:2045: xc_domain_save: Assertion `rc' failed.
> libxl: error: libxl_utils.c:396:libxl_read_exactly: file/stream truncated reading ipc msg header from domain 1 save/restore helper stdout pipe
> libxl: error: libxl_exec.c:129:libxl_report_child_exitstatus: domain 1 save/restore helper [-1] died due to fatal signal Aborted
> 
> I think this demonstrates the value of including that assertion :-).

1838         /* HVM guests are done now */
1839         errno = 0;
1840         goto out;

I think that has to be out_rc.

Olaf

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 2/2] tools/xc: pass errno to callers of xc_domain_save [and 1 more messages]
  2014-03-13 17:23       ` Olaf Hering
@ 2014-03-13 17:36         ` Ian Campbell
  0 siblings, 0 replies; 8+ messages in thread
From: Ian Campbell @ 2014-03-13 17:36 UTC (permalink / raw)
  To: Olaf Hering; +Cc: Ian Jackson, xen-devel

On Thu, 2014-03-13 at 18:23 +0100, Olaf Hering wrote:
> On Thu, Mar 13, Ian Jackson wrote:
> 
> > libxl-save-helper: xc_domain_save.c:2045: xc_domain_save: Assertion `rc' failed.
> > libxl: error: libxl_utils.c:396:libxl_read_exactly: file/stream truncated reading ipc msg header from domain 1 save/restore helper stdout pipe
> > libxl: error: libxl_exec.c:129:libxl_report_child_exitstatus: domain 1 save/restore helper [-1] died due to fatal signal Aborted
> > 
> > I think this demonstrates the value of including that assertion :-).
> 
> 1838         /* HVM guests are done now */
> 1839         errno = 0;
> 1840         goto out;
> 
> I think that has to be out_rc.

Me too, please can you send a fixup patch.

Thanks,
Ian.

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2014-03-13 17:36 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-03-13 16:48 [xen-unstable test] 25406: regressions - FAIL xen.org
2014-03-11  9:30 ` [PATCH 0/2 v2] tools/libxc: various errno changes Olaf Hering
2014-03-11  9:30   ` [PATCH 1/2] tools/xc: preserve errno in ERROR and DRINTF macros Olaf Hering
2014-03-11  9:30   ` [PATCH 2/2] tools/xc: pass errno to callers of xc_domain_save Olaf Hering
2014-03-11 11:37     ` Ian Jackson
2014-03-13 17:10     ` [PATCH 2/2] tools/xc: pass errno to callers of xc_domain_save [and 1 more messages] Ian Jackson
2014-03-13 17:23       ` Olaf Hering
2014-03-13 17:36         ` Ian Campbell

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).