[RedisManager] block inserting of too large docs into redis

This commit is contained in:
Jakob Ackermann 2021-05-06 17:19:23 +01:00
parent a4ae0ea12f
commit c707d0b345

View file

@ -72,6 +72,13 @@ module.exports = RedisManager = {
logger.error({ err: error, doc_id, docLines }, error.message) logger.error({ err: error, doc_id, docLines }, error.message)
return callback(error) return callback(error)
} }
// Do a cheap size check on the serialized blob.
if (docLines.length > Settings.max_doc_length) {
const docSize = docLines.length
const err = new Error('blocking doc insert into redis: doc is too large')
logger.error({ project_id, doc_id, err, docSize }, err.message)
return callback(err)
}
const docHash = RedisManager._computeHash(docLines) const docHash = RedisManager._computeHash(docLines)
// record bytes sent to redis // record bytes sent to redis
metrics.summary('redis.docLines', docLines.length, { status: 'set' }) metrics.summary('redis.docLines', docLines.length, { status: 'set' })