On 3 December 2012 21:16, Rob Lanphier robla@wikimedia.org wrote:
- Reminder that we need to either fix or revert Merlijn's changes on
master prior to deploying 1.21wmf6, lest we bring down itwikisource again. I'm going to guess that without more feedback, Merlijn won't be able to fix this, so we should plan on reverting on Thursday or so if this thread goes stale.
I'll give some more background on my analysis of why this happened. In any case, I'll create a revert patch before thursday, so it shouldn't be a problem to deploy it.
The reason itwikisource died is a combination of how LST is used on itwikisource and how the new LST implementation worked. I'll try to give a short description here.
On most wiki's, the Main Page consists of several transcluded pages, i.e. 'Main Page/header', 'Main Page/Section Something', 'Main Page/Section Something Else'. This is not the case on itwikisource: instead of using seperate pages, it uses a single page, and LST's the relevant sections - so Pagina Principale transcludes *sections *from "Pagina principale/Sezioni" - eight of them.
In the original LST implementation, this was not a problem: just the transcluded sections were rendered, so overall, 'Pagina principale/Sezioni' was only parsed once - but in a eight seperate pieces. However, in the * current* situation, the whole of 'Pagina principale/Sezioni' is rendered for *every* transclusion, which means that the parsing times goes up by a factor of 8. To make matters worse, this structure is also used further down the template tree, which means the overall parsing time goes up to ~ 30s, the parser's limit. (the current parsing time is ~2s).
As such, I think Rob's suggestion of caching the parsing step might be enough to solve the issues. The parsing will still be more resource intensive, but at least it shouldn't reach bring itwikisource to it's knees. However, I don't have the setup to test this currently, nor do I really have the time to set this up this week.
So -- I'll first make sure there is a working revert patch submitted. After that, I'll try to work on creating a more resource-friendly implementation. Hopefully there will be some comments on how to do that in an even better way by then.
Best, Merlijn