Description
When an existing document with XATTRS is replaced with a new value, we merge the XATTRs into the new value - see http://src.couchbase.org/source/xref/trunk/kv_engine/daemon/protocol/mcbp/mutation_context.cc#226-234
However, if the new value has been Snappy-compresed by the client, we fail to decompress it before merging with the XATTRs. The effect of this is the document is essentially corrupted; it's marked as datatype=Snappy|XATTR, but only the value is Snappy-compressed, not the whole XATTR+Value. As such it cannot be correctly read.
This as identified during testing of MB-28453, when updating test GetSetTest.TestReplaceWithXattr to support Snappy compression.