Hi,
I am currently working on developing a mochi service provider. The provider I developed works on tcp and sockets transport layer, but when I use sm transport, I get errors.
On the client side the handle is created as:
hret = margo_bulk_create(provider->client->mid, 1, (void**)(&data), &rdma_size,
HG_BULK_WRITE_ONLY, &in.handle);
On the server side the handle is created as
hret = margo_bulk_create(mid, 1, (void**)&buffer, &size,
HG_BULK_READ_ONLY, &bulk_handle);
The server fails on :
hret = margo_bulk_transfer(mid, HG_BULK_PUSH, info->addr, in.handle, 0,
bulk_handle, 0, size);
with following errors:
# NA -- Error -- /tmp/pradsubedi/spack-stage/spack-stage-mercury-master-6hruzald7l6bjf67o6nptv5inrqk2h3z/spack-src/src/na/na_sm.c:3741
# na_sm_put(): process_vm_writev() failed (Operation not permitted)
# HG -- Error -- /tmp/pradsubedi/spack-stage/spack-stage-mercury-master-6hruzald7l6bjf67o6nptv5inrqk2h3z/spack-src/src/mercury_bulk.c:829
# hg_bulk_transfer_pieces(): Could not transfer data (NA_PROTOCOL_ERROR)
# HG -- Error -- /tmp/pradsubedi/spack-stage/spack-stage-mercury-master-6hruzald7l6bjf67o6nptv5inrqk2h3z/spack-src/src/mercury_bulk.c:988
# hg_bulk_transfer(): Could not transfer data pieces
# HG -- Error -- /tmp/pradsubedi/spack-stage/spack-stage-mercury-master-6hruzald7l6bjf67o6nptv5inrqk2h3z/spack-src/src/mercury_bulk.c:1829
# HG_Bulk_transfer_id(): Could not start transfer of bulk data
Is this a known issue with shared memory transport for margo_bulk_transfer or should I be doing something different?
Thanks,
Pradeep Subedi