Dec 17 23:38:30 ERROR [gway 5442] default_read_from_path(287) failed to read object 7c2b2500000000, path=/tmp/store/0/obj/007c2b2500000000, offset=0, size=4194304, result=-1, Invalid argument Dec 17 23:38:30 ERROR [gway 5442] err_to_sderr(115) oid=7c2b2500000000, Invalid argument Dec 17 23:38:30 ERROR [gway 5442] gateway_replication_read(294) local read 7c2b2500000000 failed, Network error between sheep
This bug is triggered when we start sheep with '-D' option (derectio) because request buffer isn't page aligned. Signed-off-by: Liu Yuan <[email protected]> --- sheep/gateway.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sheep/gateway.c b/sheep/gateway.c index 0806edd..c8a1e9d 100644 --- a/sheep/gateway.c +++ b/sheep/gateway.c @@ -57,7 +57,7 @@ static struct req_iter *prepare_replication_requests(struct request *req, */ static void *init_erasure_buffer(struct request *req, int buf_len) { - char *buf = xzalloc(buf_len); + char *buf = xvalloc(buf_len); uint32_t len = req->rq.data_length; uint64_t off = req->rq.obj.offset; uint64_t oid = req->rq.obj.oid; @@ -600,7 +600,7 @@ static int gateway_handle_cow(struct request *req) uint64_t oid = req->rq.obj.oid; size_t len = get_objsize(oid); struct sd_req hdr, *req_hdr = &req->rq; - char *buf = xmalloc(len); + char *buf = xvalloc(len); int ret; if (req->rq.data_length != len) { -- 1.7.9.5 -- sheepdog mailing list [email protected] http://lists.wpkg.org/mailman/listinfo/sheepdog
