Page MenuHomePhabricator

Translatabe page move through job queue failed: Lock wait timeout exceeded in MovePage::moveToInternal
Closed, DeclinedPublicBUG REPORT


Steps to reproduce

  1. Mark a page for translation, with syntax version 2 and/or translation-aware transclusion enabled.
  2. Move it.
  3. Try to mark it for translation again.

Actual result

  1. Translation-aware transclusion is turned off, and the page can be upgraded to syntax version 2 (i.e. it’s at syntax version 1).

Expected result

  1. Syntax version and translation-aware transclusion is exactly how you left it in step 1.

See for example this broken version of m:VRT (I’ve re-enabled translation-aware transclusion for the template since).

I suspect this is because these flags are keyed with the page title in the database (instead of something more stable, e.g. page ID), and they’re not updated during the rename.

Event Timeline

Restricted Application added a subscriber: Aklapper. · View Herald Transcript

On inspecting Logstash I see the following:

Exception executing job: TranslatablePageMoveJob VRT/Personnel source=OTRS/Personnel target=VRT/Personnel moves=array(484) summary=Part of translatable page "OTRS/Personnel" performer=Martin Urbanec namespace=0 title=VRT/Personnel requestId=a31c0375-8f75-4b9a-9cc0-39c8f0d37a0e : Wikimedia\Rdbms\DBQueryError: Error 1205: Lock wait timeout exceeded; try restarting transaction (db1136)
Function: MovePage::moveToInternal
Query: UPDATE  `page` SET page_namespace = 0,page_title = 'VRT/Personnel' WHERE page_id = 44867

Logstash link:

I'm not able to reproduce this issue locally.

Marking this as production error per above. Moving metadata seems to work fine, as long as the move itself doesn't fail halfway through.

It is not clear to me whether this is a deadlock (e.g. bug) or just contention, in which case we should lover the maximum pages to be moved at once. It's currently 500 vs. moves=array(484) in the exception message.

OK, thanks for the Logstash entry, and sorry for the mistake of generalizing based on only one broken page.

Nikerabbit renamed this task from Translate syntax version update and translation-aware transclusion lost during page renaming to Translatabe page move through job queue failed: Lock wait timeout exceeded in MovePage::moveToInternal.Jun 22 2021, 11:44 AM

Logstash history shows that this has happened only once (reqId: a31c0375-8f75-4b9a-9cc0-39c8f0d37a0e). We'll keep an eye for this in case it happens again, but for now it does not justify taking an action on this.