Page MenuHomePhabricator

ProofreadPageContent must not contain User object, since it cannot be serialized safely.
Open, Needs TriagePublic

Description

ProofreadPage's PageContent gets serialized by PageEditStash. It contains a PageLevel, which contains a User object. This could be replaced with a UserIdentityValue, at least for serialization. PageContent actually already has special code for handing the User object when serializing to JSON for storage. This just isn't used when it's serialized via PHP's native serialization for caching.

This issue caused a production error, see T264363: Instances of User are not serializable!.

Event Timeline

Change #1165581 had a related patch set uploaded (by C. Scott Ananian; author: C. Scott Ananian):

[mediawiki/core@master] Use JSON serialization for PageEditStash

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

Change #1165592 had a related patch set uploaded (by C. Scott Ananian; author: C. Scott Ananian):

[mediawiki/core@master] Make Content JsonCodecable

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

Change #1165581 merged by jenkins-bot:

[mediawiki/core@master] Prepare to use JSON serialization for PageEditStash

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

Change #1165592 merged by jenkins-bot:

[mediawiki/core@master] Make Content JsonCodecable

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

Change #1185190 had a related patch set uploaded (by C. Scott Ananian; author: C. Scott Ananian):

[mediawiki/core@REL1_43] Make Content JsonCodecable

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

Change #1185191 had a related patch set uploaded (by C. Scott Ananian; author: C. Scott Ananian):

[mediawiki/core@REL1_44] Make Content JsonCodecable

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

Change #1185191 merged by jenkins-bot:

[mediawiki/core@REL1_44] Make Content JsonCodecable

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

Change #1185190 merged by jenkins-bot:

[mediawiki/core@REL1_43] Make Content JsonCodecable

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