Running pmdk/src/examples/librpmem/basic manually (after doing some chores setting up pool sets directory and descriptor, rpmemd log file, etc.) works fine when $PWD from where I invoke "basic" is pmdk/src/examples/librpmem/basic itself or any other second level subdirectory of pmdk/src. For example
pmdk/src/examples/librpmem> basic <test parameters>
or
pmdk/src/foo/foo> ../../examples/librpmem/basic <test parameters>
both work, while
pmdk/src/examples> librpmem/basic <test parameters>
fails on the remote end with the daemon error message
[rpmemd_obc.c:111] message and pool descriptor size mismatch
It also fails if it's invoked from a third level sub-subdirectory of pmdk, e.g.
pmdk/foo/foo/foo> ../../../src/examples/librpmem/basic <test parameters>
also fails.
Can someone please help, even if it's just an idea how to narrow it down further.
P.S. I didn't, of course, just mess with running this example from various places. I was trying to call rpmem_create from within my own code and narrowed things down to the above phenomena.