You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
// Although our current implementation does not provide post-crash mechanism,
// the locks should be released after a crash (Please refer to the function clht_lock_initialization())
clht_lock_tlock;
Does this mean this is a known issue, or does clht_lock_initialization just need to be added to clht_create? I ask because it seems that clht_lock_initialization is called in other places, just not in the recovery procedure.
The text was updated successfully, but these errors were encountered:
Thanks for the report. We are providing the pmdk version for a reference implementation using pmemobj allocator, but it is not fully tested and has no implementations (such as lock initialization and garbage collection) yet we assumed in our paper. As you also see in my comments, it is a known implementation issue caused by the absence of one of the post-crash mechanisms (lock initialization) we assumed in our paper. clht_lock_initialization was presented as a reference implementation for initializing locks if someone wants to implement post-crash mechanisms. I agree those implementations are necessary to make it properly work for actual use, but I could not find time to work on them yet.
Thanks for the quick responses. I can also attempt to add a solution for this in the near future, but as I said in #18, I'll be slightly delayed by an upcoming deadline.
Bug
Exposed by crashing after acquiring a lock from
clht_put
.RECIPE/P-CLHT/include/clht_lb_res.h
Lines 306 to 312 in fc508dd
Steps to reproduce
The second execution should run indefinitely, waiting on acquiring the lock.
Comments
I see your comments here about locking assumptions:
RECIPE/P-CLHT/include/clht_lb_res.h
Lines 162 to 164 in fc508dd
Does this mean this is a known issue, or does
clht_lock_initialization
just need to be added toclht_create
? I ask because it seems thatclht_lock_initialization
is called in other places, just not in the recovery procedure.The text was updated successfully, but these errors were encountered: