Timeout trying to view package's +translate page

Bug #807383 reported by Hannie Dumoleyn
This bug report is a duplicate of:  Bug #736005: POFile:+translate timeouts. Edit Remove
44
This bug affects 10 people
Affects Status Importance Assigned to Milestone
Launchpad itself
Triaged
Critical
Unassigned
Ubuntu Translations
Confirmed
Undecided
Unassigned

Bug Description

I get this error on a regular basis. Trying again in a couple of minutes, even days, doesn't work. What's wrong here?

OOPS-2022K28 OOPS-2022CH25

An example of the two queries that seem to be eating up the request time (notice that the section beginning with "AND POTMsgSet.id IN " seems identical):

1. 5526.0 1 SQL-launchpad-main-slave
SELECT POTMsgSet.commenttext,
       POTMsgSet.context,
       POTMsgSet.filereferences,
       POTMsgSet.flagscomment,
       POTMsgSet.id,
       POTMsgSet.msgid_plural,
       POTMsgSet.msgid_singular,
       POTMsgSet.sequence,
       POTMsgSet.sourcecomment
FROM POTMsgSet,
     TranslationTemplateItem
WHERE (TranslationTemplateItem.potemplate = $INT
  AND TranslationTemplateItem.potmsgset = POTMsgSet.id
  AND TranslationTemplateItem.sequence > $INT
  AND POTMsgSet.id IN ( -- Step $INTa: get POTMsgSets where msgid_singular contains `text` -- To avoid seqscans on POMsgID table (what LIKE usually -- does), we do ILIKE comparison on them in a subselect first -- filtered by this POTemplate. SELECT POTMsgSet.id FROM POTMsgSet JOIN TranslationTemplateItem ON TranslationTemplateItem.potmsgset=POTMsgSet.id AND TranslationTemplateItem.potemplate=$INT WHERE (POTMsgSet.msgid_singular IS NOT NULL AND POTMsgSet.msgid_singular IN ( SELECT POMsgID.id FROM POMsgID WHERE id IN ( SELECT DISTINCT(msgid_singular) FROM POTMsgSet JOIN TranslationTemplateItem ON TranslationTemplateItem.potmsgset = POTMsgSet.id WHERE TranslationTemplateItem.potemplate=$INT AND TranslationTemplateItem.sequence > $INT ) AND msgid ILIKE $STRING || $STRING || $STRING)) UNION -- Step $INTb: like above, just on msgid_plural. SELECT POTMsgSet.id FROM POTMsgSet JOIN TranslationTemplateItem ON TranslationTemplateItem.potmsgset=POTMsgSet.id AND TranslationTemplateItem.potemplate=$INT WHERE (POTMsgSet.msgid_plural IS NOT NULL AND POTMsgSet.msgid_plural IN ( SELECT POMsgID.id FROM POMsgID WHERE id IN ( SELECT DISTINCT(msgid_plural) FROM POTMsgSet JOIN TranslationTemplateItem ON TranslationTemplateItem.potmsgset = POTMsgSet.id WHERE TranslationTemplateItem.potemplate=$INT AND TranslationTemplateItem.sequence > $INT ) AND msgid ILIKE $STRING || $STRING || $STRING)) UNION -- Find translations containing `text`. -- Like in findPOTMsgSetsContaining(), to avoid seqscans on -- POTranslation table, we do ILIKE comparison on them in -- a subselect which is first filtered by the POFile. SELECT TranslationMessage.potmsgset FROM TranslationMessage JOIN TranslationTemplateItem ON TranslationMessage.potmsgset = TranslationTemplateItem.potmsgset WHERE TranslationTemplateItem.potemplate = $INT AND TranslationMessage.language = $INT AND TranslationMessage.msgstr0 IN ( SELECT POTranslation.id FROM POTranslation WHERE POTranslation.id IN ( SELECT DISTINCT(msgstr0) FROM TranslationMessage AS tm_ids JOIN TranslationTemplateItem ON tm_ids.potmsgset=TranslationTemplateItem.potmsgset WHERE TranslationTemplateItem.potemplate = $INT AND TranslationTemplateItem.sequence > $INT AND tm_ids.language=$INT ) AND POTranslation.translation ILIKE $STRING || $STRING || $STRING) UNION -- Find translations containing `text`. -- Like in findPOTMsgSetsContaining(), to avoid seqscans on -- POTranslation table, we do ILIKE comparison on them in -- a subselect which is first filtered by the POFile. SELECT TranslationMessage.potmsgset FROM TranslationMessage JOIN TranslationTemplateItem ON TranslationMessage.potmsgset = TranslationTemplateItem.potmsgset WHERE TranslationTemplateItem.potemplate = $INT AND TranslationMessage.language = $INT AND TranslationMessage.msgstr1 IN ( SELECT POTranslation.id FROM POTranslation WHERE POTranslation.id IN ( SELECT DISTINCT(msgstr1) FROM TranslationMessage AS tm_ids JOIN TranslationTemplateItem ON tm_ids.potmsgset=TranslationTemplateItem.potmsgset WHERE TranslationTemplateItem.potemplate = $INT AND TranslationTemplateItem.sequence > $INT AND tm_ids.language=$INT ) AND POTranslation.translation ILIKE $STRING || $STRING || $STRING) )) ORDER BY TranslationTemplateItem.sequence LIMIT $INT OFFSET $INT
