We are using taxonomy + taxonomy_menu + i18ntaxonomy. The page header shows a taxonomy menu block created from a vocabulary called "Sections".
i18ntaxonomy is causing problems, seemingly when it rewrites the count query from _taxonomy_menu_term_count().
When browsing to /en (the default language), that query is rewritten to the following, which is all fine:
SELECT DISTINCT COUNT(n.nid) AS c
FROM {term_node} t
INNER JOIN {node} n ON t.vid = n.vid
WHERE (n.language ='en' OR n.language ='' OR n.language IS NULL)
AND ( n.status = 1 AND t.tid = %d)
When browing to /fr, on the the other hand, this happens:
SELECT DISTINCT COUNT(n.nid) AS c
FROM {term_node} t
INNER JOIN {node} n ON t.vid = n.vid
LEFT JOIN {node} i18n ON n.tnid > 0 AND n.tnid = i18n.tnid AND i18n.language = 'fr'
WHERE (n.language ='fr' OR n.language ='' OR n.language IS NULL OR n.language = 'en' AND i18n.nid IS NULL)
AND ( n.status = 1 AND t.tid = %d)
Note that it is joining twice on node, aliasing it to i18n the second time, and then imposing impossible conditions ("AND i18n.nid IS NULL" ??). This query is syntactically correct enough for MySQL to attempt to run it, but MySQL then hangs and has to be restarted.
Even stranger, this rewriting happens even when the vocabulary's translation mode is set to "None. No multilingual options for this vocabulary."
If we disable the i18ntaxonomy module, the problem goes away, and we can load /en and /fr just fine.
Comments
Comment #1
hobo commentedI'm seeing this as well. Anyone have any idea how to resolve this?
Comment #2
jose reyero commentedNo follow up for too long. Cleaning up issue tracker for 6.x.