Details
-
Bug
-
Resolution: Fixed
-
Critical
-
6.6.0
-
Triaged
-
1
-
Yes
-
KV Sprint 2020-June
Description
This is a regression that was introduced in MB-40126.
This Java 3.x code replicates:
String docId = docId();
|
|
coll.mutateIn(docId, Collections.singletonList(
|
upsert("foo", "bar").xattr() |
),
|
mutateInOptions().storeSemantics(StoreSemantics.INSERT));
|
|
LookupInResult result = coll.lookupIn(docId, Arrays.asList(
|
LookupInSpec.get("foo").xattr(), |
LookupInSpec.get("") |
));
|
|
assertTrue(result.exists(1)); |
|
This is a Sub-Document insertion (ADD flag) that's only touching XATTRs, it doesn't specify the body and leaves it at whatever the server defaults to.
It passes on 6.5.0-4908 but fails on 6.6.0-7857, on the last line.
So memcached used to create an empty JSON object as the body if none was specified, and now creates the document with a null body instead.
(This change does seem like an improvement to me, but sadly will break existing released transactional code when running on 6.6.)
Attachments
Issue Links
- is caused by
-
MB-40126 Subdoc CreateAsDeleted without any value path can result in non-empty value
- Closed