2. 3008.0 1 SQL-launchpad-main-slave
SELECT COUNT(*)
FROM POTMsgSet,
     TranslationTemplateItem
WHERE (TranslationTemplateItem.potemplate = $INT
  AND TranslationTemplateItem.potmsgset = POTMsgSet.id
  AND TranslationTemplateItem.sequence > $INT
  AND POTMsgSet.id IN ( -- Step $INTa: get POTMsgSets where msgid_singular contains `text` -- To avoid seqscans on POMsgID table (what LIKE usually -- does), we do ILIKE comparison on them in a subselect first -- filtered by this POTemplate. SELECT POTMsgSet.id FROM POTMsgSet JOIN TranslationTemplateItem ON TranslationTemplateItem.potmsgset=POTMsgSet.id AND TranslationTemplateItem.potemplate=$INT WHERE (POTMsgSet.msgid_singular IS NOT NULL AND POTMsgSet.msgid_singular IN ( SELECT POMsgID.id FROM POMsgID WHERE id IN ( SELECT DISTINCT(msgid_singular) FROM POTMsgSet JOIN TranslationTemplateItem ON TranslationTemplateItem.potmsgset = POTMsgSet.id WHERE TranslationTemplateItem.potemplate=$INT AND TranslationTemplateItem.sequence > $INT ) AND msgid ILIKE $STRING || $STRING || $STRING)) UNION -- Step $INTb: like above, just on msgid_plural. SELECT POTMsgSet.id FROM POTMsgSet JOIN TranslationTemplateItem ON TranslationTemplateItem.potmsgset=POTMsgSet.id AND TranslationTemplateItem.potemplate=$INT WHERE (POTMsgSet.msgid_plural IS NOT NULL AND POTMsgSet.msgid_plural IN ( SELECT POMsgID.id FROM POMsgID WHERE id IN ( SELECT DISTINCT(msgid_plural) FROM POTMsgSet JOIN TranslationTemplateItem ON TranslationTemplateItem.potmsgset = POTMsgSet.id WHERE TranslationTemplateItem.potemplate=$INT AND TranslationTemplateItem.sequence > $INT ) AND msgid ILIKE $STRING || $STRING || $STRING)) UNION -- Find translations containing `text`. -- Like in findPOTMsgSetsContaining(), to avoid seqscans on -- POTranslation table, we do ILIKE comparison on them in -- a subselect which is first filtered by the POFile. SELECT TranslationMessage.potmsgset FROM TranslationMessage JOIN TranslationTemplateItem ON TranslationMessage.potmsgset = TranslationTemplateItem.potmsgset WHERE TranslationTemplateItem.potemplate = $INT AND TranslationMessage.language = $INT AND TranslationMessage.msgstr0 IN ( SELECT POTranslation.id FROM POTranslation WHERE POTranslation.id IN ( SELECT DISTINCT(msgstr0) FROM TranslationMessage AS tm_ids JOIN TranslationTemplateItem ON tm_ids.potmsgset=TranslationTemplateItem.potmsgset WHERE TranslationTemplateItem.potemplate = $INT AND TranslationTemplateItem.sequence > $INT AND tm_ids.language=$INT ) AND POTranslation.translation ILIKE $STRING || $STRING || $STRING) UNION -- Find translations containing `text`. -- Like in findPOTMsgSetsContaining(), to avoid seqscans on -- POTranslation table, we do ILIKE comparison on them in -- a subselect which is first filtered by the POFile. SELECT TranslationMessage.potmsgset FROM TranslationMessage JOIN TranslationTemplateItem ON TranslationMessage.potmsgset = TranslationTemplateItem.potmsgset WHERE TranslationTemplateItem.potemplate = $INT AND TranslationMessage.language = $INT AND TranslationMessage.msgstr1 IN ( SELECT POTranslation.id FROM POTranslation WHERE POTranslation.id IN ( SELECT DISTINCT(msgstr1) FROM TranslationMessage AS tm_ids JOIN TranslationTemplateItem ON tm_ids.potmsgset=TranslationTemplateItem.potmsgset WHERE TranslationTemplateItem.potemplate = $INT AND TranslationTemplateItem.sequence > $INT AND tm_ids.language=$INT ) AND POTranslation.translation ILIKE $STRING || $STRING || $STRING) ))

