Page MenuHomePhabricator

Switch all PDF render traffic to new Proton service
Closed, ResolvedPublic

Description

Proton service receives and handles 100% of production traffic, but we drop the generated PDFs. A user still receives PDF created by the old Electron PDF generator. Service proved to be stable enough to handle
all production traffic and return correct PDF files.

Acceptance criteria:

  • The Proton PDF renderer becomes default renderer
  • old Electron PDF remains on the server for some (how long?) time, just in case we have to switch back to the old service
  • RESTBase adds optional parameters supported by Proton and not Electron

Event Timeline

mobrovac edited projects, added Services (next); removed Services.

To achieve point 1, we need to

    • Refactor PDF module in RESTBase only to proxy traffic to Proton and remove the capability of split traffic, plus simplify the config.
  • See whether we would still need a js module for it, or it's possible to achieve the same result with a template-based module with no JS.

mediawiki-vagrant should also be updated to support new proton role.

  • RESTBase adds optional parameters supported by Proton and not Electron

! In T210651#4936527, @Pchelolo wrote:

To achieve point 1, we need to

    • Refactor PDF module in RESTBase only to proxy traffic to Proton and remove the capability of split traffic, plus simplify the config.
  • See whether we would still need a js module for it, or it's possible to achieve the same result with a template-based module with no JS.

Do you plan to work on this or do you expect us to do it?

mediawiki-vagrant should also be updated to support new proton role.

That is T213367: Add MediaWiki-Vagrant role for Proton.

How would the switch itself look? Do we want some kind of staggered rollout (or rollover, I guess) with only a fraction of the users switched at first? Or not worth the effort?

We have been splitting the traffic (thus load testing Proton on real traffic) for a long time now, so the switch by now is only switching the content that's actually served to the clients. I do not think it worths making a multi-stage deployment here.

We have been splitting the traffic (thus load testing Proton on real traffic) for a long time now, so the switch by now is only switching the content that's actually served to the clients. I do not think it worths making a multi-stage deployment here.

+1. We will simply stop returning the PDF produces by Electron and start serving that of Proton.

  • RESTBase adds optional parameters supported by Proton and not Electron

! In T210651#4936527, @Pchelolo wrote:

To achieve point 1, we need to

    • Refactor PDF module in RESTBase only to proxy traffic to Proton and remove the capability of split traffic, plus simplify the config.
  • See whether we would still need a js module for it, or it's possible to achieve the same result with a template-based module with no JS.

Do you plan to work on this or do you expect us to do it?

We will be working on that.

There's already PR #1090 that addresses the issue.

The bug mentioned in T213362#5171787 is a blocker for this. It seems to break the wiki entirely if it loads external assets (which in theory no Wikimedia wiki should, but I wouldn't be surprised to find some of the less-supervised ones doing it).

Change 514220 had a related patch set uploaded (by Ppchelko; owner: Ppchelko):
[mediawiki/services/restbase/deploy@master] Config changes for PDF render switchover to Proton.

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

Change 514220 merged by Mobrovac:
[mediawiki/services/restbase/deploy@master] Config changes for PDF render switchover to Proton.

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

Mentioned in SAL (#wikimedia-operations) [2019-06-04T07:16:03Z] <mobrovac@deploy1001> Started deploy [restbase/deploy@abcb534]: Use only Proton for PDF rendering - T210651

Change 514226 had a related patch set uploaded (by Ppchelko; owner: Ppchelko):
[operations/puppet@production] Clean up configuration for pdfrender service.

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

Mentioned in SAL (#wikimedia-operations) [2019-06-04T07:35:19Z] <mobrovac@deploy1001> Finished deploy [restbase/deploy@abcb534]: Use only Proton for PDF rendering - T210651 (duration: 19m 16s)

The RESTBase switch has been deployed. Proton is now used for all PDF requests.

User-notice: Single-page PDF rendering (ie. "Download as PDF", not "Create a book") is now handled by a different service (Proton, instead of Electron). Both use the Chromium browser to render the page; there should be no user-visible differences.

Download as PDF - not working
Waiting takes forever and still no PDF downloads. Tried again and again.

https://www.mediawiki.org/wiki/Topic:V0z148re7x4hyw88

I've inquired about the specific page the user is experiencing this with.

The original issue report message was before the switch to the new PDF renderer, so it is 100% not related. The Electron renderer was experiencing some issues before we switched to proton, might be related to that.

The original issue report message was before the switch to the new PDF renderer, so it is 100% not related. The Electron renderer was experiencing some issues before we switched to proton, might be related to that.

ah right, i got caught out by the date in the Flow header representing the 'last change to the thread' as opposed to the 'initial post'.

Ok, is it time to finally undeploy electron?

We had no issues for the last 20 days. I imagine if anything broke we would know by now.

No concerns from our side either.

Pchelolo updated the task description. (Show Details)

I have created separate tasks for the followup items, but this was done - renderer switched to Proton, this can be resolved.