Page MenuHomePhabricator

Restore ability for PageEditStash to store "large" ParserOutput/Content objects with value segmentation
Closed, ResolvedPublic

Description

After change 790467, BagOStuff value segmentation only works on strings. The value segmentation, however, exists only for use by PageEditStash, and PageEditStash was not updated to serialize the ParserOutput/Content to strings first. Thus effectively disabling value segmentation and no longer storing applying edit stash optimisations to edits with a large ParserOutput object, which was fixed for T204742: Unable to store parser output in StashEdit (Memcached error: ITEM TOO BIG).

Ideally, this would use JSON where possible.

(Spun off from T309126.)

Event Timeline

aaron renamed this task from Make PageEditStash use JsonCodec for the ParserOutput to Make PageEditStash serialize the ParserOutput/Content so that large value segmentation works.Nov 17 2022, 10:46 PM
aaron updated the task description. (Show Details)

Change 858437 had a related patch set uploaded (by Aaron Schulz; author: Aaron Schulz):

[mediawiki/core@master] Use serialization in PageEditStash so that WRITE_ALLOW_SEGMENTS works

https://gerrit.wikimedia.org/r/858437

Krinkle renamed this task from Make PageEditStash serialize the ParserOutput/Content so that large value segmentation works to Restore ability for PageEditStash to store "large" ParserOutput/Content objects with value segmentation.Dec 13 2022, 10:31 PM
Krinkle updated the task description. (Show Details)

Change 858437 merged by jenkins-bot:

[mediawiki/core@master] PageEditStash: Serialize ad-hoc to restore WRITE_ALLOW_SEGMENTS

https://gerrit.wikimedia.org/r/858437

FYI, the error log spam disappeared weeks later.

Screenshot_20230215_170918.png (1×2 px, 287 KB)