> code snips
> start ------------------------------------------------------------------------
> ----------------------
> int rc;
> struct ibv_send_wr bad_send_wr[3];
This should just be:
struct ibv_send_wr *bad_send_wr;
On a post error, the pointer will be set to the work request that failed.
> (gdb) p rdmaptr->wr[0].sg_list[0]
> $24 = {addr = 47966518199024, length = 512, lkey = 2684626508}
Check that your inline data size is 512.
> (gdb) p rdmaptr->wr[1].sg_list[0]
> $25 = {addr = 47966518134536, length = 8, lkey = 2684626508}
> (gdb) p rdmaptr->wr[2].sg_list[0]
> $26 = {addr = 47966518134512, length = 8, lkey = 2684626508}
> (gdb) p errno