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
There are some locking issues in FawnKVFrontendHandler.cpp and Manager.cpp (according to TODOs in the code).
Also, chain_repair_mid almost certainly does not work properly. At some point we consolidated the put() and remove() functions to just use a put() + a boolean flag indicating if it's a remove(). The chain_repair code requires state maintenance of pending put requests, but it has not been updated to also include the remove flag as part of the state. Also, it appears the 'flush' boolean isn't being kept track of either (though this may be intentional). None of our standard tests test for this particular condition (it requires a flush/remove to be inserted at a precise time during chain repair).
The problem will likely manifest in a consistency error or in an empty object insertion instead of removal. The wrong flush flag will send an update to the temporary datastore and overwrite a new value with an old one, and the incorrect remove flag will try to insert an empty valued object instead of a 'remove()' request.
The text was updated successfully, but these errors were encountered:
There are some locking issues in FawnKVFrontendHandler.cpp and Manager.cpp (according to TODOs in the code).
Also, chain_repair_mid almost certainly does not work properly. At some point we consolidated the put() and remove() functions to just use a put() + a boolean flag indicating if it's a remove(). The chain_repair code requires state maintenance of pending put requests, but it has not been updated to also include the remove flag as part of the state. Also, it appears the 'flush' boolean isn't being kept track of either (though this may be intentional). None of our standard tests test for this particular condition (it requires a flush/remove to be inserted at a precise time during chain repair).
The problem will likely manifest in a consistency error or in an empty object insertion instead of removal. The wrong flush flag will send an update to the temporary datastore and overwrite a new value with an old one, and the incorrect remove flag will try to insert an empty valued object instead of a 'remove()' request.
The text was updated successfully, but these errors were encountered: