pmem/pmdk

[Troubleshooting] "cannot read unsafe shutdown count of ..."

lplewa opened this issue · 2 comments

Error:

"cannot read unsafe shutdown count of ..."

Description:

Unsafe shutdown detection is a PMDK feature which detects pool corruption, caused by hardware failure.
This feature is turned on by default in PMDK 1.6 if it is compiled with NDCTL 63 or newer.

NDCTL 63+ requires kernel 5.0.4+/5.1+. If you encountered this issue please check if you have a correct kernel.

For development purposes you can disable unsafe shutdown detection during pool creation:

PMEMBLK_CONF="sds.at_create=0" pmempool create blk /path/to/poolset.file
or
PMEMLOG_CONF="sds.at_create=0" pmempool create log /path/to/poolset.file
or
PMEMOBJ_CONF="sds.at_create=0" pmempool create obj /path/to/poolset.file

or by pmem<obj/log/blk>_ctl_set API

const char path[] = "/path/to/poolset.file";

/* force-disable SDS feature during pool creation*/
int sds_write_value = 0;
pmemobj_ctl_set(NULL, "sds.at_create", &sds_write_value);

/* create pool and use it */
PMEMobjpool *pop = pmemobj_create(path, LAYOUT_NAME, POOL_SIZE, 0644);
/* ... */
pmemobj_close(pop);

Please see pmempool feature blog post for detailed information

Updated requirements: need kernel 5.0.4+ or 5.1+.

@kilobyte thanks, updated