Revision history for this message
Pascal De Vuyst (pascal-devuyst) wrote :

Looks like a problem with launchpad itself instead of the package descriptions for Ubuntu (ddtp-ubuntu), reassigning.
Do you still have this problem?

affects: ddtp-ubuntu → launchpad
Changed in launchpad:
status: New → Incomplete
Revision history for this message
Robert Collins (lifeless) wrote :

We need the OOPS code referenced on the error page to move this bug forward (or determine that its a duplicate).

Revision history for this message
Hannie Dumoleyn (lafeber-dumoleyn) wrote :

Do you still have this problem?
Yes, it still happens. Today, July 14, 9:56

Revision history for this message
Gary Poster (gary) wrote :

Thank you for the follow-on report. As Robert said, we need the OOPS code (on the page as OOPS-[alphanumeric code]) to proceed.

Revision history for this message
Hannie Dumoleyn (lafeber-dumoleyn) wrote :

Sorry for the delay. I did not know what oops was initially. The problem occurs only with some of the package descriptions like, in this case, openshot (#18949).
This is the code: (Error ID: OOPS-2022CH25)

Revision history for this message
Hannie Dumoleyn (lafeber-dumoleyn) wrote :

And here is another one. (Error ID: OOPS-2022K28). Should I paste all the oops codes I encounter here?

Revision history for this message
Gary Poster (gary) wrote :

Different pages can time out for different reasons, but it looks like both of those are similar, so I'll change this bug to be about them.

If the problem happens on the same kind of page (e.g., "+translate" at the end of the URL for these two) doing the same kind of operation (you were just trying to view the page for these two), we don't need another OOPS--we can track them. If you get an OOPS doing something else, filing a separate bug (with the OOPS information) would be appropriate and appreciated.

Thank you!

Changed in launchpad:
status: Incomplete → Triaged
importance: Undecided → Critical
tags: added: oops timeout
Gary Poster (gary)
summary: - Error: Timeout
+ Timeout trying to view package's +translate page
description: updated
Gary Poster (gary)
description: updated
Revision history for this message
Tico (co-ti) wrote :

I also frequently come across the Launchpad timeout error while trying to translate

(Error ID: OOPS-2070BC56)
(Error ID: OOPS-2070CP46)

Curtis Hovey (sinzui)
tags: removed: oops
Revision history for this message
xatr0z (xatr0z) wrote :

I also get frequent OOPS errors while translating.
Today it is really bad (clicking 20 links in nightmonkey to different +translate URL in launchpad). Most of them timeout. Even after F5ing. A couple of translationpages did open, but when I submit a translation I also get an timeout error on them.

OOPS:fdcdde17a8d4b817dea561e2b491f97d

William Grant (wgrant)
tags: added: lp-translations
Changed in ubuntu-translations:
status: New → Confirmed
Revision history for this message
zxczc (astiktrumpam) wrote :

10 years later, launchpad still is unable to fix its bugs and search doesnt work, nice.
(Error ID: OOPS-571a09fc76b3c21d831076d563208e9a)

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Related questions

Remote bug watches

Bug watches keep track of this bug in other bug trackers.