From b0e9c6e127a9df4ba652d0752391db71def2a804 Mon Sep 17 00:00:00 2001 From: Joffrey JAFFEUX <j.jaffeux@gmail.com> Date: Wed, 5 May 2021 12:18:25 +0200 Subject: [PATCH] FIX: limit visible revisions history to last 100 (#12946) This is done to prevent spike memory usage when the number of revisions is very large (thousands) and the post has a significant length. --- app/serializers/post_revision_serializer.rb | 7 ++++++- config/locales/client.en.yml | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/app/serializers/post_revision_serializer.rb b/app/serializers/post_revision_serializer.rb index 415999e8e95..1791c38304f 100644 --- a/app/serializers/post_revision_serializer.rb +++ b/app/serializers/post_revision_serializer.rb @@ -190,7 +190,12 @@ class PostRevisionSerializer < ApplicationSerializer def all_revisions return @all_revisions if @all_revisions - post_revisions = PostRevision.where(post_id: object.post_id).order(:number).to_a + post_revisions = PostRevision + .where(post_id: object.post_id) + .order(number: :desc) + .limit(99) + .to_a + .reverse latest_modifications = { "raw" => [post.raw], diff --git a/config/locales/client.en.yml b/config/locales/client.en.yml index 0485093fae3..280f26797ad 100644 --- a/config/locales/client.en.yml +++ b/config/locales/client.en.yml @@ -3374,7 +3374,7 @@ en: one: "user" other: "users" category_title: "Category" - history: "History" + history: "History, last 100 revisions" changed_by: "by %{author}" raw_email: