|
|
@@ -32,7 +32,9 @@ module.exports = RedisManager =
|
|
|
_callback(error)
|
|
|
docLines = JSON.stringify(docLines)
|
|
|
if docLines.indexOf("\u0000") != -1
|
|
|
- return callback(new Error("null bytes found in doc lines"))
|
|
|
+ error = new Error("null bytes found in doc lines")
|
|
|
+ logger.error err: error, doc_id: doc_id, docLines: docLines, error.message
|
|
|
+ return callback(error)
|
|
|
docHash = RedisManager._computeHash(docLines)
|
|
|
logger.log project_id:project_id, doc_id:doc_id, version: version, hash:docHash, "putting doc in redis"
|
|
|
ranges = RedisManager._serializeRanges(ranges)
|
|
|
@@ -150,12 +152,18 @@ module.exports = RedisManager =
|
|
|
error = new Error("Version mismatch. '#{doc_id}' is corrupted.")
|
|
|
logger.error {err: error, doc_id, currentVersion, newVersion, opsLength: appliedOps.length}, "version mismatch"
|
|
|
return callback(error)
|
|
|
+
|
|
|
jsonOps = appliedOps.map (op) -> JSON.stringify op
|
|
|
- multi = rclient.multi()
|
|
|
newDocLines = JSON.stringify(docLines)
|
|
|
if newDocLines.indexOf("\u0000") != -1
|
|
|
- return callback(new Error("null bytes found in doc lines"))
|
|
|
+ error = new Error("null bytes found in doc lines")
|
|
|
+ logger.error err: error, doc_id: doc_id, newDocLines: newDocLines, error.message
|
|
|
+ return callback(error)
|
|
|
newHash = RedisManager._computeHash(newDocLines)
|
|
|
+
|
|
|
+ logger.log doc_id: doc_id, version: newVersion, hash: newHash, "updating doc in redis"
|
|
|
+
|
|
|
+ multi = rclient.multi()
|
|
|
multi.eval setScript, 1, keys.docLines(doc_id:doc_id), newDocLines
|
|
|
multi.set keys.docVersion(doc_id:doc_id), newVersion
|
|
|
multi.set keys.docHash(doc_id:doc_id), newHash
|