[CRIU] [PATCHv3 14/30] page-xfer: dump compatible iovec

Pavel Emelyanov xemul at virtuozzo.com
Tue Jul 5 04:35:53 PDT 2016


>>> ========================== Run zdtm/static/env00 in h ==========================
>>> Start test
>>> ./env00 --pidfile=env00.pid --outfile=env00.out --envname=ENV_00_TEST
>>> Run criu pre-dump
>>> Run criu pre-dump
>>> Run criu dump
>>> Run criu restore
>>> =[log]=> dump/zdtm/static/env00/24/3/restore.log
>>> ------------------------ grep Error ------------------------
>>> (00.035223)     24: Error (mem.c:826): Page entry address 400000 outside of VMA 7fffddbcf000-7fffddbd1000
>>> (00.035323) Error (cr-restore.c:1885): Restoring FAILED.
>>> ------------------------ ERROR OVER ------------------------
>>> ################# Test zdtm/static/env00 FAIL at CRIU restore ##################
>>> ##################################### FAIL #####################################
>>>
>>> https://github.com/xemul/criu/issues/185
>>
>> The pagemap image for test becomes unsorted.
> 
> Yes, thanks, I have reproduced and also found image unsorted.
> Working on fix.


diff --git a/criu/page-xfer.c b/criu/page-xfer.c
index 8c2c799..967a587 100644
--- a/criu/page-xfer.c
+++ b/criu/page-xfer.c
@@ -370,7 +370,7 @@ int page_xfer_dump_pages(struct page_xfer *xfer, struct page_pipe *pp,
                                struct iovec hole = get_iov(pp->holes, cur_hole,
                                                pp->compat_iov);
 
-                               if (hole.iov_base < iov.iov_base)
+                               if (hole.iov_base >= iov.iov_base)
                                        break;
                                ret = page_xfer_dump_hole(xfer, &hole, off);
                                if (ret)

Is it just like this?

-- Pavel


More information about the CRIU mailing list