Details
-
Bug
-
Resolution: Fixed
-
Critical
-
5.0.0
-
None
-
Untriaged
-
Unknown
Description
The following sequence of operations should work, but the final GET fails.
- store(key1, <xattr_value>);
- delete(key1); <- system xattrs remain
- get_meta(key1)
- get(key1, GET_DELETED_VALUE) <- should return system xattrs, but fails with KEY_ENOENT
The issue is that the get_meta leaves a "temp deleted" StoredValue in the hash table for key1 and our get code enters a failure path for items in that state regardless of the GET_DELETED_VALUE option.
This impacts SubDoc (and mobile). SubDoc allows the retrieval of system xattrs for deleted documens and will unexpectedly fail if a sequence as above occurs.