The reason of "pool version -6" libpmemobj
QUESTION:
Details
Hi, Recently i have a problem about using pmemobj_open(). It's failed and the error msg show "pool version -6 (library expects 6)" i check the msg and the err is in func util_header_check(), i wonder what really does this func want to check, especially the what does the variable "major" so i can confirm this problem and how can i avoid it under my next coding
Hi, while opening an existing pool we check if the info about pool (stored in its header) is compatible with the currently used PMDK version (a major). For example, we may update, in some PMDK versions, the pool structure, so we've bumped the pool version for a new PMDK release. It actually happened several times in the past, and we have a tool to convert the pool to a newer version (see pmdk-convert tool).
What's weird, in your case, you got -6, but we actually use only unsigned integers to store the version... so perhaps you have a corrupted pool file? Did you experiment somehow with that file? Did you change the PMDK version between using that pool file?
This issue seems inactive now, if you still have some questions, please re-open it.