[CRIU] [PATCH] phaul: use relative path for parent link
Jacob Wen
jian.w.wen at oracle.com
Mon Nov 20 11:03:43 MSK 2017
Absolute paths for parent links may not work on restore.
e.g: restore on a different server(during migration).
See https://github.com/checkpoint-restore/criu/blob/criu-2.x-stable/criu/image.c#L432
Signed-off-by: Jacob Wen <jian.w.wen at oracle.com>
---
phaul/src/phaul/server.go | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/phaul/src/phaul/server.go b/phaul/src/phaul/server.go
index 0994fb9..7449e63 100644
--- a/phaul/src/phaul/server.go
+++ b/phaul/src/phaul/server.go
@@ -7,6 +7,7 @@ import (
"github.com/golang/protobuf/proto"
"github.com/checkpoint-restore/criu/lib/go/src/criu"
"github.com/checkpoint-restore/criu/lib/go/src/rpc"
+ "path/filepath"
)
type PhaulServer struct {
@@ -54,7 +55,15 @@ func (s *PhaulServer) StartIter() error {
opts.ImagesDirFd = proto.Int32(int32(img_dir.Fd()))
if prev_p != "" {
- opts.ParentImg = proto.String(prev_p)
+ p, err := filepath.Abs(img_dir.Name())
+ if err != nil {
+ return err
+ }
+ rel, err := filepath.Rel(p, prev_p)
+ if err != nil {
+ return err
+ }
+ opts.ParentImg = proto.String(rel)
}
pid, _, err := s.cr.StartPageServerChld(opts)
--
2.7.4
More information about the CRIU
mailing list